Главная > Управление пакетами и системой > semanage

semanage: Управление политикой SELinux

semanage — это утилита командной строки, используемая для управления политикой SELinux (Security-Enhanced Linux). Она позволяет добавлять, изменять, удалять и перечислять различные элементы политики SELinux, такие как контексты файлов, сетевые порты, булевы значения и сопоставления пользователей. Это помогает обеспечить безопасную работу приложений и служб, предоставляя детальный контроль над политикой безопасности системы.

Обзор

semanage используется для внесения постоянных изменений в политику SELinux. В то время как `chcon` или `restorecon` применяют временные или существующие политики, `semanage` определяет новые правила политики, которые сохраняются после перезагрузки системы.

Основные управляемые объекты

Основные элементы политики SELinux, которыми можно управлять с помощью semanage.

  • Контексты файлов (File Contexts): Определение типов SELinux для файлов и каталогов по определенным путям
  • Сетевые порты (Network Ports): Определение типов SELinux для сетевых портов
  • Булевы значения SELinux (Booleans): Переключатели, которые включают или выключают определенные действия политики SELinux
  • Сопоставления пользователей SELinux (User Mappings): Сопоставление пользователей Linux с пользователями SELinux

Основные опции

semanage управляет политиками для различных типов объектов SELinux. Описываются общие опции, используемые с каждым типом объекта.

Общие опции управления

Типы объектов

Сгенерированная команда:

Комбинируйте команды.

Описание:

`semanage` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Примеры использования

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

Перечислить все правила контекста файлов

sudo semanage fcontext -l

Проверяет все правила сопоставления контекстов файлов, определенные в текущей системе.

Перечислить правила для определенного порта

sudo semanage port -l | grep http

Перечисляет правила для портов, используемых службой HTTP.

Добавить пользовательский контекст файла

sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html/my_app(/.*)?"

Добавляет правило, которое назначает тип httpd_sys_content_t каталогу /var/www/html/my_app и его подфайлам. (После добавления требуется restorecon)

Добавить пользовательский порт

sudo semanage port -a -t http_port_t -p tcp 8080

Добавляет порт TCP 8080 с типом http_port_t, чтобы его можно было использовать для веб-служб.

Включить булево значение SELinux

sudo semanage boolean -m --on httpd_can_network_connect

Включает булево значение httpd_can_network_connect, позволяя веб-серверу Apache инициировать сетевые соединения.

Установка

semanage поставляется как часть пакета 'policycoreutils' или аналогичного в большинстве дистрибутивов Linux с поддержкой SELinux. Ниже приведены инструкции по установке для основных дистрибутивов.

RHEL/CentOS/Fedora

sudo dnf install policycoreutils-python-utils

Установите пакет 'policycoreutils-python-utils' с помощью менеджера пакетов DNF или YUM.

Debian/Ubuntu

sudo apt install selinux-utils

Установите пакет 'selinux-utils' с помощью менеджера пакетов APT.

Советы и меры предосторожности

Полезные советы и меры предосторожности при управлении политикой SELinux с помощью semanage.

Применение изменений

После изменения правил контекста файлов обязательно примените измененные контексты к файловой системе с помощью команды 'restorecon'.

  • `sudo restorecon -Rv /path/to/directory`

Диагностика проблем и создание политики

При возникновении проблем, связанных с SELinux, проверьте файл `/var/log/audit/audit.log`, чтобы определить отклоненные операции, и используйте утилиту `audit2allow` для создания необходимых правил политики.

  • `sudo tail -f /var/log/audit/audit.log` (просмотр логов в реальном времени)
  • `sudo audit2allow -a -M mypolicy` (создание файлов 'mypolicy.te' и 'mypolicy.pp' на основе логов нарушений политики)
  • `sudo semodule -i mypolicy.pp` (загрузка созданного модуля политики)

Меры предосторожности

Неправильное изменение политики SELinux может привести к блокировке доступа к определенным службам или всей системе. Важно резервировать текущую политику или тщательно тестировать перед внесением изменений.


Те же команды в категории