Aller au contenu

SELinux

·
Redhat sécurité
Jérémy Norgol
Auteur
Jérémy Norgol
Consultant ingénieur Linux Devops
RH134 - Cet article fait partie d'une série.
Partie 33: Cet article

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 / Disable
  • setenforce 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, socket
    • permissive 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.

RH134 - Cet article fait partie d'une série.
Partie 33: Cet article

Articles connexes

Gestion des utilisateurs et des groupes locaux
Redhat sécurité
ACL - Access Control List
Redhat
Cron - Le plannificateur de tâche
Redhat