Security-Enhanced Linux (SELinux) — это модуль безопасности ядра Linux, который обеспечивает механизм поддержки политик безопасности контроля доступа, включая обязательный контроль доступа (MAC).SELinux — это набор модификаций ядра и инструментов пользовательского пространства, которые были добавлены в различные дистрибутивы Linux. Его архитектура стремится отделить исполнение решений безопасности от политики безопасности и оптимизирует количество программного обеспечения, связанного с применением политики безопасности.
В этой статье я покажу вам, как настроить SELinux, не выключая его.
Утилита audit2allow собирает информацию из журналов запрещенных операций, а затем генерирует правила разрешения политики SELinux.
Сообщение об отказе и связанный системный вызов записываются в файл /var/log/audit/audit.log
type=AVC msg=audit(1582800535.799:670): avc: denied { read } for pid=13951 comm="nginx" name="index.html" dev="sda1" ino=263511 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:user_home_t:s0 tclass=file permissive=...
Например, я получаю сообщение об ошибке «Access denied» , и я не могу открыть веб-сайт.
Установка утилиты audit2allow
# dnf install setroubleshoot setools
Запускаем audit2allow
# audit2allow -w -a type=AVC msg=audit(1582800535.799:670): avc: denied { read } for pid=13951 comm="nginx" name="index.html" dev="sda1" ino=263511 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:user_home_t:s0 tclass=file permissive=1 Was caused by: Unknown - would be allowed by active policy Possible mismatch between this policy and the one under which the audit message was generated. Possible mismatch between current in-memory boolean settings vs. permanent ones.
Просмотрите правило принудительного применения типа, разрешающее запрещенный доступ.
# audit2allow -a #============= httpd_t ============== #!!!! This avc is allowed in the current policy allow httpd_t http_port_t:tcp_socket name_connect; #!!!! This avc is allowed in the current policy allow httpd_t user_home_t:file { map open read };
Запустите следующую команду от имени пользователя root для создания произвольного модуля. Опция -M создаёт исходный файл политики (.te) с именем, которое вы обозначите после -M, в вашей текущей рабочей директории.
# audit2allow -a -M mycertwatch ******************** IMPORTANT *********************** To make this policy package active, execute: semodule -i mycertwatch.pp
Установите пакет политики.
# semodule -i mycertwatch.pp
Теперь я могу открыть свой сайт.