Издание 243 на системскиот менаџер на системот

По пет месеци развој презентирани ослободување на системскиот менаџер системд 243. Меѓу иновациите, може да се забележи интеграција во PID 1 на управувач за слаба меморија во системот, поддршка за прикачување на сопствени BPF програми за филтрирање на сообраќајот на единицата, бројни нови опции за systemd-networkd, режим за следење на пропусниот опсег на мрежата интерфејси, кои стандардно овозможуваат на 64-битни системи 22-битни PID броеви наместо 16-битни, транзиција кон унифицирана хиерархија на cgroups, вклучување во systemd-network-generator.

Главни промени:

  • Препознавањето на сигналите генерирани од јадрото за без меморија (Out-Of-Memory, OOM) е додадено во управувачот PID 1 за да се префрлат единиците што го достигнале лимитот за потрошувачка на меморија во посебна состојба со опционална можност да се принудат да се прекинат или запре;
  • За единечни датотеки, нови параметри IPIngressFilterPath и
    IPEgressFilterPath, кој ви овозможува да ги поврзете програмите BPF со произволни управувачи за да ги филтрирате дојдовните и појдовните IP пакети генерирани од процесите поврзани со оваа единица. Предложените карактеристики ви дозволуваат да креирате еден вид заштитен ѕид за системски услуги. Пример за пишување едноставен мрежен филтер базиран на BPF;

  • Командата „чиста“ е додадена во алатката systemctl за бришење на кешот, датотеките за извршување, информациите за статусот и директориумите за дневници;
  • 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 timepan“ - анализа и конверзија на временски периоди;
    • „Состојба на системска анализа“ - парсирање и тестирање на изразите на ConditionXYZ;
    • „Системска анализа на излезниот статус“ - парсирање и конвертирање на излезните шифри од броеви во имиња и обратно;
    • "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 врз основа на поставките за IP поминати при лансирање преку командната линија на Linux кернелот во формат за поставки Dracut;

  • Вредноста sysctl „kernel.pid_max“ на 64-битни системи сега е стандардно поставена на 4194304 (22-битни PID наместо 16-бита), што ја намалува веројатноста за судири при доделување на PID-и, ја зголемува границата на бројот на истовремено водење на процеси, и има позитивно влијание врз безбедноста. Промената потенцијално може да доведе до проблеми со компатибилноста, но таквите проблеми сè уште не се пријавени во пракса;
  • Стандардно, фазата на изградба се префрла на обединетата хиерархија cgroups-v2 („-Ddefault-hierarchy=unified“). Претходно, стандардниот беше хибриден режим („-Ddefault-hierarchy=hybrid“);
  • Однесувањето на филтерот за системски повици (SystemCallFilter) е променето, што, во случај на забранет системски повик, сега го прекинува целиот процес, наместо поединечни нишки, бидејќи прекинувањето на поединечни нишки може да доведе до непредвидливи проблеми. Промените се применуваат само ако имате Linux кернел 4.14+ и libseccomp 2.4.0+;
  • На непривилегираните програми им се дава можност да испраќаат ICMP Echo (ping) пакети со поставување на sysctl „net.ipv4.ping_group_range“ за целиот опсег на групи (за сите процеси);
  • За да се забрза процесот на градење, генерирањето на прирачници за човек е стандардно запрено (за да се изгради целосна документација, треба да ја користите опцијата „-Dman=true“ или „-Dhtml=true“ за прирачници во html формат). За да се олесни прегледувањето на документацијата, вклучени се две скрипти: build/man/man и build/man/html за генерирање и преглед на прирачници од интерес;
  • За обработка на имиња на домени со знаци од националните азбуки, стандардно се користи библиотеката libidn2 (за враќање на libidn, користете ја опцијата „-Dlibidn=true“);
  • Поддршката за /usr/sbin/halt.local извршната датотека, која обезбедуваше функционалност што не беше широко дистрибуирана во дистрибуциите, е прекината. За да се организира стартување на команди при исклучување, се препорачува да се користат скрипти во /usr/lib/systemd/system-shutdown/ или да се дефинира нова единица која зависи од final.target;
  • Во последната фаза од исклучувањето, systemd сега автоматски го зголемува нивото на евиденција во sysctl „kernel.printk“, што го решава проблемот со прикажување во дневникот настани што се случиле во подоцнежните фази на исклучување, кога редовните демони за евиденција веќе се завршени ;
  • Во journalctl и други услужни програми кои прикажуваат дневници, предупредувањата се означени со жолто, а ревизорските записи се означени со сино за визуелно да се истакнат од толпата;
  • Во променливата на околината $PATH, патеката до bin/ сега доаѓа пред патеката до sbin/, т.е. ако има идентични имиња на извршни датотеки во двата директориуми, датотеката од bin/ ќе се изврши;
  • systemd-logind обезбедува повик SetBrightness() за безбедно менување на осветленоста на екранот врз основа на секоја сесија;
  • Знамето „--wait-for-initialization“ е додадено на командата „udevadm info“ за да се чека уредот да се иницијализира;
  • За време на подигнувањето на системот, управувачот со PID 1 сега ги прикажува имињата на единиците наместо линијата со нивниот опис. За да се вратите на минатото однесување, можете да ја користите опцијата StatusUnitFormat во /etc/systemd/system.conf или опцијата systemd.status_unit_format кернелот;
  • Додадена е опцијата KExecWatchdogSec на /etc/systemd/system.conf за чувар PID 1, што го одредува тајмингот за рестартирање со користење на 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.сервис сега е целосно одговорен за иницијализирање на базенот на ентропија на генераторот на псевдослучајни броеви на кернелот Линукс. Услугите кои бараат правилно иницијализиран /dev/urandom треба да се стартуваат по systemd-random-seed.service;
  • Натоварувачот за подигање systemd-boot обезбедува опционална можност за поддршка датотека за семе со случајна секвенца во системската партиција EFI (ESP);
  • Додадени се нови команди во алатката bootctl: „bootctl random-seed“ за генерирање на семе-датотека во ESP и „bootctl е инсталирана“ за да се провери инсталацијата на подигачот на systemd-boot. bootctl исто така е прилагоден за прикажување предупредувања за неправилна конфигурација на записи за подигање (на пример, кога сликата на јадрото е избришана, но записот за негово вчитување е оставен);
  • Обезбедува автоматско избирање на swap партицијата кога системот оди во режим на мирување. Партицијата се избира во зависност од приоритетот што е конфигуриран за неа, а во случај на идентични приоритети, количината на слободен простор;
  • Додадена е опцијата за истекување на клучната датотека на /etc/crypttab за да се постави колку долго уредот со клучот за шифрирање ќе чека пред да побара лозинка за пристап до шифрираната партиција;
  • Додадена е опција IOWeight за поставување на I/O тежина за BFQ распоредувачот;
  • systemd-resolved додаде „строг“ режим за DNS-over-TLS и ја имплементира можноста за кеширање само позитивни DNS одговори („Кешот без негативен“ во solutioned.conf);
  • За VXLAN, systemd-networkd додаде опција GenericProtocolExtension за да овозможи екстензии на протоколот VXLAN. За VXLAN и GENEVE, опцијата IPDoNotFragment е додадена за да се постави знаменцето за забрана на фрагментација за појдовни пакети;
  • Во systemd-networkd, во делот „[Route]“, се појави опцијата FastOpenNoCookie за да се овозможи механизмот за брзо отворање на TCP конекции (TFO - TCP Fast Open, RFC 7413) во однос на поединечни рути, како и опцијата TTLPropagate за да го конфигурирате TTL LSP (Label Switched Path ). Опцијата „Тип“ обезбедува поддршка за локален, емитуван, билокаст, мултикаст, кој било и режим на рутирање xresolve;
  • Systemd-networkd нуди опција DefaultRouteOnDevice во делот „[Network]“ за автоматско конфигурирање на стандардна рута за даден мрежен уред;
  • Systemd-networkd додаде ProxyARP и
    ProxyARPWifi за поставување на однесувањето на прокси ARP, MulticastRouter за поставување на параметрите за рутирање во мултикаст режим, MulticastIGMPВерзија за промена на верзијата IGMP (Internet Group Management Protocol) за мултикаст;

  • Systemd-networkd додаде Local, Peer и PeerPort опции за тунелите FooOverUDP за да ги конфигурира локалните и оддалечените IP адреси, како и бројот на мрежната порта. За TUN тунелите, опцијата VnetHeader е додадена за да се конфигурира поддршката за GSO (Generic Segment Offload);
  • Во systemd-networkd, во датотеките .network и .link во делот [Match], се појави опцијата Property, која ви овозможува да ги идентификувате уредите според нивните специфични својства во udev;
  • Во systemd-networkd, опцијата AssignToLoopback е додадена за тунели, која контролира дали крајот на тунелот е доделен на уредот за враќање на јамката „lo“;
  • systemd-networkd автоматски го активира стекот IPv6 ако е блокиран преку sysctl disable_ipv6 - IPv6 се активира ако се дефинираат поставките IPv6 (статички или DHCPv6) за мрежниот интерфејс, во спротивно веќе поставената вредност sysctl не се менува;
  • Во датотеките .network, поставката CriticalConnection е заменета со опцијата KeepConfiguration, која обезбедува повеќе средства за дефинирање ситуации („да“, „статички“, „dhcp-on-stop“, „dhcp“) во кои systemd-networkd треба да не ги допирајте постоечките врски при стартување;
  • Поправена е ранливоста CVE-2019-15718, предизвикана од недостаток на контрола на пристап до системски решен интерфејс D-Bus. Проблемот му дозволува на непривилегираниот корисник да врши операции кои се достапни само за администраторите, како што се менување на поставките за DNS и насочување на барањата за DNS кон нечесен сервер;
  • Поправена е ранливоста CVE-2019-9619поврзано со неовозможување на pam_systemd за неинтерактивни сесии, што овозможува лажирање на активната сесија.

Извор: opennet.ru

Додадете коментар