Обзор
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 может привести к блокировке доступа к определенным службам или всей системе. Важно резервировать текущую политику или тщательно тестировать перед внесением изменений.