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

Таван сарын хөгжлийн дараа танилцуулсан системийн менежерийн хувилбар системд 243. Шинэлэг зүйлүүдийн дотроос систем дэх санах ой багатай зохицуулагчийг PID 1-д нэгтгэх, нэгжийн траффикийг шүүх өөрийн BPF програмуудыг хавсаргах дэмжлэг, systemd-networkd-ийн олон тооны шинэ сонголтууд, сүлжээний зурвасын өргөнийг хянах горим зэргийг дурдаж болно. 64 битийн оронд 22 битийн PID дугаарыг 16 битийн систем дээр анхдагчаар идэвхжүүлдэг интерфэйсүүд, нэгдсэн бүлгүүдийн шатлалд шилжих, systemd-сүлжээний генераторт оруулах.

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

  • Санах ойгүй болсон тухай цөмийн үүсгэсэн дохиог таних (Out-Of-Memory, OOM) нь санах ойн хэрэглээний хязгаарт хүрсэн нэгжүүдийг тусгай төлөвт шилжүүлэхийн тулд PID 1 зохицуулагч дээр нэмсэн. эсвэл зогсоох;
  • Нэгж файлуудын хувьд IPIngressFilterPath шинэ параметрүүд болон
    IPEgressFilterPath нь BPF программуудыг дурын зохицуулагчтай холбох боломжийг олгодог бөгөөд энэ нэгжтэй холбоотой процессоор үүсгэгдсэн ирж буй болон гарч буй IP пакетуудыг шүүх боломжтой. Санал болгож буй функцууд нь системийн үйлчилгээнд зориулсан галт хана үүсгэх боломжийг танд олгоно. Бичих жишээ BPF дээр суурилсан энгийн сүлжээний шүүлтүүр;

  • "Цэвэр" командыг systemctl хэрэгсэлд нэмсэн бөгөөд кэш, ажиллах үеийн файлууд, төлөвийн мэдээлэл, бүртгэлийн лавлахуудыг устгах;
  • systemd-networkd нь MACsec, nlmon, IPVTAP болон Xfrm сүлжээний интерфейсүүдийг дэмждэг;
  • systemd-networkd нь тохиргооны файлын “[DHCPv4]” болон “[DHCPv6]” хэсгүүдээр дамжуулан DHCPv4 болон DHCPv6 стекүүдийн тусдаа тохиргоог хэрэгжүүлдэг. DHCP серверээс хүлээн авсан параметрүүдэд заасан DNS серверт тусдаа маршрут нэмэхийн тулд RoutesToDNS сонголтыг нэмсэн (ингэснээр DNS руу чиглэсэн урсгалыг DHCP-ээс хүлээн авсан үндсэн маршруттай ижил холбоосоор дамжуулдаг). DHCPv4-д зориулсан шинэ сонголтууд нэмэгдсэн: MaxAttempts - хаяг авах хүсэлтийн хамгийн их тоо, BlackList - DHCP серверүүдийн хар жагсаалт, SendRelease - сесс дуусах үед DHCP RELEASE мессеж илгээхийг идэвхжүүлэх;
  • Systemd-analyze хэрэгсэлд шинэ тушаалууд нэмэгдсэн:
    • “Systemd-analyze timetamp” - цагийг задлан шинжлэх, хөрвүүлэх;
    • "системд дүн шинжилгээ хийх хугацаа" - хугацааны шинжилгээ ба хөрвүүлэлт;
    • "системд дүн шинжилгээ хийх нөхцөл" - ConditionXYZ илэрхийллийг задлан шинжилж, шалгах;
    • "Systemd-analyze exit-status" - гаралтын кодыг тооноос нэр рүү болон эсрэгээр задлан шинжилж хөрвүүлэх;
    • "systemd-analyze unit-files" - Нэгж болон нэгжийн нэрийн бүх файлын замыг жагсаана.
  • Сонголтууд SuccessExitStatus, RestartPreventExitStatus болон
    RestartForceExitStatus нь одоо зөвхөн тоон буцах кодыг төдийгүй тэдгээрийн текст танигчийг (жишээлбэл, "DATAERR") дэмждэг. Та "sytemd-analyze exit-status" командыг ашиглан танигчдад олгосон кодын жагсаалтыг харах боломжтой;

  • "Устгах" командыг networkctl хэрэгсэлд нэмж виртуал сүлжээний төхөөрөмжүүдийг устгах, мөн төхөөрөмжийн статистикийг харуулах "-stats" сонголтыг нэмсэн;
  • SpeedMeter болон SpeedMeterIntervalSec тохиргоог networkd.conf-д нэмж сүлжээний интерфэйсүүдийн нэвтрүүлэх чадварыг үе үе хэмжих зорилгоор нэмсэн. Хэмжилтийн үр дүнгээс олж авсан статистикийг "networkctl status" командын гаралтаас харж болно;
  • Файл үүсгэх шинэ хэрэгсэл systemd-network-generator нэмэгдсэн
    .network, .netdev болон .link нь Dracut тохиргооны форматаар Линукс цөмийн командын шугамаар дамжуулан эхлүүлсэн IP тохиргоонд суурилсан;

  • 64 битийн систем дээрх sysctl "kernel.pid_max" утгыг одоо анхдагчаар 4194304 (22 битийн оронд 16 бит PID) гэж тохируулсан бөгөөд энэ нь PID оноох үед мөргөлдөх магадлалыг бууруулж, нэгэн зэрэг хийх тоон хязгаарыг нэмэгдүүлдэг. процессуудыг ажиллуулж, аюулгүй байдалд эерэг нөлөө үзүүлдэг. Өөрчлөлт нь нийцтэй байдлын асуудалд хүргэж болзошгүй боловч практикт ийм асуудал хараахан гараагүй байна;
  • Анхдагчаар, бүтээх үе шат нь нэгдсэн шаталсан cgroups-v2 (-Ddefault-hierarchy=unified) рүү шилждэг. Өмнө нь анхдагч нь эрлийз горим байсан (“-Ddefault-hierarchy=hybrid”);
  • Системийн дуудлагын шүүлтүүрийн (SystemCallFilter) үйлдлийг өөрчилсөн бөгөөд энэ нь хориглосон системийн дуудлагын хувьд тусдаа хэлхээг дуусгах нь урьдчилан таамаглах боломжгүй асуудалд хүргэж болзошгүй тул тус тусдаа хэлхээ биш харин бүх процессыг зогсооно. Өөрчлөлтүүд нь зөвхөн Linux цөм 4.14+ болон libseccomp 2.4.0+ байгаа тохиолдолд л хэрэгжинэ;
  • Давуу эрхгүй программуудад sysctl "net.ipv4.ping_group_range"-ыг бүх бүлгийн бүлгүүдэд (бүх процессуудад) тохируулснаар ICMP Echo (ping) пакетуудыг илгээх боломжийг олгодог;
  • Бүтээх үйл явцыг хурдасгахын тулд хүн гарын авлагыг үүсгэхийг анхдагчаар зогсоосон (баримт бичгийг бүрэн бүрдүүлэхийн тулд та html форматын гарын авлагад “-Dman=true” эсвэл “-Dhtml=true” гэсэн сонголтыг ашиглах хэрэгтэй). Баримт бичгийг үзэхэд хялбар болгохын тулд хоёр скриптийг оруулсан болно: build/man/man болон build/man/html нь сонирхсон гарын авлагыг үүсгэх, урьдчилан харах;
  • Үндэсний цагаан толгойн үсгийн тэмдэгт бүхий домэйн нэрийг боловсруулахын тулд анхдагчаар libidn2 номын санг ашигладаг (libidn-г буцаахын тулд “-Dlibidn=true” сонголтыг ашиглана уу);
  • Түгээлтэд өргөн тархаагүй функцээр хангагдсан /usr/sbin/halt.local гүйцэтгэх файлын дэмжлэгийг зогсоосон. Унтраах үед командуудыг ажиллуулах ажлыг зохион байгуулахын тулд /usr/lib/systemd/system-shutdown/ доторх скриптүүдийг ашиглах эсвэл final.target-аас хамаарах шинэ нэгжийг тодорхойлохыг зөвлөж байна;
  • Унтраах сүүлийн үе шатанд systemd нь "kernel.printk" sysctl-ийн бүртгэлийн түвшинг автоматаар нэмэгдүүлдэг бөгөөд энэ нь байнгын бүртгэлийн демонууд аль хэдийн дууссан үед унтрах дараагийн үе шатанд тохиолдсон үйл явдлуудыг бүртгэлд харуулах асуудлыг шийддэг. ;
  • Journalctl болон логуудыг харуулсан бусад хэрэгслүүдэд анхааруулгыг шараар, аудитын бүртгэлийг цэнхэр өнгөөр ​​тодруулж, олны нүдэн дээр тодруулсан;
  • $PATH орчны хувьсагч дээр bin/ руу очих зам одоо sbin/ хүртэлх замаас өмнө ирдэг, өөрөөр хэлбэл. хэрэв хоёр директорт гүйцэтгэгдэх файлуудын ижил нэр байгаа бол bin/-ын файлыг гүйцэтгэнэ;
  • systemd-logind нь SetBrightness() дуудлагыг суулгаж, дэлгэцийн гэрэлтүүлгийг сесс бүрээр аюулгүйгээр өөрчлөх боломжийг олгодог;
  • Төхөөрөмжийг эхлүүлэхийг хүлээхийн тулд "udevadm info" команд дээр "--wait-for-initialization" гэсэн тугийг нэмсэн;
  • Системийг ачаалах үед PID 1 зохицуулагч одоо нэгжийн нэрийг тэдгээрийн тайлбартай мөрийн оронд харуулдаг. Өмнөх үйлдлээ буцаахын тулд та /etc/systemd/system.conf доторх StatusUnitFormat сонголтыг эсвэл systemd.status_unit_format цөмийн сонголтыг ашиглаж болно;
  • Kexec ашиглан дахин эхлүүлэх хугацааг зааж өгсөн PID 1-д зориулсан /etc/systemd/system.conf-д KExecWatchdogSec сонголтыг нэмсэн. Хуучин тохиргоо
    ShutdownWatchdogSec-ийн нэрийг RebootWatchdogSec болгон өөрчилсөн бөгөөд унтрах эсвэл хэвийн дахин асаах үед ажлын цаг дуусах хугацааг тодорхойлдог;

  • Үйлчилгээнд шинэ сонголт нэмэгдлээ Гүйцэтгэх нөхцөл, энэ нь ExecStartPre-ээс өмнө гүйцэтгэх командуудыг зааж өгөх боломжийг олгодог. Тушаалын буцаасан алдааны код дээр үндэслэн нэгжийг цаашид ажиллуулах шийдвэр гаргана - хэрэв 0 код буцаж ирвэл нэгжийг эхлүүлэх ажиллагаа үргэлжилнэ, хэрэв 1-ээс 254 хүртэл бүтэлгүйтлийн туггүйгээр чимээгүй дуусна, 255 бол дуусна. бүтэлгүйтлийн туг;
  • Цаашид дүн шинжилгээ хийхийн тулд sys/fs/pstore/-аас өгөгдөл гаргаж авах болон /var/lib/pstore руу хадгалахаас өгөгдлийг задлах зорилгоор systemd-pstore.service шинэ үйлчилгээг нэмсэн;
  • Сүлжээний интерфейстэй холбоотой systemd-timesyncd-д зориулсан NTP параметрүүдийг тохируулах timedatectl хэрэгсэлд шинэ тушаалууд нэмэгдсэн;
  • "localectl list-locales" команд нь UTF-8-аас өөр хэлийг харуулахаа больсон;
  • Хэрэв хувьсагчийн нэр “-“ тэмдэгтээр эхэлсэн бол sysctl.d/ файл дахь хувьсагчийн хуваарилалтын алдааг үл тоомсорлодог;
  • үйлчилгээ systemd-санамсаргүй үр.үйлчилгээ одоо Линуксийн цөмийн псевдор санамсаргүй тоо үүсгэгчийн энтропийн санг эхлүүлэх ажлыг бүрэн хариуцаж байна. Зөв эхлүүлсэн /dev/urandom шаардлагатай үйлчилгээг systemd-random-seed.service;
  • Systemd-ачаалагч ачаалагч нь нэмэлтээр дэмжих боломжийг олгодог үрийн файл EFI системийн хуваалт (ESP) дахь санамсаргүй дарааллаар;
  • Bootctl хэрэгсэлд шинэ тушаалууд нэмэгдсэн: ESP-д үрийн файл үүсгэх "bootctl random-seed" болон systemd-boot ачаалагчийн суулгацыг шалгах "bootctl is-installed". bootctl нь ачаалах оруулгуудын буруу тохиргооны талаарх сэрэмжлүүлгийг харуулахаар тохируулагдсан (жишээлбэл, цөмийн зураг устгагдсан боловч ачаалах оруулга үлдсэн үед);
  • Систем унтах горимд шилжих үед солих хуваалтыг автоматаар сонгох боломжийг олгодог. Хуваалтыг түүнд тохируулсан тэргүүлэх чиглэл, ижил ач холбогдолтой тохиолдолд сул зайны хэмжээнээс хамааран сонгоно;
  • Шифрлэгдсэн хуваалт руу нэвтрэхийн тулд нууц үг асуухаас өмнө шифрлэлтийн түлхүүр бүхий төхөөрөмж хэр удаан хүлээхийг тохируулахын тулд /etc/crypttab-д keyfile-timeout сонголтыг нэмсэн;
  • BFQ хуваарилагчийн оролт/гаралтын жинг тохируулах IOWeight сонголтыг нэмсэн;
  • systemd-шийдвэрлэсэн DNS-over-TLS-д зориулсан "хатуу" горимыг нэмж, зөвхөн эерэг DNS хариултуудыг кэшлэх боломжийг хэрэгжүүлсэн (resoled.conf дотор "Cache no-negative");
  • VXLAN-ийн хувьд systemd-networkd нь VXLAN протоколын өргөтгөлүүдийг идэвхжүүлэхийн тулд GenericProtocolExtension сонголтыг нэмсэн. VXLAN болон GENEVE-д IPDoNotFragment сонголтыг нэмж илгээсэн пакетуудад хуваагдахыг хориглосон тугийг тохируулсан;
  • systemd-networkd-ийн "[Route]" хэсэгт FastOpenNoCookie сонголт гарч ирсэн бөгөөд TCP холболтыг (TFO - TCP Fast Open, RFC 7413) хурдан нээх механизм, түүнчлэн TTLPropagate сонголттой холбоотой. TTL LSP (Шошго шилжүүлсэн зам) -ийг тохируулах. "Төрөл" сонголт нь орон нутгийн, өргөн нэвтрүүлгийн, дурын дамжуулалт, олон дамжуулалт, дурын болон xresolve чиглүүлэлтийн горимуудыг дэмждэг;
  • Systemd-networkd нь өгөгдсөн сүлжээний төхөөрөмжийн өгөгдмөл маршрутыг автоматаар тохируулахын тулд “[Сүлжээ]” хэсэгт DefaultRouteOnDevice сонголтыг санал болгодог;
  • Systemd-networkd ProxyARP болон нэмсэн
    Прокси ARP горимыг тохируулах ProxyARPWifi, олон дамжуулалтын горимд чиглүүлэлтийн параметрүүдийг тохируулах MulticastRouter, олон дамжуулалтад зориулсан IGMP (Интернет группын удирдлагын протокол) хувилбарыг өөрчлөх MulticastIGMPVersion;

  • Systemd-networkd нь Local, Peer болон PeerPort тохируулгуудыг FooOverUDP хонгилд нэмж, локал болон алсын IP хаягууд болон сүлжээний портын дугаарыг тохируулсан. TUN хонгилын хувьд GSO (Ерөнхий сегментийг буулгах) дэмжлэгийг тохируулахын тулд VnetHeader сонголтыг нэмсэн;
  • systemd-networkd-ийн [Match] хэсгийн .network болон .link файлуудад Property сонголт гарч ирсэн бөгөөд энэ нь udev дахь төхөөрөмжүүдийг тусгай шинж чанараар нь тодорхойлох боломжийг олгодог;
  • systemd-networkd-д хонгилд зориулсан AssignToLoopback сонголтыг нэмсэн бөгөөд энэ нь хонгилын төгсгөлийг "lo" буцах төхөөрөмжид хуваарилсан эсэхийг хянадаг;
  • systemd-networkd нь IPv6 стекийг sysctl disable_ipv6-ээр блоклосон тохиолдолд автоматаар идэвхжүүлдэг - IPv6 тохиргоог сүлжээний интерфэйсийн хувьд (статик эсвэл DHCPv6) тодорхойлсон бол IPv6 идэвхждэг, эс тэгвээс аль хэдийн тохируулсан sysctl утга өөрчлөгдөхгүй;
  • .Сүлжээний файлуудын CriticalConnection тохиргоог KeepConfiguration сонголтоор сольсон бөгөөд энэ нь systemd-networkd-ийн хийх ёстой нөхцөл байдлыг ("тийм", "статик", "dhcp-on-stop", "dhcp") тодорхойлох илүү олон хэрэгслээр хангадаг. эхлүүлэх үед одоо байгаа холболтуудад хүрч болохгүй;
  • Эмзэг байдлыг зассан CVE-2019-15718, D-Bus интерфэйс системд хандалтын хяналт байхгүйгээс үүдэлтэй. Асуудал нь давуу эрхгүй хэрэглэгчдэд зөвхөн администраторуудад боломжтой үйлдлүүдийг хийх боломжийг олгодог, тухайлбал DNS тохиргоог өөрчлөх, DNS асуулгыг хуурамч сервер рүү чиглүүлэх;
  • Эмзэг байдлыг зассан CVE-2019-9619Интерактив бус сессүүдэд pam_systemd-г идэвхжүүлээгүйтэй холбоотой бөгөөд энэ нь идэвхтэй сессийг хууран мэхлэх боломжийг олгодог.

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

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