systemd tizim menejeri versiyasi 243

Besh oylik rivojlanishdan keyin taqdim etildi tizim menejeri versiyasi 243. Innovatsiyalar qatorida tizimdagi kam xotira uchun ishlov beruvchining PID 1 ga integratsiyasini, birlik trafigini filtrlash uchun shaxsiy BPF dasturlarini biriktirishni qo'llab-quvvatlashni, systemd-networkd uchun ko'plab yangi imkoniyatlarni, tarmoq o'tkazuvchanligini kuzatish rejimini qayd etishimiz mumkin. 64-bitli tizimlarda sukut bo'yicha 22-bit o'rniga 16-bitli PID raqamlarini yoqadigan interfeyslar, birlashtirilgan guruhlar ierarxiyasiga o'tish, systemd-tarmoq-generatoriga qo'shilish.

Asosiy o'zgarishlar:

  • Xotira tugashi haqidagi yadro tomonidan yaratilgan signallarni tanib olish (Out-Of-Memory, OOM) PID 1 ishlov beruvchisiga xotira iste'moli chegarasiga yetgan birliklarni ixtiyoriy ravishda tugatishga majburlash imkoniyati bilan maxsus holatga o'tkazish uchun qo'shildi. yoki to'xtatish;
  • Birlik fayllari uchun IPIngressFilterPath yangi parametrlari va
    IPEgressFilterPath, BPF dasturlarini o'zboshimchalik bilan ishlov beruvchilar bilan ulash imkonini beradi, bu qurilma bilan bog'liq jarayonlar tomonidan yaratilgan kiruvchi va chiquvchi IP-paketlarni filtrlash uchun. Taklif etilayotgan xususiyatlar tizim xizmatlari uchun o'ziga xos xavfsizlik devorini yaratishga imkon beradi. Yozish misoli BPF asosidagi oddiy tarmoq filtri;

  • Keshni, ish vaqti fayllarini, holat ma'lumotlarini va jurnal kataloglarini o'chirish uchun systemctl yordam dasturiga "toza" buyrug'i qo'shildi;
  • systemd-networkd MACsec, nlmon, IPVTAP va Xfrm tarmoq interfeyslarini qo'llab-quvvatlaydi;
  • systemd-networkd konfiguratsiya faylidagi "[DHCPv4]" va "[DHCPv6]" bo'limlari orqali DHCPv4 va DHCPv6 steklarining alohida konfiguratsiyasini amalga oshiradi. DHCP serveridan olingan parametrlarda ko'rsatilgan DNS serveriga alohida marshrut qo'shish uchun RoutesToDNS opsiyasi qo'shildi (shunda DNS ga trafik DHCP dan olingan asosiy marshrut bilan bir xil havola orqali yuboriladi). DHCPv4 uchun yangi imkoniyatlar qo'shildi: MaxAttempts - manzilni olish uchun so'rovlarning maksimal soni, Qora ro'yxat - DHCP serverlarining qora ro'yxati, SendRelease - seans tugashi bilan DHCP RELEASE xabarlarini yuborishni yoqish;
  • Systemd-analyze yordam dasturiga yangi buyruqlar qo'shildi:
    • "tizim-tahlil vaqt tamg'asi" - vaqtni tahlil qilish va konvertatsiya qilish;
    • “tizim-tahlil vaqti” - vaqt davrlarini tahlil qilish va konvertatsiya qilish;
    • "Tizim-tahlil sharti" - ConditionXYZ ifodalarini tahlil qilish va sinash;
    • "chiqish holatini tizimli tahlil qilish" - chiqish kodlarini raqamlardan nomlarga va aksincha tahlil qilish va o'zgartirish;
    • "systemd-analyze unit-files" - birliklar va birlik taxalluslari uchun barcha fayl yo'llarini ko'rsatadi.
  • Variantlar SuccessExitStatus, RestartPreventExitStatus va
    RestartForceExitStatus endi nafaqat raqamli qaytarish kodlarini, balki ularning matn identifikatorlarini ham qo'llab-quvvatlaydi (masalan, "DATAERR"). Siz "sytemd-analyze exit-status" buyrug'i yordamida identifikatorlarga tayinlangan kodlar ro'yxatini ko'rishingiz mumkin;

  • Virtual tarmoq qurilmalarini o'chirish uchun networkctl yordam dasturiga "o'chirish" buyrug'i, shuningdek, qurilma statistikasini ko'rsatish uchun "-stats" opsiyasi qo'shildi;
  • Tarmoq interfeyslarining o'tkazuvchanligini vaqti-vaqti bilan o'lchash uchun networkd.conf ga SpeedMeter va SpeedMeterIntervalSec sozlamalari qo'shildi. O'lchov natijalaridan olingan statistikani "networkctl status" buyrug'ining chiqishida ko'rish mumkin;
  • Fayllarni yaratish uchun yangi systemd-tarmoq-generator yordam dasturi qo'shildi
    .network, .netdev va .link Dracut sozlamalari formatida Linux yadrosi buyruq qatori orqali ishga tushirilganda o'tkazilgan IP sozlamalariga asoslangan;

  • 64 bitli tizimlarda sysctl "kernel.pid_max" qiymati endi sukut bo'yicha 4194304 (22 bit o'rniga 16 bitli PID) ga o'rnatiladi, bu PIDlarni belgilashda to'qnashuvlar ehtimolini kamaytiradi va bir vaqtning o'zida soni chegarasini oshiradi. jarayonlarni ishga tushiradi va xavfsizlikka ijobiy ta'sir ko'rsatadi. O'zgartirish potentsial muvofiqlik muammolariga olib kelishi mumkin, ammo bunday muammolar amalda hali qayd etilmagan;
  • Odatiy bo'lib, qurish bosqichi birlashgan ierarxiya cgroups-v2 ga o'tadi (“-Ddefault-ierarchy=unified”). Ilgari standart gibrid rejim edi (“-Ddefault-ierarchy=gibrid”);
  • Tizim chaqiruvi filtrining (SystemCallFilter) xatti-harakati o'zgartirildi, bu taqiqlangan tizim qo'ng'irog'i holatida endi alohida oqimlarni emas, balki butun jarayonni tugatadi, chunki alohida oqimlarni tugatish oldindan aytib bo'lmaydigan muammolarga olib kelishi mumkin. O'zgarishlar faqat sizda Linux yadrosi 4.14+ va libseccomp 2.4.0+ bo'lsa amal qiladi;
  • Imtiyozsiz dasturlarga guruhlarning butun diapazoni uchun (barcha jarayonlar uchun) "net.ipv4.ping_group_range" sysctl o'rnatish orqali ICMP Echo (ping) paketlarini yuborish imkoniyati beriladi;
  • Qurilish jarayonini tezlashtirish uchun inson qoʻllanmalarini yaratish sukut boʻyicha toʻxtatilgan (toʻliq hujjatlarni yaratish uchun html formatidagi qoʻllanmalar uchun “-Dman=true” yoki “-Dhtml=true” opsiyasidan foydalanishingiz kerak). Hujjatlarni ko'rishni osonlashtirish uchun ikkita skript kiritilgan: qiziqarli qo'llanmalarni yaratish va ko'rib chiqish uchun build/man/man va build/man/html;
  • Milliy alifbodagi belgilar bilan domen nomlarini qayta ishlash uchun sukut bo'yicha libidn2 kutubxonasidan foydalaniladi (libidnni qaytarish uchun “-Dlibidn=true” variantidan foydalaning);
  • Distribyutorlarda keng tarqalmagan funksionallikni ta'minlovchi /usr/sbin/halt.local bajariladigan faylni qo'llab-quvvatlash to'xtatildi. O'chirishda buyruqlarni ishga tushirishni tashkil qilish uchun /usr/lib/systemd/system-shutdown/ da skriptlardan foydalanish yoki final.target ga bog'liq bo'lgan yangi birlikni aniqlash tavsiya etiladi;
  • O'chirishning so'nggi bosqichida systemd endi sysctl "kernel.printk" da jurnal darajasini avtomatik ravishda oshiradi, bu esa o'chirishning keyingi bosqichlarida, muntazam logging demonlari allaqachon tugallanganda sodir bo'lgan voqealarni jurnalda ko'rsatish bilan bog'liq muammoni hal qiladi. ;
  • Jurnalctl va jurnallarni aks ettiruvchi boshqa yordamchi dasturlarda ogohlantirishlar sariq rangda, audit yozuvlari esa ko'k rangda ajratib ko'rsatilgan, ularni olomondan vizual tarzda ajratib ko'rsatish;
  • $PATH muhit o'zgaruvchisida bin/ ga yo'l endi sbin/ yo'lidan oldin keladi, ya'ni. agar ikkala katalogda ham bajariladigan fayllarning bir xil nomlari mavjud bo'lsa, bin/ dan fayl bajariladi;
  • systemd-logind har bir seans asosida ekran yorqinligini xavfsiz o'zgartirish uchun SetBrightness() chaqiruvini taqdim etadi;
  • Qurilma ishga tushishini kutish uchun “udevadm info” buyrug‘iga “--wait-for-initialization” bayrog‘i qo‘shildi;
  • Tizimni yuklash paytida, PID 1 ishlov beruvchisi endi ularning tavsifi bilan chiziq o'rniga birliklarning nomlarini ko'rsatadi. Oldingi xatti-harakatlarga qaytish uchun /etc/systemd/system.conf yoki systemd.status_unit_format yadro opsiyasidagi StatusUnitFormat opsiyasidan foydalanishingiz mumkin;
  • /etc/systemd/system.conf ga KExecWatchdogSec opsiyasi qo'shildi, bu esa kexec yordamida qayta ishga tushirish uchun vaqt tugashini belgilaydi. Eski sozlash
    ShutdownWatchdogSec nomi RebootWatchdogSec ga o‘zgartirildi va o‘chirish yoki normal qayta ishga tushirish vaqtida ishlar uchun vaqt tugashini belgilaydi;

  • Xizmatlar uchun yangi variant qo'shildi Exec Condition, bu ExecStartPre dan oldin bajariladigan buyruqlarni belgilash imkonini beradi. Buyruq tomonidan qaytarilgan xato kodiga asoslanib, blokni keyingi bajarish to'g'risida qaror qabul qilinadi - agar kod 0 qaytarilsa, blokni ishga tushirish davom etadi, agar 1 dan 254 gacha bo'lsa, u nosozlik belgisisiz jimgina tugasa, 255 bilan tugaydi. muvaffaqiyatsizlik belgisi;
  • sys/fs/pstore/ dan ma'lumotlarni olish va keyingi tahlil qilish uchun /var/lib/pstore ga saqlashdan ma'lumotlarni olish uchun yangi systemd-pstore.service xizmati qo'shildi;
  • Tarmoq interfeyslariga nisbatan systemd-timesyncd uchun NTP parametrlarini sozlash uchun timedatectl yordam dasturiga yangi buyruqlar qo'shildi;
  • "localectl list-locales" buyrug'i endi UTF-8 dan boshqa mahalliy tillarni ko'rsatmaydi;
  • Agar o'zgaruvchi nomi “-” belgisi bilan boshlansa, sysctl.d/ fayllaridagi o'zgaruvchilarni belgilash xatolariga e'tibor bermaslikni ta'minlaydi;
  • xizmat systemd-random-seed.service Linux yadrosi psevdor tasodifiy raqamlar generatorining entropiya pulini ishga tushirish uchun to'liq javobgardir. To'g'ri ishga tushirilgan /dev/urandom talab qiladigan xizmatlar systemd-random-seed.service;
  • Systemd-boot yuklash moslamasi qo'llab-quvvatlashning ixtiyoriy qobiliyatini ta'minlaydi urug 'fayl EFI tizimi bo'limida (ESP) tasodifiy ketma-ketlik bilan;
  • Bootctl yordam dasturiga yangi buyruqlar qo'shildi: ESP da urug 'faylini yaratish uchun "bootctl random-seed" va systemd-boot yuklash moslamasining o'rnatilishini tekshirish uchun "bootctl is-installed". bootctl shuningdek, yuklash yozuvlarining noto'g'ri konfiguratsiyasi haqida ogohlantirishlarni ko'rsatish uchun ham sozlangan (masalan, yadro tasviri o'chirilganda, lekin uni yuklash uchun yozuv qolganda);
  • Tizim uyqu rejimiga o'tganda almashtirish bo'limini avtomatik tanlashni ta'minlaydi. Bo'lim u uchun sozlangan ustuvorlikka va bir xil ustuvorliklar bo'lsa, bo'sh joy miqdoriga qarab tanlanadi;
  • Shifrlangan boʻlimga kirish uchun parol soʻrashdan oldin shifrlash kaliti boʻlgan qurilma qancha vaqt kutishini belgilash uchun /etc/crypttab-ga kalit fayli vaqti tugashi opsiyasi qoʻshildi;
  • BFQ rejalashtiruvchisi uchun I/O vaznini o'rnatish uchun IOWeight opsiyasi qo'shildi;
  • systemd-resolved DNS-over-TLS uchun "qat'iy" ish rejimini qo'shadi va faqat ijobiy DNS javoblarini keshlash qobiliyatini amalga oshiradi (resoled.conf ichida "Kesh no-salbiy");
  • VXLAN uchun systemd-networkd VXLAN protokoli kengaytmalarini yoqish uchun GenericProtocolExtension variantini qo'shdi. VXLAN va GENEVE uchun IPDoNotFragment opsiyasi chiquvchi paketlar uchun parchalanishni taqiqlash bayrog'ini o'rnatish uchun qo'shilgan;
  • Systemd-networkd-da, "[Route]" bo'limida FastOpenNoCookie opsiyasi alohida marshrutlarga nisbatan TCP ulanishlarini (TFO - TCP Fast Open, RFC 7413) tez ochish mexanizmini, shuningdek TTLPropagate opsiyasini yoqish uchun paydo bo'ldi. TTL LSP (Label Switched Path) ni sozlash uchun. “Type” opsiyasi mahalliy, translyatsiya, har qanday tarqatish, multicast, har qanday va xresolve marshrutlash rejimlarini qo‘llab-quvvatlaydi;
  • Systemd-networkd ma'lum bir tarmoq qurilmasi uchun standart marshrutni avtomatik ravishda sozlash uchun “[Tarmoq]” bo'limida DefaultRouteOnDevice opsiyasini taklif qiladi;
  • Systemd-networkd ProxyARP va
    Proksi-server ARP xatti-harakatlarini sozlash uchun ProxyARPWifi, multicast rejimida marshrutlash parametrlarini o'rnatish uchun MulticastRouter, multicast uchun IGMP (Internet Group Management Protocol) versiyasini o'zgartirish uchun MulticastIGMPVersion;

  • Systemd-networkd mahalliy va masofaviy IP manzillarni, shuningdek, tarmoq port raqamini sozlash uchun FooOverUDP tunnellari uchun Local, Peer va PeerPort opsiyalarini qo'shdi. TUN tunnellari uchun GSO (Generic Segment Offload) qo'llab-quvvatlashini sozlash uchun VnetHeader opsiyasi qo'shildi;
  • systemd-networkd da, [Match] bo'limidagi .network va .link fayllarida Xususiyatlar opsiyasi paydo bo'ldi, bu sizga qurilmalarni udevdagi o'ziga xos xususiyatlariga ko'ra aniqlash imkonini beradi;
  • systemd-networkd-da tunnellar uchun AssignToLoopback opsiyasi qo'shildi, bu tunnel oxiri "lo" orqaga qaytish qurilmasiga tayinlanganligini nazorat qiladi;
  • systemd-networkd, agar u sysctl disable_ipv6 orqali bloklangan bo'lsa, IPv6 stekini avtomatik ravishda faollashtiradi - tarmoq interfeysi uchun IPv6 sozlamalari (statik yoki DHCPv6) aniqlangan bo'lsa, IPv6 faollashadi, aks holda allaqachon o'rnatilgan sysctl qiymati o'zgarmaydi;
  • .tarmoq fayllarida CriticalConnection sozlamalari KeepConfiguration opsiyasi bilan almashtirildi, bu tizimd-networkd kerak bo‘ladigan vaziyatlarni (“ha”, “statik”, “dhcp-on-stop”, “dhcp”) aniqlash uchun ko‘proq vositalarni taqdim etadi. ishga tushirilganda mavjud ulanishlarga tegmang;
  • Zaiflik aniqlandi CVE-2019-15718, D-Bus interfeysi tizimiga kirishni boshqarishning yo'qligi tufayli yuzaga kelgan. Muammo imtiyozsiz foydalanuvchiga faqat ma'murlar uchun mavjud bo'lgan operatsiyalarni bajarishga imkon beradi, masalan, DNS sozlamalarini o'zgartirish va DNS so'rovlarini noto'g'ri serverga yo'naltirish;
  • Zaiflik aniqlandi CVE-2019-9619pam_systemd-ni interaktiv bo'lmagan seanslar uchun yoqmaslik bilan bog'liq bo'lib, bu faol seansni aldash imkonini beradi.

Manba: opennet.ru

a Izoh qo'shish