26 июля 2016 года

Представлен выпуск системного менеджера systemd 231. Из новшеств можно отметить возможность указания ограничений в процентах, монтирование /tmp в режимах "nosuid" и "nodev", возможность блокировки групп системных вызовов в unit-файлах, запрет по умолчанию для сервисов systemd создания областей mmap, одновременно доступных на запись и исполнение, обработка в systemd-resolved локальных DNS-запросов через 53 порт, добавление в systemd-networkd средств для настройки VLAN, VTI/VTI6 и VRF.

Основные изменения:

  • В директиве "SystemCallFilter=" добавлена возможность использования предопределённого набора фильтров системных вызовов, что значительно упрощает настройку и позволяет управлять фильтрацией на уровне групп, а не отдельных системных вызовов. Например, для запрета доступа к системеным вызовам, связанным с манипуляцией временем, можно указать "SystemCallFilter=@clock". Фильтрация по системным вызовам включена для всех длительно работающих сервисов systemd;
  • Директивы "InaccessableDirectories=", "ReadOnlyDirectories=" и "ReadWriteDirectories=" переименованы в "InaccessablePaths=", "ReadOnlyPaths=" и "ReadWritePaths=", и теперь могут применяться не только для директорий, но и для любых других типов файлов, в том числе для unix-сокетов, FIFO, файлов символьных и блочных устройств, за исключением символических ссылок. Поддержка старых названий сохранена для обеспечения совместимости;
  • Для приёма DNS-запросов systemd-resolved теперь прикрепляется к локальному IP 127.0.0.53:53, что улучшает совместимость с приложениями, не использующими для резолвинга libc NSS и systemd-resolved API. В /usr/lib/systemd/resolv.conf по умолчанию в качестве DNS-сервера теперь указывается только этот адрес. Предоставленная реализация DNS-сервера не предоставляет полной поддержки протокола DNS, но реализует часть, достаточную для работы локальных клиентов;
  • В systemd-networkd добавлена директива "VLANFiltering=" для настройки фильтрации VLAN. В файлы .network добавлена секция "[BridgeVLAN]" для настройки VLAN через директивы "VLAN=", "EgressUntagged=" и "PVID=";
  • В systemd-networkd добавлена поддержка туннелей VTI/VTI6 (настройка через директивы "Key=", "InputKey=" и "OutputKey=");
  • В systemd-networkd добавлена возможность настройки интерфейсов VRF ("Virtual Routing Function");
  • Для сервисов представлена новая директива "MemoryDenyWriteExecute=", при включении которой сервисам запрещается производить маппинг в память, одновременно доступный на запись и исполнение. Режим затрудняет проведение атак и включен по умолчанию для всех длительно работающих сервисов systemd;
  • В директивах, подобных "MemoryLimit=", теперь можно указывать значение памяти в процентах, относительно имеющейся физической памяти или памяти, выделенной контейнеру, что позволяет гибко масштабировать настройки в зависимости от размера ОЗУ. Аналогично значения в процентах теперь допускаются в директиве "RuntimeDirectorySize=", применяемой в systemd-logind, и в директиве "TasksMax=" (процент высчитывается от заданного в настройках максимального числа процессов в системе (pid_max), для сервисов значение по умолчанию TasksMax теперь выставлено в 15%).
  • В юнитах ".timer" добавлена возможность определения диапазонов времени с использованием синтаксиса "..". Например, "5..7:10" можно использовать для создания таймера, вызываемого каждый день в 5:10, 6:10 и 7:10;
  • Обеспечено отражение в логе всех принудительно завершённых (через SIGKILL) служебных процессов, что может применяться для диагностики некорректного завершения работы сервисов. При включении настройки "KillUserProcesses=" в systemd-logind, аналогичные логи создаются и для пользовательских процессов, принудительно завершённых в конце сеанса;
  • Для всех сервисов, стандартный вывод в которых ассоциирован с выводом в журнал systemd, теперь выставляется переменная окружения $JOURNAL_STREAM, в которой указано устройство и номер inode файлового дескриптора, используемого для потоков stdout/stderr. При помощи данной переменной приложения могут определить факт перенаправления в журнал systemd и использовать в этом случае прямую отправку в журнал структурированных метаданных. Поддержка JOURNAL_STREAM уже добавлена в функции отправки логов glibc;
  • В применяемом по умолчанию для монтирования /tmp юните tmp.mount задействованы опции "nosuid" и "nodev", препятствующие проведению атак при помощи suid-файлов и файлов устройств. Для отключения данных опций, например, при размещении образов контейнеров или overlayfs в /tmp, следует переопределить настройки в секции "Options=" или настроить монтирование /tmp через /etc/fstab;
  • В сервисных юнитах добавлена возможность переопределения привилегий через указание спецсимволов в первом аргументе директивы "ExecXYZ=". Например, при указании символа "+" команда будет запущена с полными привилегиями, независимо от значений, выставленных в таких опциях, как "User=", "Group=" и "CapabilityBoundingSet=";
  • Сервисы теперь могут на лету изменять таймаут отслеживания работоспособности (watchdog) путём отправки сообщения "WATCHDOG_USEC=" через sd_notify();
  • Добавлена поддержка контроллера cgroup "memory", определённого в cgroup-v2;
  • В утилите systemd-cgtop добавлена возможность указания пути к cgroup в командной строке;
  • В сервисы добавлена новая настройка "RestrictRealtime=", позволяющая запретить выполнение заданий с использованием realtime-планировщика. Включение опции позволяет защититься от атак, направленных на инициирование отказа в обслуживании через утилизацию всех доступных ресурсов процессора;
  • В systemd-nspawn добавлена опция "--notify-ready=" при установке которой обеспечивающий запуск контейнера системный менеджер сообщит о завершении запуска вышестоящему системному менеджеру, что позволяет применить штатные средства упорядочивания запуска systemd при запуске нескольких контейнеров, в ситуациях когда определённый контейнер может быть запущен только после окончания запуска другого контейнера;
  • В machinectl добавлена команда "stop", по своим функциям аналогичная команде "terminate";
  • В systemd-resolved добавлена обработка сигнала SIGUSR2, при поступлении которого осуществляется сброс всех кэшей. Операцию сброса кэшей также можно инициировать командой "systemd-resolve --flush-caches";
  • В systemd-resolved добавлена опция "--status", приводящая к выводу сводки о настройках DNS в привязке к сетевым интерфейсам;
  • В файл конфигурации resolved.conf добавлена настройка "Cache=", которая включена по умолчанию. Через указание "Cache=Off" можно запретить использование локального кэша DNS;
  • В команде "systemctl edit" реализована возможность создания новых unit-файлов, указав опцию "--force";
  • В пакет rpm добавлен макрос %systemd_ordering, который может быть использован вместо %systemd_requires в пакетах не использующих функциональность systemd и рассчитанных на использование в урезанных контейнерах без systemd. При наличии %systemd_ordering, пакет не привязывается к systemd, но в случае установки текущего пакета и systemd в рамках одной транзакции rpm, пакет с systemd будет установлен раньше скриптов текущего пакета, что позволяет корректно обработать преднастройки из unit-файлов;
  • В файл os-release добавлено поле VERSION_CODENAME, определяющее кодовое имя версии дистрибутива (например, VERSION_CODENAME=woody);
  • В udev добавлено свойство UDEV_DISABLE_PERSISTENT_STORAGE_RULES_FLAG, при установке которого будет отключен разбор метаданных и создание постоянных символьных ссылок для устройства;
  • Расширено число компонентов systemd, которые собираются с использованием внутренней разделяемой библиотеки libsystemd-shared.so. Использование библиотеки позволяет сократить потребление памяти и уменьшить размер компонентов на диске;
  • Настройки для утилиты "mkosi" теперь размещаются в репозитории systemd, что позволяет сформировать актуальный образ для загрузки через "systemd-nspawn -b -i" или qemu-kvm, содержащий самые свежие изменения в systemd.

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Релиз systemd 231», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.