Издаване на системния мениджър systemd 243

След пет месеца разработка представен пускането на системния мениджър systemd 243. От новостите можем да подчертаем интеграцията на обработчик за недостатъчна памет в PID 1, поддръжка на прикрепване на собствени BPF програми за филтриране на трафика на unit-ите, многобройни нови опции за systemd-networkd, режим на мониторинг на пропускната способност на мрежовите интерфейси, използване по подразбиране на 64-битови системи с 22-битови номера на PID вместо 16-битови, преминаване към унифицирана йерархия на cgroups, включване в systemd-network-generator.

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

  • Към обработчика PID 1 е добавено разпознаване на генерираните от ядрото сигнали за недостатъчна памет (Out-Of-Memory, OOM) за превеждане на юнити, достигнали лимита на употреба на памет, в специално състояние с опционална възможност за принудително приключване или спиране;
  • За unit-файловете са реализирани нови параметри IPIngressFilterPath и
    IPEgressFilterPath, позволяващи свързване на BPF програми с произволни обработчици за филтриране на входящи и изходящи IP пакети, генерирани от процеси, свързани с този unit. Предложените функции позволяват създаване на своеобразни защитни стени за услугите на systemd. Пример за написване на прост филтър за мрежа на базата на BPF;
  • В утилитата systemctl е добавена команда „clean“ за премахване на кеша, runtime файловете, информацията за състоянието и директориите с логове;
  • В systemd-networkd е добавена поддръжка за мрежови интерфейси MACsec, nlmon, IPVTAP и Xfrm;
  • В systemd-networkd е реализирана отделна настройка на стековете DHCPv4 и DHCPv6 чрез секции „[DHCPv4]“ и „[DHCPv6]“ в конфигурационния файл. Добавена е опция RoutesToDNS за добавяне на отделен маршрут към DNS сървъра, указан в параметрите, получени от DHCP сървъра (за да се изпраща трафикът към DNS през същия линк, който е получен от DHCP). За DHCPv4 са добавени нови опции: MaxAttempts — максимален брой заявки за получаване на адрес, BlackList — черен списък на DHCP сървърите, SendRelease — включване на изпращането на DHCP RELEASE съобщения при приключване на сесия;
  • В утилитата systemd-analyze са добавени нови команди:
    • „systemd-analyze timestamp“ — анализ и преобразуване на времето;
    • „systemd-analyze timespan“ — анализ и преобразуване на интервали от време;
    • „systemd-analyze condition“ — анализ и тестване на изразите ConditionXYZ;
    • „systemd-analyze exit-status“ — анализ и преобразуване на кодовете за завършване от номера в имена и обратното;
    • «systemd-analyze unit-files» — извежда списък с всички файлови пътища за юнити и псевдоними на юнити.
  • Опциите SuccessExitStatus, RestartPreventExitStatus и
    RestartForceExitStatus сега поддържат не само числови кодове за завръщане, но и техните текстови идентификатори (например «DATAERR»). Списъкът на свързването на кодовете с идентификаторите може да бъде видян чрез командата «systemd-analyze exit-status»;
  • В утилитата networkctl е добавена команда «delete» за изтриване на виртуални мрежови устройства, а също така и опция «—stats» за извеждане на статистика по устройствата;
  • В networkd.conf са добавени настройки SpeedMeter и SpeedMeterIntervalSec за периодично измерване на пропускната способност на мрежовите интерфейси. Статистиката, получена от измерванията, може да бъде видяна в извода на командата ‘networkctl status’;
  • Добавена е нова утилита systemd-network-generator за генериране на файлове
    .network, .netdev и .link на базата на IP настройки, предадени при стартиране чрез командния ред на ядрото на Linux във формат на настройки Dracut;
  • Стойността на sysctl «kernel.pid_max» на 64-битови системи сега по подразбиране се задава на 4194304 (22-битови PID вместо 16-битови), което намалява вероятността от колизии при назначаване на PID, увеличава лимита на броя на едновременно стартирани процеси и положително влияе на сигурността. Потенциално промяната може да доведе до проблеми с обратно съвместимост, но до момента не са съобщавани подобни проблеми;
  • По подразбиране на етапа на сглобяване е реализиран преход към унифицирана йерархия cgroups-v2 («-Ddefault-hierarchy=unified»). Преди това по подразбиране се задаваше хибриден режим («-Ddefault-hierarchy=hybrid»);
  • Променено е поведението на филтъра за системни повиквания (SystemCallFilter), който при опит за достъп до забранено системно повикване сега приключва целия процес, а не отделни нишки (thread), тъй като завършването на отделни нишки може да доведе до непредсказуеми проблеми. Промените действат само при наличие на ядро на Linux 4.14+ и libseccomp 2.4.0+;
  • Необвързани програми получиха възможността да изпращат ICMP Echo пакети (ping) благодарение на настройката на sysctl «net.ipv4.ping_group_range» за целия диапазон на групи (за всички процеси);
  • За ускоряване на процеса на сглобяване по подразбиране е спряно генерирането на man-руководства (за сглобяване на пълната документация трябва да се използва опцията «-Dman=true» или «-Dhtml=true» за ръководства в html формат). За улесняване на прегледа на документацията са включени два скрипта build/man/man и build/man/html за генериране и предварителен преглед на интересуващите ръководства;
  • За обработка на домейн имена със символи от национални азбуки по подразбиране е задействана библиотеката libidn2 (за връщане на libidn следва да се използва опцията «-Dlibidn=true»);
  • Поддръжката на изпълнимия файл /usr/sbin/halt.local, който предоставяше функционалност, която не получи достатъчно разпространение в дистрибуциите, е спряна. Препоръчително е да се използват скриптове в /usr/lib/systemd/system-shutdown/ или да се определи нов unit, зависещ от final.target;
  • На последния етап на завършване на работата systemd сега автоматично увеличава нивото на логовете в sysctl «kernel.printk», което решава проблема с показването в логовете на събития, настъпили на по-късни етапи на завършване, когато стандартните демони за логиране вече са приключили;
  • В journalctl и в други утилити за показване на логове е осигурено оцветяване на предупрежденията в жълт цвят, а записите от одитите в синьо, за да се визуално отделят от общата маса;
  • В променливата за околната среда $PATH пътят към bin/ сега следва да бъде преди пътя към sbin/, т.е. при наличие на еднакви имена на изпълними файлове в двата каталога, ще бъде изпълнен файлът от bin/;
  • В systemd-logind е осигурен извикването на SetBrightness() за безопасно променяне на яркостта на екрана за всяка сесия;
  • Към командата «udevadm info» е добавен флаг «—wait-for-initialization» за чакане на завършването на инициализацията на устройството;
  • В процеса на зареждане на системата обработчикът PID 1 сега извежда на екрана имената на юнитите, вместо реда с техните описания. За възстановяване на предишното поведение може да се използва опцията StatusUnitFormat в /etc/systemd/system.conf или параметъра на ядрото systemd.status_unit_format;
  • В /etc/systemd/system.conf за watchdog в PID 1 е добавена опция KExecWatchdogSec, която определя таймаута за перезареждане с помощта на kexec. Старата настройка
    ShutdownWatchdogSec е преименувана в RebootWatchdogSec и определя таймаута за действий в процеса на завършване на работа или нормално рестартиране;
  • За услугите е добавена нова опция ExecCondition, позволяваща да зададете команди, които ще бъдат изпълнени преди ExecStartPre. На базата на кода за грешка, върнат от командата, се взема решение за по-нататъшното изпълнение на юнита — ако кодът е 0, стартирането на юнита продължава, ако е от 1 до 254 тихо приключва без забележка за провал, а ако е 255 — приключва с бележка за провал;
  • Добавен е новият сервиз systemd-pstore.service за извличане на данни от sys/fs/pstore/ и за запазване в /var/lib/pstore за последващ анализ;
  • В утилитата timedatectl са добавени нови команди за настройка на параметрите NTP за systemd-timesyncd, свързани с мрежовите интерфейси;
  • В командата «localectl list-locales» е спряно показването на локали, различни от UTF-8;
  • Осигурено е игнориране на грешки при присвояване на променливи в файловете sysctl.d/, ако името на променливата започва със знака «-«;
  • Услуга systemd-random-seed.service сега напълно отговаря за инициализацията на пула от ентропия за генератора на псевдослучайни числа в ядрото на Linux. Сервизите, на които им е необходима правилно инициализирана /dev/urandom, трябва да стартират след systemd-random-seed.service;
  • В заредителя systemd-boot е осигурена опционална възможност за поддържане на seed-файла с произволна последователност в раздела EFI System Partition (ESP);
  • В утилитата bootctl са добавени нови команди «bootctl random-seed» за генериране на seed-файл в ESP и «bootctl is-installed» за проверка на инсталацията на заредителя systemd-boot. В bootctl също е наложен извеждането на предупреждения за неправилна настройка на заредителните записи (например, когато образът на ядрото е изтрит, а записът за неговото зареждане е оставен);
  • Осигурен е автоматичен избор на раздела за подкачка при преминаване на системата в спящ режим. Разделът се избира в зависимост от зададения за него приоритет, а в случай на равни приоритети — от размера на свободното пространство;
  • В /etc/crypttab е добавена опцията keyfile-timeout за задаване на времето за изчакване на устройството с ключа за шифроване преди извеждане на искането за парола за достъп до шифрованата част;
  • Добавена е опцията IOWeight за задаване на тежестта на входа/изхода за планировчика BFQ;
  • В systemd-resolved е добавен строг (‘strict’) режим на работа за DNS-over-TLS и е реализирана възможността за кеширане само на позитивни DNS-отговори («Cache no-negative» в resolved.conf);
  • Добавена е опцията GenericProtocolExtension за разрешаване на разширения на протокола VXLAN в systemd-networkd. За VXLAN и GENEVE е добавена опцията IPDoNotFragment за задаване на флага за забрана на фрагментиране на изходящите пакети;
  • В секцията «[Route]» на systemd-networkd се появи опцията FastOpenNoCookie за включване на механизма за бързо отваряне на TCP връзки (TFO — TCP Fast Open, RFC 7413) в привязка към отделни маршрути, както и опцията TTLPropagate за настройка на TTL LSP (Label Switched Path). Подкрепата за режимите на маршрутизация local, broadcast, anycast, multicast, any и xresolve е осигурена в опцията «Type»;
  • В секцията «[Network]» на systemd-networkd е предложена опцията DefaultRouteOnDevice за автоматично задаване на маршрута по подразбиране за определено мрежово устройство;
  • В systemd-networkd за мрежови мостове бяха добавени опции ProxyARP и
    ProxyARPWifi за настройка на поведението на proxy ARP, MulticastRouter за задаване на параметри за маршрутизиране в режим multicast, MulticastIGMPVersion за промяна на версията на IGMP (Internet Group Management Protocol) за multicast;
  • В systemd-networkd за тунели FooOverUDP бяха добавени опции Local, Peer и PeerPort за настройка на IP адресите на локалната и отдалечената страна, както и на номера на мрежовия порт. За тунели TUN е добавена опцията VnetHeader за настройка на поддръжка на GSO (Generic Segment Offload);
  • В systemd-networkd в файловете .network и .link в секцията [Match] се появи опцията Property, която позволява идентифицирането на устройства по специфични за тях свойства в udev;
  • В systemd-networkd за тунели е добавена опцията AssignToLoopback, която управлява свързването на края на тунела с устройството loopback «lo»;
  • В systemd-networkd е автоматизирано активирането на IPv6 стека в случай на блокировка чрез sysctl disable_ipv6 — IPv6 се активира, ако за мрежовия интерфейс са зададени настройки за IPv6 (статични или DHCPv6), в противен случай вече зададената стойност на sysctl не се променя;
  • В файловете .network настройката CriticalConnection е заменена с опцията KeepConfiguration, предоставяща повече средства за определение на ситуации («yes», «static», «dhcp-on-stop», «dhcp»), при които systemd-networkd не трябва да променя вече съществуващите връзки при стартиране;
  • Отстранена уязвимост CVE-2019-15718, причинена от липса на контрол на достъпа до D-Bus интерфейса на systemd-resolved. Проблемът позволява на непривилегирован потребител да изпълнява операции, достъпни само за администратори, например, може да променя настройки на DNS и да насочва DNS запитвания към подменен сървър;
  • Отстранена уязвимост CVE-2019-9619, свързано с деактивирането на pam_systemd за неинтерактивни сесии, което позволява организирането на спуфинг на активна сесия.

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

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