Дерево страниц

Данная статья применима к:


Общая информация

Начиная с обновления Astra Linux Special Edition 1.8.2 в состав репозитория включен пакет kernel-profiles-manager, предоставляющий инструмент командной строки для управления параметрами ядра — kernel-profiles-manager. Инструмент предоставляет администратору системы, не обладающему специальными техническими знаниями:

  • возможность настроить конфигурацию ядра под потребности отдельно взятой системы на местах эксплуатации;
  • возможность обеспечивать соответствие ОС требованиям по аттестации рабочих мест используя только один вариант ядра - ядро общего назначения generic.

Инструмент поддерживает работу с наборами параметров — шаблонами и наборами шаблонов — профилями.

Термины

Параметр ядраАтрибут настройки ядра, значение которого определяет какой-либо аспект поведения ядра
ПрофильНабор шаблонов и параметров с указанием их значений. Предназначены для упрощения настройки. Предустановлены два профиля:
ШаблонНабор параметров ядра с указанием их значений, логически сгруппированный по тематикам. Шаблоны группируются в профили. Предназначены для упрощения настройки
Непривилегированный пользовательПользователь, по умолчанию не имеющий всех полномочий администратора ОС. Может иметь отдельные явно предоставленные полномочия — привилегии PARSEC – разрешающие такому пользователю выполнять определенные действия

Установка пакета

Пакет kernel-profiles-manager может быть установлен с помощью графического менеджера пакетов или из командной строки командой:

sudo apt install kernel-profiles-manager

Использование инструмента

Общий синтаксис использования инструмента:

kernel_profiles_manager [<действие>] <опция>...

Действия

-l, --profiles-listВывести список названий всех профилей
-t, --templates-list <имя_профиля>Вывести список названий всех шаблонов, содержащихся в указанном профиле
-n, --profile-name <имя_профиля>Вывести список параметров ядра, содержащихся в указанном профиля
-c, --currentВывести название активного профиля
-m, --template <имя_шаблона>Вывести список параметров ядра, содержащихся в указанном шаблоне
-p, --change-profile <имя_профиля>Сменить активный профиль ядра на указанный
-d, --default-profileСменить активный профиль ядра на профиль, принятый по умолчанию (generic)
-v, --verify <имя_профиля>Проверить, совпадают ли параметры ядра активного профиля с указанным профилем

Профили и их влияние на работу ОС

kernel.kptr_restrict

kernel.kptr_restrict=0

  • разрешается использование инструментов отладки:
    • профилирование и трассировка perf;
    • трассировка c использованием инструментов BPF;

kernel.kptr_restrict=2

  • ограничивается использование инструментов отладки.

Влияние на работу ПО:

  • адреса ядра полностью скрыты, что делает perf бесполезным для анализа ядра;
  • инструменты зависящие от символов ядра (например, декодирование трассировок) не могут интерпретировать данные;
  • невозможно использование perf annotate для функций ядра;
  • загрузка символов ядра (vmlinux) заблокирована (ограничивает работу gdb и /proc/kcore);
  • инструменты BPF trace и funccount не могут работать (ограничивает работу eBPF (bpftrace));
  • инструмент crash не может разрешать адреса
kernel.kexec_load_disabled

kernel.kexec_load_disabled=0

  • разрешается использование инструментов kexec-tools и kdump-tools, в том числе прямое использование kexec в пространстве пользователя, позволяющее переключиться на другое ядро без перезагрузки;

kernel.kexec_load_disabled=1

  • запрещается использование инструментов kexec-tools и kdump-tools.

Влияние на работу ПО:

  • запрещает загрузку нового ядра через kexec_load();
  • блокирует инициализацию механизма kexec на уровне ядра:
  • перестанет работать:
    • kdump;
    • Makedumpfile;
    • kexectools;
    • инструменты для восстановления системы (например, crash);
    • live-патчинг ядра
user.max_user_namespaces

user.max_user_namespaces=<ненулевое значение, установленное по умолчанию при установке системы>

  • разрешена работа с контейнерами и песочницами (sandbox).

user.max_user_namespaces=0

  • ограничена работа с контейнерами.
  • запрещается создание новых пространств имен (namespaces);

Влияние на работу ПО:

  • уменьшает поверхность потенциальных атак за счет невозможности создания изолированного пространстсва;
  • может нарушаться работа:
    • контейнерной виртуализации и песочниц (sandboxing-инструментов), в том числе работа docker;
    • служб systemd с включенным DynamicUser;
  • для непривилегированных пользователей может нарушаться работа сетевых инструментов, использующих сетевые пространства имен (network namespaces);
  • старые версии bpftrace и bcc-tools, BPF программы, зависящие от фиксированных адресов, перестают работать.

kernel.yama.ptrace_scope

kernel.yama.ptrace_scope=1

  • ограниченные возможности трассировки, по умолчанию трассировка разрешена только дочерним процессам.

kernel.yama.ptrace_scope=3

  • трассировка полностью запрещена.

Влияние на работу ПО:

  • может нарушаться работа приложения tuned;
  • запрещается работа:
    • приложений, использующих vm.dirty_ratio для управления кешем;
    • приложений использующих любое принудительное изменение параметров памяти;
    • полностью запрещается работа ptrace, блокируются атаки, связанные с внедрением в процессы;
  • перестает работать отладчик gdb;
  • блокируются инструменты strace, ltrace, perf;
  • нарушается работа инструментов мониторинга, использующих ptrace

proc_mem.force_override

proc_mem.force_override=always

  • разрешается доступ к /proc/<pid>/mem — интерфейсу доступа к правам отображения памяти (memory mapping) процесса

proc_mem.force_override=never

  • запрещается доступ к /proc/<pid>/mem — интерфейсу доступа к правам отображения памяти (memory mapping) процесса.

Влияние на работу ПО:

  • BPF программы работают медленнее;
  • приложений, использующие BPF, требуют больше процессорных ресурсов;
  • могут замедлиться операции ввода-вывода;
  • в высоконагруженных средах виртуализации может в возникать нехватка оперативной памяти из-за невозможности настройки выделения виртуальных ресурсов (overcommit)


  • Нет меток