Chapitre 5. Résolution des problèmes liés à SELinux
Si vous envisagez d'activer SELinux sur des systèmes où il a été désactivé précédemment ou si vous exécutez un service dans une configuration non standard, vous devrez peut-être résoudre des situations potentiellement bloquées par SELinux. Notez que dans la plupart des cas, les refus de SELinux sont le signe d'une mauvaise configuration.
5.1. Identifier les dénis SELinux
Ne suivez que les étapes nécessaires de cette procédure ; dans la plupart des cas, vous ne devez effectuer que l'étape 1.
Procédure
Lorsque votre scénario est bloqué par SELinux, le fichier
/var/log/audit/audit.log
est le premier endroit à consulter pour obtenir plus d'informations sur un refus. Pour interroger les journaux d'audit, utilisez l'outilausearch
. Étant donné que les décisions de SELinux, telles que l'autorisation ou le refus d'accès, sont mises en cache et que ce cache est connu sous le nom d'Access Vector Cache (AVC), utilisez les valeursAVC
etUSER_AVC
pour le paramètre de type de message, par exemple :# ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -ts recent
S'il n'y a pas de correspondance, vérifiez si le démon d'audit est en cours d'exécution. Si ce n'est pas le cas, répétez le scénario refusé après avoir démarré
auditd
et vérifiez à nouveau le journal d'audit.Si
auditd
est en cours d'exécution, mais qu'il n'y a pas de correspondance dans la sortie deausearch
, vérifiez les messages fournis par le journalsystemd
:# journalctl -t setroubleshoot
Si SELinux est actif et que le démon d'audit ne fonctionne pas sur votre système, recherchez certains messages SELinux dans la sortie de la commande
dmesg
:# dmesg | grep -i -e type=1300 -e type=1400
Même après les trois contrôles précédents, il est encore possible que vous n'ayez rien trouvé. Dans ce cas, les refus de l'AVC peuvent être réduits au silence grâce aux règles du site
dontaudit
.Pour désactiver temporairement les règles
dontaudit
, ce qui permet d'enregistrer tous les refus :# semodule -DB
Après avoir réexécuté votre scénario de refus et trouvé des messages de refus à l'aide des étapes précédentes, la commande suivante active à nouveau les règles
dontaudit
dans la stratégie :# semodule -B
Si vous appliquez les quatre étapes précédentes et que le problème n'est toujours pas identifié, demandez-vous si SELinux bloque réellement votre scénario :
Passer en mode permissif :
# setenforce 0 $ getenforce Permissive
- Répétez votre scénario.
Si le problème persiste, c'est que quelque chose d'autre que SELinux bloque votre scénario.