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