SELinux

De Avided.info
Aller à : navigation, rechercher


SELinux

Decouvrir si Selinux est actif

Les resultats possible sont Enforcing, Disabled ou permissive

getenforce

Dans un script utiliser la commande

selinuxenabled 
echo $?
0

La configuration

Dans ce répertoire

/etc/selinux

Le fichier ( un lien de ce fichier existe dans /etc/sysconfig/selinux)

/etc/selinux/config

Il contient que 2 variables

  • niveau d'activation de selinux
SELINUX=enforcing
  • Type de police
SELINUXTYPE=targeted

Les logs

/var/log/audit/audit.log

Mise en place

relabeliser toutes l’arborescence

au prochain reboot, le système de fichier sera relabelisé Cela prend du temps, il est donc normal que votre machine soit plus longue que d'habitude a démarrer N'oubliez pas de supprimer le fichier a moins que vous ne vouliez relabeliser a chaque redémarrage

touch /.autorelabel 
reboot


Les commandes

Les commandes permettant de voir les contextes

Affiche le Contexte de securité du shell courrant

id -Z
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

Affiche le Contexte de securité d'un fichier

ls -Z /var/log/audit/
-rw-------. root root system_u:object_r:auditd_log_t:s0 audit.log

Affiche le Contexte de securité des processus

ps -Z
LABEL                             PID TTY          TIME CMD
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 1330 pts/0 00:00:00 bash
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 1826 pts/0 00:00:00 ps

Affiche le Contexte de securité et processus qui ont ouvert des socket

netstat -tupenZ
Proto Recv-Q Send-Q Local Address       Foreign Address       State       Utilisatr  Inode  PID/Program name  Security Context                                 
tcp        0    320 95.130.11.125:22    83.155.133.225:33214  ESTABLISHED 0          12897  1325/sshd         system_u:system_r:sshd_t:s0-s0:c0.c1023  

affiche la liste des fichiers ouvert et le Contexte de securité du processus qui les a ouvert

lsof -Z | grep 'audit.log'
auditd     979 system_u:system_r:auditd_t:s0                              root    5w      REG                8,3   423902    1362073 /var/log/audit/audit.log

find -context => Cherche les fichiers en fonction d'un Contexte de securité. *partie-context*

find /var/log -context *auditd*
/var/log/audit
/var/log/audit/audit.log
 
cp -Z => Copie un fichier en lui fixant le Contexte de securité
cp -a => Copie avec le contexte de securité
mount context= fcontext= defcontext= rootcontext= => option de montage permettantde fixer des contextes de secutités

Gestion des booléens

getsebool => affiche la valeur d'un booléen
sestatus -b => affiche la valeurs de tous les booléens
setsebool -P => Modifie l'etat d'un booléen de maniere permanante
togglesebool => bascule la valeur d'un booléen

Exemple : activer le ftp_home_dir

Controle

getsebool -a | grep ftp
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_use_fusefs --> off
ftpd_use_passive_mode --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_use_cifs --> off
tftp_use_nfs --> off

Activation

setsebool -P ftp_home_dir on

Autres commandes

newrole => modifie le role de l'utilisateur

Affiche des statistique sur l'utilisation de Selinux.

avcstat 1
   lookups       hits     misses     allocs   reclaims      frees
    866462     860025       6437       6438       5856       5930
        11         11          0          0          0          0
         4          4          0          0          0          0
         4          4          0          0          0          0

restorer les contextes de securite

  • Le contexte de securité mis lors de l'installation serons repositionner. Cette manipulation est pratique si des fichiers sont archivers ou retorer sans leurs contexte. Lors de la rstoration, il sera possible de retrouver l'etat de mise en place au moment de l'installation.
restorecon -r /var/log

Port réseau

Vous désirer modifier ou ajouter un port d’écoute pour un service.

Contrôler les port faisant partie d'un contexte SeLinux

semanage port -l | grep 443

exemple :

semanage port -l | grep -i http_port_t
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000

Ajouter un port a un contexte

On désire démarrer une instance apache sur le port 444

semanage port -a -t http_port_t -p tcp 444

Ajouter un port a un contexte

On désire démarrer une instance ssh sur le port 443 habituellement réservé a apache Contrôler que apache ne vas pas utiliser ce port ou ne vas pas démarrer, Modifier le fichier de configuration de sshd pour qu'il utilise le port 443 puis utiliser la commande suivante et enfin redémarrer sshd

semanage port -m -t ssh_port_t -p tcp 443

Les autres commandes

chcon
auditallow
sesearch
setenforce => modifie le fonctionnement de selinux (Enforcing ou permissive)
seinfo => 
sestatus => affiche le status de selinux
setfiles => labelise des fichiers
fixefiles  => labelise des fichiers
semanage