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"