Релиз на системния мениджър systemd 250

След пет месеца разработки бе представено изданието на системния мениджър systemd 250. В новото издание се появи възможността за съхранение на идентификационни данни в шифрован вид, реализирана е верификация на автоматично определените GPT-раздели по цифров подпис, подобрено е информираността за причините за забавяния при стартиране на услугите, добавени са опции за ограничаване на достъпа на услугата до определени файлови системи и мрежови интерфейси, осигурена е поддръжка на контрол на целостта на разделите с помощта на модула dm-integrity, добавена е поддръжка за автоматично обновление на sd-boot.

Основни промени:

  • Добавена е поддръжка на шифровани и автентифицирани идентификационни данни, което може да бъде полезно за безопасно съхранение на конфиденциални материали, като SSL-ключове и пароли за достъп. Дешифрирането на идентификационните данни се извършва само при необходимост и с привързване към локалната инсталация или оборудване. Данните се шифроват автоматично с използване на симетрични алгоритми за шифроване, ключът за които може да се съхранява във файловата система, в чипа TPM2 или с използване на комбинирана схема. При стартиране на услугата идентификационните данни автоматично се дешифрират и стават достъпни за услугата в обикновен вид. За работа с шифровани идентификационни данни е добавен инструментът ‘systemd-creds’, а за услугите са предложени настройки LoadCredentialEncrypted и SetCredentialEncrypted.
  • В sd-stub, изпълняем файл за EFI, с помощта на който фърмуерът EFI зарежда ядрото на Linux, е добавена поддръжка за зареждане на ядрото с помощта на протокола LINUX_EFI_INITRD_MEDIA_GUID EFI. Също така в sd-stub е добавена възможността за опаковане на идентификационни данни и файлове sysext в архив cpio и предаване на този архив на ядрото заедно с initrd (допълнителните файлове се съхраняват в директорията \/.extra\/). Посочената възможност позволява използването на верифицируемо неизменяемо окружение initrd, допълнително обогатявано с помощта на sysexts и шифровани данни за автентификация.
  • Съществено е разширена спецификацията Discoverable Partitions, предоставяща средства за определяне, монтиране и активиране на системни раздели, използващи GPT (GUID Partition Tables). В сравнение с предходните издания за повечето архитектури в спецификацията е реализирана поддръжка на кореновия раздел и раздела \/usr, включително за платформи, които не използват UEFI.

    В Discoverable Partitions е добавена поддръжка на дялове, чиято цялост се верифицира от модула dm-verity с използване на цифрови подписи PKCS#7, което опростява създаването на напълно аутентифицирани дискови образи. Поддръжката за верификация е интегрирана в различни инструменти, манипулиращи дискови образи, включително systemd-nspawn, systemd-sysext, systemd-dissect, услуги с RootImage, systemd-tmpfiles и systemd-sysusers.

  • За дълго стартирани или спирани единици в допълнение към показването на анимиран индикатор за изпълнение на операцията е предоставена възможност за извеждане на информация за състоянието, позволяваща разбирането на това, какво точно се случва с услугата в момента и завършването на коя услуга очаква в момента системният мениджър.
  • В /etc/systemd/system.conf и /etc/systemd/user.conf е добавен параметър DefaultOOMScoreAdjust, позволяващ коригиране на прага на срабатыване на OOM-killer при недостиг на памет, приложим за процесите, които стартира systemd за системата и потребителите. По подразбиране теглото на системните услуги е по-високо от това на потребителските, т.е. при недостиг на памет вероятността за завършване на потребителските услуги е по-висока от тази на системните.
  • Добавена е настройка RestrictFileSystems, позволяваща ограничаване на достъпа на услугите до определени типове файлови системи. За преглед на наличните типове ФС може да се използва командата „systemd-analyze filesystems“. По аналогия е реализирана опция RestrictNetworkInterfaces, позволяваща ограничаване на достъпа до определени мрежови интерфейси. Реализацията е основана на BPF-модул LSM, ограничавал достъпа на група процеси до обектите на ядрото.
  • Добавен е нов конфигурационен файл /etc/integritytab и утилита systemd-integritysetup, настройващи модула dm-integrity за контрол на целостта на данните на ниво отделни сектори, например, за гарантиране на неизменността на криптираните данни (Authenticated Encryption, гарантира, че блокът от данни не е бил модифициран по заобиколен път). Форматът на файла /etc/integritytab е аналогичен на файловете /etc/crypttab и /etc/veritytab, с изключение на това, че вместо dm-crypt и dm-verity се използва dm-integrity.
  • Добавен нов unit-файл systemd-boot-update.service, при активиране на който и наличието на инсталиран загрузчик sd-boot, systemd автоматично ще обновява версията на загрузчика sd-boot, поддържайки кода на загрузчика винаги актуален. Самият sd-boot сега по подразбиране се изгражда с поддръжка на механизма SBAT (UEFI Secure Boot Advanced Targeting), който решава проблеми с отзоваване на сертификати за UEFI Secure Boot. Освен това, в sd-boot е осигурена възможност за разбиране на настройките за зареждане на Microsoft Windows, за правилно формиране на имената на разделите за зареждане с Windows и показване на версията на Windows.

    В sd-boot също е предоставена възможност за определяне на цветова схема на етапа на изграждане. В процеса на зареждане е добавена поддръжка за смяна на разрешението на екрана с натискане на клавиша „r“. Добавено е бързо натискане „f“ за преминаване в интерфейса за настройка на фърмуера. Добавен е режим автоматично зареждане на системата, отговарящ на елемента от менюто, избран при предишно зареждане. Добавена е възможност за автоматично зареждане на EFI-драйвери, разположени в каталога /EFI/systemd/drivers/ в раздела ESP (EFI System Partition).

  • В състава е включен нов unit-файл factory-reset.target, обработван в systemd-logind по аналогия с операциите reboot, poweroff, suspend и hibernate, и използван за създаване на обработчици за извършване на нулиране до заводските настройки.
  • Процесът systemd-resolved сега създава допълнителен слушащ сокет на адрес 127.0.0.54 в допълнение към 127.0.0.53. Постъпващите на адрес 127.0.0.54 заявки винаги се пренасочват към горния DNS-сървър и не се обработват локално.
  • Предоставена е възможност за изграждане на systemd-importd и systemd-resolved с библиотеката OpenSSL вместо libgcrypt.
  • Добавена е начална поддръжка за архитектурата LoongArch, използвана в процесорите Loongson.
  • В systemd-gpt-auto-generator е реализирана възможност за автоматична настройка на определените от системата дялове за разменна памет, криптирани с подсистемата LUKS2.
  • В кода за разбиране на GPT-образи, използван в systemd-nspawn, systemd-dissect и подобни утилити, е реализирана възможност за декодиране на образи за други архитектури, което позволява използването на systemd-nspawn за стартиране на образи в емулатори на други архитектури.
  • При инспектиране на дискови образи в systemd-dissect сега се извеждат сведения за назначението на раздела, например, годност за зареждане през UEFI или стартиране в контейнер.
  • В папката system-extension.d/ е добавено поле «SYSEXT_SCOPE», което позволява да се определи областта на приложение на системния образ – «initrd», «system» или «portable».
  • В файла os-release е добавено поле «PORTABLE_PREFIXES», което може да се използва в преносими образи за определяне на поддържаните префикси на unit-файловете.
  • В systemd-logind са реализирани нови настройки HandlePowerKeyLongPress, HandleRebootKeyLongPress, HandleSuspendKeyLongPress и HandleHibernateKeyLongPress, които могат да се използват за определяне на действия при задържане на определени клавиши за повече от 5 секунди (например, при бързо натискане на клавиша Suspend може да се настрои преход в режим на изчакване, а при задържане – в спящ режим).
  • За unit-ите са реализирани настройки StartupAllowedCPUs и StartupAllowedMemoryNodes, които се различават от аналогичните настройки без префикс Startup по това, че се прилагат само в етапа на зареждане и завършване на работа, което позволява да се зададат различни ограничения на ресурсите при зареждане.
  • Добавени са проверки [Condition|Assert][Memory|CPU|IO]Pressure, позволяващи да се пропусне или завърши с грешка активацията на unit-а в случай на определени чрез механизма PSI натоварвания на паметта, CPU и вход/изход в системата.
  • По подразбиране ограничението за максимален брой inode е увеличено за дяла /dev от 64k на 1M, а за /tmp от 400k на 1M.
  • За услугите е предложена настройката ExecSearchPath, която дава възможност да се променя пътят за търсене на изпълними файлове, стартирани чрез настройки, подобни на ExecStart.
  • Добавена е настройка RuntimeRandomizedExtraSec, която позволява да се внесат случайни отклонения в таймаута RuntimeMaxSec, ограничавящ времето за изпълнение на unit-а.
  • Разширен е синтаксисът на настройките RuntimeDirectory, StateDirectory, CacheDirectory и LogsDirectory, в които чрез указване на допълнително значение, разделено с двоеточие, сега може да се организира създаването на символична връзка към зададената директория за организиране на достъп по няколко пътеки.
  • За услугите са предложени настройки TTYRows и TTYColumns за задаване на броя на редовете и колоните в устройството TTY.
  • Добавена е настройка ExitType, която позволява да се промени логиката за определяне на завършването на услугата. По подразбиране systemd следи завършването само на основния процес, но при задаване на ExitType=cgroup системният мениджър ще изчака завършването на последния процес в cgroup.
  • Поддръжката на TPM2/FIDO2/PKCS11 в systemd-cryptsetup вече може да се компилира и като плъгин към cryptsetup, което позволява използването на стандартната команда cryptsetup за отключване на криптиран дял.
  • В обработчика на TPM2 в systemd-cryptsetup/systemd-cryptsetup е добавена поддръжка за основни RSA ключове, освен ECC ключовете, за подобряване на съвместимостта с чипове, които не поддържат ECC.
  • В /etc/crypttab е добавена опция token-timeout, която позволява определяне на максимално време за изчакване за свързване на токен PKCS#11/FIDO2, след което ще бъде изведен запитване за въвеждане на парола или ключ за възстановяване.
  • В systemd-timesyncd е внедрена настройка SaveIntervalSec, която позволява периодично записване на текущата системна часова стойност на диска, например, за реализиране на монотонни часове на системи без RTC.
  • В утилитата systemd-analyze са добавени опции: «—image» и «—root» за проверка на unit-файлове вътре в указан образ или коренова директория, «—recursive-errors» за отчитане на зависими юнити при откриване на грешка, «—offline» за проверка на отделно запазени unit-файлове на диск, «—json» за изход в JSON формат, «—quiet» за деактивиране на незначителни съобщения, «—profile» за свързване с преносим профил. Също така е добавена командата inspect-elf за анализ на core файлове в ELF формат и възможността за проверка на unit-файлове с определено име на юнита, независимо дали това име съвпада с името на файла.
  • В systemd-networkd е разширена поддръжката на CAN шина (Controller Area Network). Добавени са настройки за управление на режимите на CAN: Loopback, OneShot, PresumeAck и ClassicDataLengthCode. В секцията [CAN] на .network файловете са добавени опции TimeQuantaNSec, PropagationSegment, PhaseBufferSegment1, PhaseBufferSegment2, SyncJumpWidth, DataTimeQuantaNSec, DataPropagationSegment, DataPhaseBufferSegment1, DataPhaseBufferSegment2 и DataSyncJumpWidth за управление на битовата синхронизация на CAN интерфейса.
  • В systemd-networkd за клиента DHCPv4 е добавена опция Label, която позволява конфигуриране на етикет на адресите, използван при конфигуриране на IPv4 адреси.
  • В systemd-udevd за «ethtool» е реализирана поддръжка на специални стойности «max», които задават размера на буфера на максималната стойност, поддържана от оборудването.
  • В .link файловете за systemd-udevd сега могат да се конфигурират различни параметри за обединение на мрежови адаптери и свързване на хардуерни обработватели (offload).
  • В systemd-networkd по подразбиране предлагат нови .network файлове: 80-container-vb.network за определяне на мрежови мостове, създадени при стартиране на systemd-nspawn с опции «—network-bridge» или «—network-zone»; 80-6rd-tunnel.network за определяне на тунели, автоматично създавани при получаване на DHCP отговор с опция 6RD.
  • В systemd-networkd и systemd-udevd е добавена поддръжка за пренос на IP през интерфейси InfiniBand, за което в файловете systemd.netdev е добавен секция «[IPoIB]», а в настройката Kind е реализирана обработка на стойността «ipoib».
  • В systemd-networkd е осигурена автоматична настройка на маршрути за адреси, посочени в параметъра AllowedIPs, който може да бъде настроен чрез параметрите RouteTable и RouteMetric в секциите [WireGuard] и [WireGuardPeer].
  • В systemd-networkd е осигурена автоматична генерация на неизменящи се MAC адреси за интерфейси batadv и bridge. За да се деактивира това поведение, може да се зададе стойността MACAddress=none в .netdev файловете.
  • В .link файловете в секцията «[Link]» е добавена настройка WakeOnLanPassword, за определяне на паролата при работа с WoL в режим «SecureOn».
  • В секцията «[CAKE]» на .network файловете са добавени настройки AutoRateIngress, CompensationMode, FlowIsolationMode, NAT, MPUBytes, PriorityQueueingPreset, FirewallMark, Wash, SplitGSO и UseRawPacketSize за определяне на параметрите на механизма за управление на мрежови опашки CAKE (Common Applications Kept Enhanced).
  • В секцията «[Network]» на .network файловете е добавена настройка IgnoreCarrierLoss, позволяваща да се определи колко дълго да се изчака преди реакция на загуба на носещ сигнал.
  • В systemd-nspawn, homectl, machinectl и systemd-run е разширен синтаксиса на параметъра «—setenv» — ако е посочено само името на променливата (без «=»), стойността ще бъде взета от съответната променлива на околната среда (например, при указване на «—setenv=FOO» ще бъде взета стойността от променливата на околната среда $FOO и използвана в зададената в контейнера променлива с едноименно име).
  • В systemd-nspawn е добавена опция «—suppress-sync» за деактивиране на изпълнението на системни повиквания sync()/fsync()/fdatasync() при създаване на контейнер (полезно, когато скоростта е от първостепенно значение, а запазването на сборни артефакти в случай на неизправност не е важно, тъй като те могат да бъдат създадени отново по всяко време).
  • Добавена нова база данни hwdb, която включва различни типове анализатори на сигнали (мултиметри, анализатори на протоколи, осцилоскопи и т.н.). Информацията за камерите в hwdb е разширена с поле за информация за типа на камерата (обикновена или инфрачервена) и разположението на обектива (отпред или отзад).
  • Осигурена е генерация на постоянни имена на мрежови интерфейси за устройствата netfront, използвани в Xen.
  • Анализът на core файловете с помощта на утилитата systemd-coredump на базата на библиотеките libdw/libelf вече се извършва в отделен процес, изолиран в sandbox среда.
  • В systemd-importd е добавена поддръжка на променливи на средата $SYSTEMD_IMPORT_BTRFS_SUBVOL, $SYSTEMD_IMPORT_BTRFS_QUOTA, $SYSTEMD_IMPORT_SYNC, с помощта на които могат да се деактивират генерацията на подделения Btrfs, както и да се конфигурират квоти и синхронизация на дискове.
  • В systemd-journald на файлови системи, поддържащи режим copy-on-write, е осигурено повторно активиране на режима COW за архивни журнали, което позволява тяхното компресиране с помощта на Btrfs.
  • В systemd-journald е реализирана дедупликация на идентични полета в едно съобщение, която се извършва на етапа преди записването на съобщението в журнала.
  • В командата shutdown е добавена опция «—show» за показване на планираното завършване на работата.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster