systemd системийн менежер хувилбар 248

Дөрвөн сарын хөгжүүлэлтийн дараа системийн менежер systemd 248-ийн хувилбарыг танилцуулж байна.Шинэ хувилбар нь системийн лавлахуудыг өргөжүүлэх, /etc/veritytab тохиргооны файл, systemd-cryptenroll хэрэгсэл, TPM2 чип болон FIDO2 ашиглан LUKS2-ийн түгжээг тайлахад зориулсан зургуудад дэмжлэг үзүүлдэг. токенууд, тусгаарлагдсан IPC таних орон зайд ажиллаж байгаа нэгжүүд, торон сүлжээнд зориулсан BATMAN протокол, systemd-nspawn-д зориулсан nftables backend. Systemd-oomd тогтворжсон.

Үндсэн өөрчлөлтүүд:

  • Системийн өргөтгөлийн дүрсний үзэл баримтлал хэрэгжсэн бөгөөд энэ нь /usr/ болон /opt/ сангуудын шатлалыг өргөтгөх, заасан сангууд зөвхөн унших боломжтой байсан ч ажиллах үед нэмэлт файл нэмэхэд ашиглаж болно. Системийн өргөтгөлийн дүрсийг холбоход түүний агуулгыг OverlayFS ашиглан /usr/ болон /opt/ шатлал дээр давхарлана.

    Системийн өргөтгөлүүдийн зургийг холбох, салгах, харах, шинэчлэх шинэ хэрэгсэл болох systemd-sysext-ийг санал болгосон. Ачаалах үед суулгасан зургуудыг автоматаар холбохын тулд systemd-sysext.service үйлчилгээг нэмсэн. Дэмжигдсэн системийн өргөтгөлүүдийн түвшинг тодорхойлохын тулд os-release файлд "SYSEXT_LEVEL=" параметрийг нэмсэн.

  • Нэгжүүдийн хувьд ExtensionImages тохиргоог хэрэгжүүлсэн бөгөөд энэ нь системийн өргөтгөлийн зургийг тусад нь тусгаарлагдсан үйлчилгээний FS нэрийн орон зайн шатлалтай холбоход ашиглаж болно.
  • dm-verity модулийг ашиглан блокийн түвшинд өгөгдөл баталгаажуулалтыг тохируулахын тулд /etc/veritytab тохиргооны файлыг нэмсэн. Файлын формат нь /etc/crypttab - “хэсэгт_өгөгдлийн төхөөрөмжийн_хэсгийн_нэрийг шалгах_hash_root сонголттой” төстэй. Үндсэн төхөөрөмжид dm-verity төлөвийг тохируулахын тулд systemd.verity.root_options цөмийн командын мөрийн сонголтыг нэмсэн.
  • systemd-cryptsetup нь PKCS#11 токен URI болон шифрлэгдсэн түлхүүрийг LUKS2 мета өгөгдлийн толгой хэсгээс JSON форматаар задлах боломжийг нэмснээр шифрлэгдсэн төхөөрөмжийг нээх талаарх мэдээллийг гадаад файл оруулахгүйгээр төхөөрөмжид нэгтгэх боломжийг олгодог.
  • systemd-cryptsetup нь өмнө нь дэмжигдсэн PKCS#2 токенуудаас гадна TPM2 чип болон FIDO2 токенуудыг ашиглан LUKS11 шифрлэгдсэн хуваалтыг нээхэд дэмжлэг үзүүлдэг. Libfido2-г ачаалах нь dlopen(), өөрөөр хэлбэл. хүртээмжийг хатуу утастай хамаарал гэхээсээ илүүтэйгээр шууд шалгадаг.
  • Шифрлэлт болон шифрлэлттэй холбоотой оролт гаралтын синхрон боловсруулалтыг идэвхжүүлэхийн тулд systemd-cryptsetup-д зориулсан "no-write-workqueue" болон "no-unish-workqueue" гэсэн шинэ сонголтуудыг /etc/crypttab-д нэмсэн.
  • Systemd-repart хэрэгсэл нь TPM2 чип ашиглан шифрлэгдсэн хуваалтыг идэвхжүүлэх, жишээлбэл, эхний ачаалах үед шифрлэгдсэн /var хуваалт үүсгэх боломжийг нэмсэн.
  • Systemd-cryptenroll хэрэглүүрийг TPM2, FIDO2 болон PKCS#11 токенуудыг LUKS хуваалтуудтай холбох, мөн жетонуудыг задлах, үзэх, нөөц түлхүүрүүдийг холбох, нэвтрэх нууц үг тохируулах зорилгоор нэмсэн.
  • Тусдаа танигч болон мессежийн дараалал бүхий тусгаарлагдсан IPC орон зайд процессуудыг ажиллуулахын тулд нэгж файлыг тохируулах боломжийг олгодог PrivateIPC параметрийг нэмсэн. Нэгжийг аль хэдийн үүсгэсэн IPC таних орон зайд холбохын тулд IPCNamespacePath сонголтыг санал болгож байна.
  • Файлын системийн тодорхой хэсгүүдэд noexec тугийг ашиглах боломжийг олгохын тулд ExecPaths болон NoExecPaths тохиргоог нэмсэн.
  • systemd-networkd нь BATMAN (Better Approach To Mobile Adhoc Networking) сүлжээ протоколыг дэмждэг бөгөөд энэ нь зангилаа бүр хөрш зэргэлдээ зангилаануудаар холбогдсон төвлөрсөн бус сүлжээг бий болгох боломжийг олгодог. Тохируулгын хувьд .netdev доторх [BatmanAdvanced] хэсэг, .сүлжээний файл дахь BatmanAdvanced параметр болон шинэ төрлийн "batadv" төхөөрөмжийг санал болгож байна.
  • Systemd-oomd систем дэх бага санах ойд эрт хариу үйлдэл үзүүлэх механизмын хэрэгжилт тогтворжсон. Нэгжид нөлөөлөхөөс өмнө нөөцийг гаргахыг хүлээх хугацааг тохируулахын тулд DefaultMemoryPressureDurationSec сонголтыг нэмсэн. Systemd-oomd нь PSI (Pressure Stall Information) цөмийн дэд системийг ашигладаг бөгөөд нөөцийн хомсдолоос үүдэлтэй саатал үүсэхийг илрүүлж, систем хараахан эгзэгтэй байдалд ороогүй байгаа үе шатанд нөөц их шаарддаг процессыг сонгон зогсоох боломжийг олгодог. кэшийг эрчимтэй багасгаж, өгөгдлийг своп хуваалт руу шилжүүлж эхэлнэ.
  • "root=tmpfs" цөмийн командын мөрийн параметрийг нэмсэн бөгөөд энэ нь root хуваалтыг RAM-д байрлах түр санах ойд Tmpfs ашиглан холбох боломжийг олгодог.
  • Түлхүүр файлыг тодорхойлсон /etc/crypttab параметр нь одоо AF_UNIX болон SOCK_STREAM залгуурын төрлүүдийг зааж өгч болно. Энэ тохиолдолд жишээлбэл, түлхүүрийг динамикаар гаргадаг үйлчилгээг бий болгоход ашиглаж болох залгуурт холбогдох үед түлхүүрийг өгөх ёстой.
  • Системийн менежер болон systemd-hostnamed-д ашиглах нөөц хостын нэрийг одоо хоёр аргаар тохируулах боломжтой: os-release дээрх DEFAULT_HOSTNAME параметр болон $SYSTEMD_DEFAULT_HOSTNAME орчны хувьсагчаар дамжуулан. systemd-hostnamed нь мөн хостын нэр дэх "localhost"-ийг зохицуулдаг бөгөөд DBus-ээр дамжуулан "HardwareVendor" болон "HardwareModel" шинж чанаруудыг экспортлохоос гадна хостын нэрийг экспортлох боломжийг нэмдэг.
  • Ил гарсан орчны хувьсагчтай блокыг зөвхөн цөмийн командын мөр болон нэгж файлын тохиргоогоор бус, system.conf эсвэл user.conf дээрх шинэ ManagerEnvironment сонголтоор тохируулах боломжтой.
  • Хөрвүүлэлтийн үед execve()-ийн оронд процессыг эхлүүлэхийн тулд fexecve() системийн дуудлагыг ашиглан хамгаалалтын контекстийг шалгах болон түүнийг хэрэглэх хооронд саатлыг багасгах боломжтой.
  • Нэгж файлуудын хувьд TPM2 төхөөрөмж байгаа эсэхийг шалгахын тулд ConditionSecurity=tpm2 болон ConditionCPUFeature шинэ нөхцөлт үйлдлүүд нэмэгдсэн (жишээ нь, ConditionCPUFeature=rdrand нь процессор RDRAND үйлдлийг дэмжиж байгаа эсэхийг шалгах боломжтой).
  • Боломжтой цөмийн хувьд seccomp шүүлтүүрт зориулсан системийн дуудлагын хүснэгтийг автоматаар үүсгэх ажлыг хэрэгжүүлсэн.
  • Үйлчилгээг дахин эхлүүлэхгүйгээр одоо байгаа холболтын нэрийн орон зайд шинэ холбох хэрэгслийг орлуулах боломжийг нэмсэн. Орлуулалтыг "systemctl bind" командын тусламжтайгаар гүйцэтгэдэг ...' болон 'systemctl mount-image …'.
  • StandardOutput болон StandardError тохиргоон дахь "truncate: » хэрэглэхийн өмнө цэвэрлэх зориулалттай.
  • Дотоод контейнер доторх тодорхой хэрэглэгчийн сессийг sd-bus руу холбох боломжийг нэмсэн. Жишээ нь "systemctl -user -M lennart@ start quux".
  • Дараах параметрүүдийг [Link] хэсэг дэх systemd.link файлуудад хэрэгжүүлсэн:
    • Садар самуун - одоогийн системд хаяглаагүй бүх сүлжээний пакетуудыг боловсруулахын тулд төхөөрөмжийг "зохионгуй" горимд шилжүүлэх боломжийг олгодог;
    • TX болон RX дарааллын тоог тохируулах TransmitQueues болон ReceiveQueues;
    • TX дарааллын хэмжээг тохируулах TransmitQueueLength; GenericSegmentOffloadMaxBytes болон GenericSegmentOffloadMaxSegment нь GRO (Generic Receive Offload) технологийг ашиглахад хязгаарлалт тогтооход зориулагдсан.
  • systemd.network файлуудад шинэ тохиргоо нэмэгдсэн:
    • [Network] RouteTable нь чиглүүлэлтийн хүснэгтийг сонгох;
    • [RoutingPolicyRule] Чиглүүлэлтийн төрлийг бичнэ үү ("хар нүх, "хүрэх боломжгүй", "хориглох");
    • [IPv6AcceptRA] RouteDenyList болон RouteAllowList нь зөвшөөрөгдсөн болон татгалзсан маршрутын сурталчилгааны жагсаалтад зориулагдсан;
    • [DHCPv6] DHCP-ээс гаргасан хаягийг үл тоомсорлохын тулд Adres ашиглана уу;
    • [DHCPv6PrefixDelegation] Түр зуурын хаягийг удирдах;
    • Интерфейсийн үйл ажиллагааны талаарх бодлогыг тодорхойлох идэвхжүүлэх бодлого (үргэлж ДЭЭШ эсвэл ДООШ төлөвт байлгах эсвэл хэрэглэгчдэд "ip link set dev" командыг ашиглан төлөвийг өөрчлөхийг зөвшөөрөх).
  • VLAN пакетийн зохицуулалтыг тохируулахын тулд systemd.netdev файлуудад [VLAN] Protocol, IngressQOSMaps, EgressQOSMaps, [MACVLAN] BroadcastMulticastQueueLength сонголтуудыг нэмсэн.
  • /dev/ санг /dev/sgx файлуудтай гүйцэтгэх боломжтой туг ашиглах үед зөрчил үүсгэж байгаа тул noexec горимд холбохыг зогсоосон. Хуучин үйлдлийг буцаахын тулд та NoExecPaths=/dev тохиргоог ашиглаж болно.
  • /dev/vsock файлын зөвшөөрлийг 0o666 болгож өөрчилсөн бөгөөд /dev/vhost-vsock болон /dev/vhost-net файлуудыг kvm бүлэгт шилжүүлсэн.
  • Тоног төхөөрөмжийн ID мэдээллийн санг унтах горимыг зөв дэмждэг USB хурууны хээ уншигчаар өргөжүүлсэн.
  • systemd-ийн шийдлээр DNSSEC асуулгад stub resolver ашиглан хариу өгөх нэмэлт дэмжлэг. Орон нутгийн үйлчлүүлэгчид DNSSEC баталгаажуулалтыг өөрсдөө хийх боломжтой бол гадаад үйлчлүүлэгчид эх DNS сервер рүү өөрчлөгдөөгүй проксигаар холбогддог.
  • Resoled.conf-д CacheFromLocalhost сонголтыг нэмсэн бөгөөд тохируулсан үед systemd-resolved нь 127.0.0.1 дээрх DNS сервер рүү залгахад ч кэшийг ашиглах болно (анхдагчаар, давхар кэш хийхээс зайлсхийхийн тулд ийм хүсэлтийг кэшийг идэвхгүй болгосон).
  • systemd-resolved нь RFC-5001 NSID-д зориулсан дэмжлэгийг орон нутгийн DNS шийдүүлэгч дээр нэмж, үйлчлүүлэгчдэд локал шийдүүлэгч болон өөр DNS сервертэй харилцах харилцааг ялгах боломжийг олгодог.
  • Resolctl хэрэгсэл нь өгөгдлийн эх сурвалж (локал кэш, сүлжээний хүсэлт, локал процессорын хариу) болон өгөгдөл дамжуулахдаа шифрлэлт ашиглах тухай мэдээллийг харуулах чадварыг хэрэгжүүлдэг. Нэрийг тодорхойлох үйл явцыг хянахын тулд --cache, --synthesize, --network, --zone, --trust-anchor, --validate гэсэн сонголтуудыг өгсөн.
  • systemd-nspawn нь одоо байгаа iptables дэмжлэгээс гадна nftables ашиглан галт ханыг тохируулах дэмжлэгийг нэмдэг. Systemd-networkd дахь IPMasquerade тохиргоо нь nftables-д суурилсан backend ашиглах боломжийг нэмсэн.
  • systemd-localed нь дутуу локалуудыг үүсгэхийн тулд locale-gen руу залгах нэмэлт дэмжлэгийг нэмсэн.
  • --pager/-no-pager/-json= сонголтуудыг JSON форматаар пейжерийн горимыг идэвхжүүлэх/идэвхгүй болгохын тулд янз бүрийн хэрэгслүүдэд нэмсэн. SYSTEMD_COLORS орчны хувьсагчаар ("16" эсвэл "256") дамжуулан терминалд ашигласан өнгөний тоог тохируулах боломжийг нэмсэн.
  • Тусдаа лавлах шатлалтай (хуваах / ба /usr) болон cgroup v1 дэмжлэгтэй бүтээцийг цуцалсан.
  • Гит дэх мастер салбарыг 'master'-аас 'main' болгон өөрчилсөн.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх