1.4. Architecture et paquets SELinux
SELinux est un module de sécurité Linux (LSM) intégré au noyau Linux. Le sous-système SELinux du noyau est piloté par une politique de sécurité contrôlée par l'administrateur et chargée au démarrage. Toutes les opérations d'accès au système au niveau du noyau, pertinentes pour la sécurité, sont interceptées par SELinux et examinées dans le contexte de la politique de sécurité chargée. Si la politique chargée autorise l'opération, celle-ci se poursuit. Dans le cas contraire, l'opération est bloquée et le processus reçoit une erreur.
Les décisions SELinux, telles que l'autorisation ou le refus d'accès, sont mises en cache. Ce cache est connu sous le nom de cache de vecteur d'accès (AVC). Lorsque ces décisions sont mises en cache, les règles de politique SELinux doivent être vérifiées moins souvent, ce qui améliore les performances. N'oubliez pas que les règles de politique SELinux n'ont aucun effet si les règles DAC refusent l'accès en premier. Les messages d'audit bruts sont enregistrés sur le site /var/log/audit/audit.log
et commencent par la chaîne type=AVC
.
Dans RHEL 9, les services système sont contrôlés par le démon systemd
; systemd
démarre et arrête tous les services, et les utilisateurs et processus communiquent avec systemd
à l'aide de l'utilitaire systemctl
. Le démon systemd
peut consulter la politique SELinux et vérifier l'étiquette du processus appelant et l'étiquette du fichier unitaire que l'appelant tente de gérer, puis demander à SELinux si l'appelant est autorisé ou non à accéder au système. Cette approche renforce le contrôle d'accès aux capacités critiques du système, qui comprennent le démarrage et l'arrêt des services du système.
Le démon systemd
fonctionne également comme un gestionnaire d'accès SELinux. Il récupère l'étiquette du processus exécutant systemctl
ou du processus qui a envoyé un message D-Bus
à systemd
. Le démon recherche ensuite l'étiquette du fichier d'unité que le processus voulait configurer. Enfin, systemd
peut extraire des informations du noyau si la politique SELinux autorise l'accès spécifique entre l'étiquette du processus et l'étiquette du fichier d'unité. Cela signifie qu'une application compromise qui doit interagir avec systemd
pour un service spécifique peut maintenant être confinée par SELinux. Les rédacteurs de politiques peuvent également utiliser ces contrôles fins pour confiner les administrateurs.
Si un processus envoie un message D-Bus
à un autre processus et si la politique SELinux n'autorise pas la communication D-Bus
entre ces deux processus, le système affiche un message de refus USER_AVC
et la communication D-Bus est interrompue. Notez que la communication D-Bus entre deux processus fonctionne de manière bidirectionnelle.
Pour éviter un étiquetage SELinux incorrect et les problèmes qui en découlent, assurez-vous que vous démarrez les services à l'aide d'une commande systemctl start
.
RHEL 9 fournit les paquets suivants pour travailler avec SELinux :
-
politiques :
selinux-policy-targeted
,selinux-policy-mls
-
outils :
policycoreutils
,policycoreutils-gui
,libselinux-utils
,policycoreutils-python-utils
,setools-console
,checkpolicy