Назад | Перейти на главную страницу

selinux блокирует неограниченную службу от загрузки модуля ядра

У меня есть демон, работающий как 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