AltHa

Материал из ALT Linux Wiki
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Введение

AltHa — это модуль (расширение) безопасности Linux, который в настоящее время имеет три варианта защиты пользовательского пространства:

  • игнорировать биты SUID в двоичных файлах (возможны исключения);
  • запретить запуск выбранных интерпретаторов в интерактивном режиме;
  • отключить возможность создания ссылок на открытый файл в выбранных каталогах.

Список активных модулей безопасности можно найти в файле /sys/kernel/security/lsm.

Включение модуля

Для включения модуля AltHa необходимо:

  1. Для включения модуля AltHa необходимо передать ядру параметр altha=1. Для этого в файле /etc/sysconfig/grub2 в строке GRUB_CMDLINE_LINUX_DEFAULT следует добавить опцию: altha=1. Например:
    # vim /etc/sysconfig/grub2
    ...
    GRUB_CMDLINE_LINUX_DEFAULT='vga=0x314  quiet resume=/dev/disk/by-uuid/187504b7-7f78-486d-b383-1b638370d3eb panic=30 splash altha=1'
    
  2. Обновить загрузчик, выполнив команду:
    # update-grub
    
  3. Перезагрузить систему.

Переменные модуля AltHa

Переменные модуля AltHa со значениями по умолчанию:

# sysctl -a | grep altha
kernel.altha.nosuid.enabled = 0
kernel.altha.nosuid.exceptions = 
kernel.altha.olock.dirs = 
kernel.altha.olock.enabled = 0
kernel.altha.rstrscript.enabled = 0
kernel.altha.rstrscript.interpreters =

При необходимости устанавливать эти переменные автоматически при каждой загрузке ОС, необходимо добавить их в файл /etc/sysctl.conf.

После редактирования sysctl.conf применить изменения, без перезагрузки ОС, можно выполнив команду:

# sysctl -p

Запрет бита исполнения (SUID)

При включенном подмодуле altha.nosuid, биты SUID во всех двоичных файлах, кроме явно перечисленных, игнорируются в масштабе всей системы.

Для включения запрета бита исполнения следует установить параметр kernel.altha.nosuid.enabled в 1:

# sysctl -w kernel.altha.nosuid.enabled=1

И добавить, если это необходимо, исключения (список включенных двоичных файлов SUID, разделенных двоеточиями), например:

# sysctl -w kernel.altha.nosuid.exceptions="/bin/su:/usr/libexec/hasher-priv/hasher-priv"

Проверка состояния режима запрета бита исполнения выполняется командой:

# sysctl -n kernel.altha.nosuid.enabled
1

Результат выполнения команды:

  • 1 — режим включен;
  • 0 — режим выключен.

Блокировка интерпретаторов (запрет запуска скриптов)

При включении блокировки интерпретаторов блокируется несанкционированное использование интерпретатора для выполнения кода напрямую из командной строки.

Для включения режима блокировки интерпретаторов следует установить значение переменной kernel.altha.rstrscript.enabled равным 1:

# sysctl -w kernel.altha.rstrscript.enabled=1

Переменная kernel.altha.rstrscript.interpreters должна содержать разделенный двоеточиями список ограниченных интерпретаторов. Для изменения значения переменной kernel.altha.rstrscript.interpreters выполнить команду:

# sysctl -w kernel.altha.rstrscript.interpreters="/usr/bin/python:/usr/bin/python3:/usr/bin/perl:/usr/bin/tclsh"
Примечание: В этой конфигурации все скрипты, начинающиеся с #!/usr/bin/env python, будут заблокированы.


Проверка состояния режима запрета бита исполнения выполняется командой:

# sysctl -n kernel.altha.rstrscript.enabled
1

Результат выполнения команды:

  • 1 — режим включен;
  • 0 — режим выключен.

Список заблокированных интерпретаторов:

# sysctl -n kernel.altha.rstrscript.interpreters
/usr/bin/python:/usr/bin/python3:/usr/bin/perl:/usr/bin/tclsh

Отключение ссылок для открытых файлов

Примечание: Использовать этот механизм не рекомендуется.


Для отключения возможности создания ссылок на открытый файл следует установить значение переменной kernel.altha.olock.enabled равным 1:

# sysctl -w kernel.altha.olock.enabled=1

Переменная kernel.altha.olock.dirs должна содержать разделенный двоеточиями список каталогов, например: /var/lib/something:/tmp/something. Для изменения значения переменной kernel.altha.olock.dirs следует выполнить команду:

# sysctl -w kernel.altha.olock.dirs="/var/lib/something:/tmp/something"