Security-Enhanced Linux, est un module de controle d’accès, de politique de sécurité agissant dès le kernel.
Mode de SELinux #
- Enforcing : Activé (par défaut sous RedHat, CentOs, Fedora)
- Permissive : Désactivé mais avec logs activés
- Désactivé
Voir le statut #
sestatus
getentforce
Activé / Désactivé #
setenforce 0
=> Permissive / Disablesetenforce 1
=> Enable
Configuration générale
/etc/selinux/config
SELINUX=enforcing
#SELINUX=disabled
Petite commande avant de reboot après avoir fais des modifications de SELinux: touch /.autorelabel
.
Labels #
Voilà à quoi ressemble la structure d’un label et qui traduit les politiques de sécurités utilisé par SELinux: user:role:type:level
Les labels sont attribués à la fois aux fichiers, aux processus et aux sockets réseaux:
Changer le type dans un label:
chcon -t httpd_sys_content_t FILENAME
semanage -t httpd_sys_content_t FILENAME
Fichier #
Lister le label d’un fichier:
[root@Redhat ~]# ls -lZ /usr/sbin/httpd
-rwxr-xr-x. root root system_u:object_r:httpd_exec_t:s0 /usr/sbin/httpd
[root@Redhat ~]#
Lister le label d’un répertoire:
[root@Redhat ~]# ls -dZ /etc/httpd
-rwxr-xr-x. root root system_u:object_r:httpd_config_t:s0 /etc/httpd
[root@Redhat ~]#
Processus #
[root@Redhat ~]# ps axZ |grep httpd
system_u:system_r:httpd_t:s0 21289 ? Ss 0:00 /usr/sbin/httpd -DFOREGROUND
system_u:system_r:httpd_t:s0 21292 ? S 0:00 /usr/sbin/httpd -DFOREGROUND
system_u:system_r:httpd_t:s0 21293 ? S 0:00 /usr/sbin/httpd -DFOREGROUND
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 4128 pts/0 S+ 0:00 grep--color=auto httpd
[root@Redhat ~]#
Socket réseau #
[root@Redhat ~]# netstat -tnlpZ |grep http
tcp6 0 0:::80 ::* LISTEN
21289/httpd system_u:system_r:httpd_t:s0
Commande de gestion de SELinux #
semanage
login
user
port
interface
module
node
file context
boolean
-> ON/OFF pour l’accès aux fichiers, process, socketpermissive state
dontaudit
Booleans #
Obtenir la liste de tout les booléens:
getsebool -a
semanage boolean -l
Activer ou désactiver un booléen:
setsebool -P boolean_name on/off
Vérifier les logs d’erreur de SELinux ici journalctl
.