У меня есть демон, работающий как SELinux типа unlimited_service_t в Redhat Enterprise Linux 8:
# ps -eZ | grep savd
system_u:system_r:unconfined_service_t:s0 693 ? 00:00:00 savd
Он пытается загрузить модуль ядра Linux с помощью insmod.
SELinux (в принудительном режиме) блокирует его:
type=AVC msg=audit(1566572669.301:24): avc: denied { module_load } for pid=815 comm="insmod" path="/opt/sophos-av/talpa/current/talpa_syscallhook.ko" dev="xvda2" ino=48087622 scontext=system_u:system_r:unconfined_service_t:s0 tcontext=system_u:object_r:usr_t:s0 tclass=system permissive=0
Я попытался установить domain_kernel_load_modules, чтобы разрешить всем доменам загружать модули ядра:
setsebool -P domain_kernel_load_modules 1
На всякий случай я не понял, попробовал 0
также и перезагрузка, но загрузка модулей ядра в любом случае была заблокирована.
audit2allow предлагает создать для него правило, но я думал, что domain_kernel_load_modules позволит всем процессам загружать модули ядра, поэтому я не понимаю, почему это не работает?
Могу ли я получить неограниченные службы для загрузки модулей ядра без создания дополнительной политики?
Это виртуальная машина экземпляра AWS, если это важно.
Ваш файл, содержащий модуль ядра, имеет контекст безопасности system_u:object_r:usr_t:s0
. Это не ожидаемый тип для модуля ядра. Это заставляет меня думать, что что-то пошло не так с вашей установкой, поскольку Sophos должен был установить правильный контекст безопасности при установке. Это могло быть ошибкой.
В любом случае правильный тип - modules_object_t
. Вы можете попробовать изменить тип файла в качестве временного решения, пока Sophos не устранит проблему. (О чем вы также должны им сообщить.)
chcon -t modules_object_t /opt/sophos-av/talpa/current/talpa_syscallhook.ko