AltHa: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
 
(не показаны 2 промежуточные версии 2 участников)
Строка 1: Строка 1:
[[Категория:Admin]]
[[Категория:Admin]]
[[Категория:Безопасность]]
[[Категория:Безопасность]]
{{Stub}}
 
==Введение==
== Введение ==


AltHa — это модуль (расширение) безопасности Linux, который в настоящее время имеет три варианта защиты пользовательского пространства:
AltHa — это модуль (расширение) безопасности Linux, который в настоящее время имеет три варианта защиты пользовательского пространства:
Строка 11: Строка 11:
Список активных модулей безопасности можно найти в файле {{path|/sys/kernel/security/lsm}}.
Список активных модулей безопасности можно найти в файле {{path|/sys/kernel/security/lsm}}.


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


Для включения модуля AltHa необходимо:
Для включения модуля AltHa необходимо:
#Для включения модуля AltHa необходимо передать ядру параметр altha=1. Для этого в файле {{path|/etc/sysconfig/grub2}} в строке GRUB_CMDLINE_LINUX_DEFAULT следует добавить опцию: altha=1. Например:
#Передать ядру параметр altha=1. Для этого в файле {{path|/etc/sysconfig/grub2}} в строке GRUB_CMDLINE_LINUX_DEFAULT следует добавить опцию: altha=1. Например:
#:<source lang="text" highlight="1"># vim /etc/sysconfig/grub2
#:<source lang="text" highlight="1"># vim /etc/sysconfig/grub2
...
...
Строка 23: Строка 23:
#Перезагрузить систему.
#Перезагрузить систему.


==Переменные модуля AltHa==
== Переменные модуля AltHa ==
Переменные модуля AltHa со значениями по умолчанию:
Переменные модуля AltHa со значениями по умолчанию:
<source lang="text" highlight="1"># sysctl -a | grep altha
<source lang="text" highlight="1"># sysctl -a | grep altha
Строка 38: Строка 38:
<source lang="text" highlight="1"># sysctl -p</source>
<source lang="text" highlight="1"># sysctl -p</source>


===Запрет бита исполнения (SUID)===
{{Note|Для изменения значений переменных модуля AltHa можно также воспользоваться модулем ЦУС [[Alterator-secsetup|Настройки безопасности]].}}
 
=== Запрет бита исполнения (SUID) ===


При включенном подмодуле altha.nosuid, биты SUID во всех двоичных файлах, кроме явно перечисленных, игнорируются в масштабе всей системы.
При включенном подмодуле altha.nosuid, биты SUID во всех двоичных файлах, кроме явно перечисленных, игнорируются в масштабе всей системы.
Строка 56: Строка 58:
*0 — режим выключен.
*0 — режим выключен.


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


При включении блокировки интерпретаторов блокируется несанкционированное использование интерпретатора для выполнения кода напрямую из командной строки.
При включении блокировки интерпретаторов блокируется несанкционированное использование интерпретатора для выполнения кода напрямую из командной строки.
Строка 65: Строка 67:
Переменная kernel.altha.rstrscript.interpreters должна содержать разделенный двоеточиями список ограниченных интерпретаторов.
Переменная kernel.altha.rstrscript.interpreters должна содержать разделенный двоеточиями список ограниченных интерпретаторов.
Для изменения значения переменной kernel.altha.rstrscript.interpreters выполнить команду:
Для изменения значения переменной kernel.altha.rstrscript.interpreters выполнить команду:
<source lang="text" highlight="1"># sysctl -w kernel.altha.rstrscript.interpreters="/usr/bin/python:/usr/bin/python3:/usr/bin/perl:/usr/bin/tclsh"</source>
<source lang="text" highlight="1"># sysctl -w kernel.altha.rstrscript.interpreters="/lib64/ld-linux-x86-64.so.2:/usr/bin/python:/usr/bin/python3:/usr/bin/perl:/usr/bin/tclsh"</source>


{{Note| В этой конфигурации все скрипты, начинающиеся с '''#!/usr/bin/env python''', будут заблокированы.}}
{{Note| В этой конфигурации все скрипты, начинающиеся с '''#!/usr/bin/env python''', будут заблокированы.}}
Предлагается вносить ld-linux в этот список, чтобы через него нельзя было запустить заблокированный интерпретатор, тем самым обойдя блокировку.


Проверка состояния режима запрета бита исполнения выполняется командой:
Проверка состояния режима запрета бита исполнения выполняется командой:
Строка 81: Строка 85:
/usr/bin/python:/usr/bin/python3:/usr/bin/perl:/usr/bin/tclsh</source>
/usr/bin/python:/usr/bin/python3:/usr/bin/perl:/usr/bin/tclsh</source>


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


{{Note|Использовать этот механизм не рекомендуется.}}
{{Note|Использовать этот механизм не рекомендуется.}}

Текущая версия от 15:51, 20 июля 2022


Введение

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

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

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

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

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

  1. Передать ядру параметр 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
Примечание: Для изменения значений переменных модуля AltHa можно также воспользоваться модулем ЦУС Настройки безопасности.


Запрет бита исполнения (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="/lib64/ld-linux-x86-64.so.2:/usr/bin/python:/usr/bin/python3:/usr/bin/perl:/usr/bin/tclsh"
Примечание: В этой конфигурации все скрипты, начинающиеся с #!/usr/bin/env python, будут заблокированы.


Предлагается вносить ld-linux в этот список, чтобы через него нельзя было запустить заблокированный интерпретатор, тем самым обойдя блокировку.

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

# 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"