Capítulo 5. Solução de problemas relacionados à SELinux
Se você planeja habilitar o SELinux em sistemas onde ele tenha sido previamente desabilitado ou se você executar um serviço em uma configuração não padrão, pode precisar solucionar situações potencialmente bloqueadas pelo SELinux. Observe que, na maioria dos casos, as negações do SELinux são sinais de má configuração.
5.1. Identificação das negações da SELinux
Siga apenas as etapas necessárias a partir deste procedimento; na maioria dos casos, você precisa executar apenas a etapa 1.
Procedimento
Quando seu cenário é bloqueado pela SELinux, o arquivo
/var/log/audit/audit.log
é o primeiro lugar para verificar mais informações sobre uma negação. Para consultar os logs de Auditoria, use a ferramentaausearch
. Como as decisões do SELinux, tais como permitir ou não o acesso, estão em cache e este cache é conhecido como Access Vector Cache (AVC), utilize os valoresAVC
eUSER_AVC
para o parâmetro de tipo de mensagem, por exemplo:# ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -ts recent
Se não houver correspondências, verifique se o daemon de Auditoria está funcionando. Se não houver, repita o cenário negado depois de iniciar
auditd
e verifique novamente o log de Auditoria.No caso de
auditd
estar funcionando, mas não há correspondências na saída deausearch
, verifique as mensagens fornecidas pelo Jornalsystemd
:# journalctl -t setroubleshoot
Se o SELinux estiver ativo e o daemon de Auditoria não estiver rodando em seu sistema, então procure por certas mensagens SELinux na saída do comando
dmesg
:# dmesg | grep -i -e type=1300 -e type=1400
Mesmo após as três verificações anteriores, ainda é possível que você não tenha encontrado nada. Neste caso, as negações do AVC podem ser silenciadas por causa das regras do
dontaudit
.Para desativar temporariamente as regras do
dontaudit
, permitindo que todas as negações sejam registradas:# semodule -DB
Depois de executar novamente seu cenário negado e encontrar mensagens de negação usando os passos anteriores, o seguinte comando habilita novamente as regras da política
dontaudit
:# semodule -B
Se você aplicar todas as quatro etapas anteriores, e o problema ainda permanecer não identificado, considere se a SELinux realmente bloqueia seu cenário:
Mudar para o modo permissivo:
# setenforce 0 $ getenforce Permissive
- Repita seu cenário.
Se o problema ainda ocorrer, algo diferente da SELinux está bloqueando seu cenário.