From Fedora Project Wiki
Important.png
Old page
This page has been marked as "old", and likely contains content that is irrelevant or incorrect. If you can, please update this page. This page will be deleted if action is not taken.
Note.png
traduction de la page : SELinux/Troubleshooting

SELinux/Dépannage

  • Astuces pour analyser les messages AVC
  • Arborescence de résolution des messages AVC
  • SELinux a trois modes.
  • Strict (enforcing)
  • Ce devrait être le mode par défaut.
  • Le noyau bloque tous les accès à moins qu'ils aient été explicitement autorisés. Tous les accès refusés sont reportés dans le système de journalisation en tant que AVC (Access Vector Cache) à moins que les auteurs de la politique aient explicitement dit au noyau de ne pas vérifier (dontaudit) les messages.
  • Permissif (permissive)
  • Le noyau va rapporter les violations d'accès sous la forme de messages AVC mais va autoriser les accès.
  • Le noyau va également continuer à créer des fichiers convenablement étiquetés.
  • Il y a un couple de différences majeures dans la façon dont le noyau va rapporter ces messages AVC.
    1. Le noyau va seulement rapporter les premières violations d'accès en mode permissif pour un domaine restreint sur un objet particulier, alors qu'en mode strict il va rapporter chaque accès refusé.
    2. Vous pouvez obtenir beaucoup de messages AVC additionnels qui ne seraient jamais apparus en mode strict. Par exemple si un domaine restreint n'était pas autorisé à lire un répertoire ou n'importe lequel de ses fichiers situés à l'intérieur. En mode strict l'accès au répertoire serait refusé et un message AVC serait généré. En mode permissif l'accès au répertoire générerait un message AVC et chaque lecture d'un fichier en générerait d'autres.
  • Nous préférerions que vous reportiez des messages AVC en mode strict. Mais parfois le mode permissif est indispensable pour obtenir tous les messages AVC. Vous pouvez amorcer le noyau en mode permissif à l'aide du commutateur enforcing=0.
  • Vous pouvez utiliser setenforce 0 pour lancer le mode permissif et setenforce 1 pour lancer le mode strict.
  • Désactivé
  • Éteint l'application SELinux complètement et arrête également la création d'étiquettes sur les fichiers.
  • Vous devez seulement désactiver SELinux si vous ne comptez pas l'utiliser. Vous devriez utiliser le mode permissif pour diagnostiquer un problème.
  • Si vous voulez désactiver SELinux, vous devez éditer /etc/selinux/config et changer la ligne SELINUX à disabled. Vous aurez ensuite besoin de relancer la machine étant donné que SELinux fonctionne à l'intérieur du noyau.
  • Si vous souhaitez réactiver SELinux vous aurez besoin de réétiquetter tout le système de fichiers.
  • Gérer un contexte de fichier
  • cp vs. mv
  • La commande cp crée le nouveau fichier avec soit le contexte du fichier de destination, s'il existe, ou le contexte de sécurité du répertoire de destination.
  • La commande mv tente de maintenir le contexte de sécurité du fichier déplacé.
  • Cela peut conduire à certains problèmes dans les contextes de fichier. Par exemple, dans une politique ciblée, si vous étiez amené à cp /etc/resolv.conf /tmp et à éditer /tmp/resolv.conf. Ensuite vous déplaceriez resolv.conf de retour dans /etc avec mv /tmp/resolv.conf /etc. Le fichier se retrouverait avec le type de contexte de sécurité tmp_t au lieu du type net_conf_t. Beaucoup de domaines ne seraient maintenant pas capables de lire resolv.conf ce qui provoquerait des défaillances. Vous pouvez aisément régler ceci avec restorecon /etc/resolv.conf.
  • Messages AVC
  • Parfois les informations du journal d'audit sont compliquées à lire et à comprendre. Très souvent je lance dessus audit2allow pour clarifier la sortie.
  • Démon d'audit
  • Dans Fedora Core 5/Rawhide le système d'audit a déplacé une partie des messages AVC dans /var/log/audit/audit.log. Cependant certains messages AVC continuent d'apparaître dans le fichier /var/log/messages. D'habitude cela se produit lorsque le démon d'audit n'est pas lancé.
  • Vous pouvez utiliser la commande ausearch -m avc pour afficher les messages AVC à partir du journal d'audit. Il y a d'autres commandes utiles telles que -x pour spécifier l'exécutable. L'option -ts vous permet de paramétrer la durée à partir de laquelle vous voulez voir les messages après coup.
  • Des messages AVC manquent

SELinux a certains messages qu'il ne vérifiera pas. Il y a des règles dontaudit écrites dans la politique. Habituellement ce sont des messages qu'il ne va pas vérifier et elles sont là uniquement pour forcer l'application à prendre un autre chemin de code. Parfois ces règles dontaudit peuvent cacher un échec. Avant de faire référence à la politique vous étiez obligé d'installer selinux-policy-targeted-sources et d'exécuter make -C /etc/selinux/targeted/src/policy enableaudit reload. Quand vous en aviez fini avec les messages d'audit vous exécutiez make -C /etc/selinux/targeted/src/policy reload. Avec la politique recommandée vous avez besoin de remplacer le paquet de la politique de base par le paquet de la politique enableaudit. semodule -b /usr/share/selinux/targeted/enableaudit.pp. Quand vous avez fini votre vérification, vous devez exécuter semodule -b /usr/share/selinux/targeted/base.pp.