SELinux signifie "Security-Enhanced Linux “. La sécurité Linux standard est basée sur le contrôle d'accès discrétionnaire (DAC). Avec DAC, l'accès aux fichiers et aux appareils est basé uniquement sur l'identité et la propriété de l'utilisateur. Chaque fichier peut avoir des autorisations de lecture, d'écriture et d'exécution pour le propriétaire du fichier, pour le groupe et pour les autres utilisateurs.
SELinux a été créé par la National Security Agency des États-Unis pour fournir un niveau de contrôle plus fin sur les fichiers, les processus, les utilisateurs et les applications du système. Il s'agit d'une amélioration du noyau Linux qui implémente un type de sécurité différent appelé Mandatory Access Control (MAC). La politique MAC est gérée de manière centralisée plutôt que d'être gérée par l'utilisateur.
SELinux s'exécute dans l'un des trois modes :
- Application :L'accès est refusé aux utilisateurs et aux programmes, sauf si les règles de la politique de sécurité de SELinux l'autorisent.
- Permissif :Les règles de la politique de sécurité ne sont pas appliquées, mais SELinux envoie des messages de refus dans un fichier journal.
- Désactivé :SELinux n'applique pas de politique de sécurité car aucune politique n'est chargée dans le noyau. Seules les règles DAC sont utilisées pour le contrôle d'accès.
Afficher le mode SELinux
Vous pouvez utiliser le sestatus commande pour afficher le mode SELinux ainsi que quelques informations supplémentaires sur SELinux.
# sestatus SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 28
Vous pouvez utiliser le getenforce commande pour afficher le mode SELinux. Cette commande affiche le mode actuel :"Enforcing ”, “Permissif "," ou "Désactivé "." Par exemple :
# getenforce Enforcing
Changer le mode SELinux
La plupart du temps, vous verriez des gens changer le mode "application" en "permissif" afin de résoudre un problème lié aux autorisations de fichiers/processus. Ce n'est pas la meilleure pratique à appliquer, mais c'est l'un des moyens les plus largement utilisés et les plus rapides pour résoudre le problème sous Linux. Vous pouvez utiliser la commande setenforce pour changer le mode en "Application (1) ” ou “Permissif (0) “. Par exemple :
# setenforce 0 # getenforce Permissive
Booléens
SELinux fournit également des "booléens “, qui permettent de modifier des parties d'une politique SELinux au moment de l'exécution, sans recharger ou recompiler une politique SELinux. Vous pouvez afficher une liste de booléens, des informations d'état et une description du booléen en exécutant la commande suivante :
# semanage boolean -l SELinux boolean State Default Description privoxy_connect_any (on , on) Allow privoxy to connect any smartmon_3ware (off , off) Allow smartmon to 3ware mpd_enable_homedirs (off , off) Allow mpd to enable homedirs xdm_sysadm_login (off , off) Allow xdm to sysadm login ....
Vous pouvez activer ou désactiver l'état d'un booléen spécifique en utilisant le setsebool commande. Par exemple, pour activer le booléen ftp_home_dir :
# setsebool ftpd_use_nfs on
Utilisez le getsebool commande pour afficher l'état d'un booléen spécifique. Exemple :
# getsebool ftpd_use_nfs ftpd_use_nfs --> on