SELinux (abréviation de Security Enhanced Linux) est un module de sécurité du noyau Linux utilisé pour accroître la sécurité des distributions Linux en renforçant l’accès aux fichiers et aux processus. Un autre module de sécurité du noyau Linux similaire utilisé à cette fin est AppArmor. Ces deux modules suscitent beaucoup d’intérêt en raison de leurs rôles qui se chevauchent dans le contrôle d’accès pour les systèmes d’exploitation Linux. Cet article couvre les différences entre SELinux et AppArmor, permettant aux utilisateurs de déterminer lequel de ces modules répond le mieux à leurs besoins grâce à une comparaison des fonctionnalités et de la facilité d’utilisation.
Qu’est-ce que SELinux ?
La sécurisation des serveurs avec SELinux élimine la dépendance à l’accès de style DAC basé sur les utilisateurs et les rôles réels du système. Au lieu de cela, il introduit un système de contexte à trois chaînes pour chaque processus ou utilisateur du système. Les trois cordes, à savoir Nom d’utilisateur, rôleet domainepermettent plus de flexibilité et de contrôle sur l’accès au système.
Un processus ne peut être autorisé que dans un domaine spécifique via la configuration de la politique dans SELinux. La seule exception est lorsqu’un processus est lancé dans un contexte explicitement défini via le runcon commande. Cependant, si des politiques conflictuelles existent pour un tel processus déjà en configuration, SELinux peut refuser une telle transition vers un autre contexte. Cela garantit que SELinux fonctionne sur le principe du refus par défaut. Tout processus ou utilisateur doit avoir une configuration d’accès explicite pour un fichier ou une ressource système avant d’y accéder.
Opérations et commandes SELinux
En tant qu’extension des commandes utilitaires courantes dans le terminal, SELinux fournit -Z switch, qui permet d’afficher le contexte de sécurité des fichiers et des processus. Des commandes telles que ps et ls bénéficiez de ce commutateur pour déboguer rapidement ou identifier les erreurs de configuration. Ci-dessous, une capture d’écran du ls commande s’affiche.
ls -Z
La première partie de chaque ligne de sortie est le domaine, la seconde est le type d’objet et la troisième est le nom d’utilisateur dans la configuration SELinux. De cette façon, SELinux peut fournir un contrôle total sur l’accès à chaque fichier et processus. Les commandes suivantes sont utilisées pour manipuler le contexte des fichiers et des répertoires.
| Commande | Usage |
|---|---|
| chcon -t |
Modifier le contexte d’un fichier cible |
| chcon -R |
Changer le contexte d’un répertoire cible (ce changement est récursif) |
| restorecon -v |
Restaurer le contexte d’un fichier par défaut |
| restorecon -v -R |
Restaurer le contexte d’un répertoire par défaut (cette modification est récursive) |
| semanage fcontext -a -t |
Définissez le contexte par défaut d’un répertoire pour qu’il corresponde à ce que le REGEX évalue |
Par exemple, s’il est nécessaire de changer le contexte de tous les fichiers du répertoire « /srv/web » en « httpd_sys_content_t », la commande suivante peut être utilisée :
sudo semanage fcontext -a -t httpd_sys_content_t “/srv/web(/.*)”

Étant donné que ce contexte vu dans la capture d’écran est déjà défini pour le répertoire « /srv/web » de manière récursive, SELinux affiche un message pour informer l’utilisateur. S’il n’est pas défini, une réussite semanage l’opération n’affiche aucune sortie.
Les administrateurs système et les utilisateurs peuvent activer, désactiver ou autoriser SELinux en utilisant le setenforce commande. De même, pour vérifier l’état actuel de l’application, les utilisateurs peuvent utiliser le getenforce commande comme indiqué dans la capture d’écran ci-dessous.

Qu’est-ce qu’AppArmor ?
AppArmor est soutenu en développement par Canonical, la société mère qui développe la distribution Ubuntu de Linux. AppArmor se veut plus simple et plus facile à utiliser que SELinux et ses profils sont créés dans le répertoire « /etc/apparmor.d/ ». Un profil AppArmor pour le processus « /usr/bin/man » est illustré dans la capture d’écran ci-dessous.

Opérations et commandes AppArmor
Pour voir l’état d’Apparmor, le aa-status commande est utilisée. Un exemple de sortie de la commande est illustré ci-dessous.

Les profils AppArmor peuvent être répertoriés par le contenu du répertoire de « /etc/apparmor.d/ », comme indiqué ci-dessous.

Dans la liste de profils ci-dessus, si un utilisateur souhaite désactiver le profil usr.bin.man, il peut utiliser la commande suivante :
sudo aa-complain /usr/bin/man
Notez qu’un profil désactivé se trouve dans le sous-répertoire disable du répertoire principal des profils AppArmor. Pour réactiver un profil qui a été désactivé, la commande suivante est utilisée :
sudo aa-enforce /usr/bin/man
Facilité d’utilisation entre SELinux et AppArmor
AppArmor fonctionne avec des chemins de fichiers dans le système de fichiers au lieu de travailler avec des chaînes pour chaque fichier comme le fait SELinux. L’un des avantages d’AppArmor est que les opérations de lecture, d’écriture, de verrouillage et autres opérations sur les fichiers sont plus faciles à configurer que dans SELinux. D’autre part, alors que SELinux fournit plus de fonctionnalités pour le contrôle d’accès aux fichiers, les fonctionnalités sont implémentées à un niveau beaucoup plus bas dans le système.
Par conséquent, les utilisateurs doivent apprendre à utiliser mknod, les sockets réseau et d’autres opérations système pour travailler avec SELinux. Pour tous ceux qui ne sont pas administrateur système, il est beaucoup plus facile d’apprendre à utiliser AppArmor.
AppArmor fournit également un mode d’apprentissage utilisé pour consigner les violations du contrôle d’accès. Ce mode ne restreint ni n’empêche l’accès en cas de violation, mais collecte des données au fil du temps pour permettre la création d’un profil AppArmor distinct basé sur le comportement des programmes pour chaque infraction d’accès enregistrée. Il n’y a pas de mode similaire disponible dans SELinux.
Questions fréquemment posées
Quelles distributions Linux sont préinstallées avec SELinux et AppArmor ?
Toutes les distributions Linux sous l’égide de RedHat sont préinstallées avec ou offrent une configuration de SELinux, y compris RHEL, CentOS et Fedora. AppArmor est préinstallé sur Debian, Ubuntu, leurs distributions dérivées, SUSE Enterprise Server et les distributions OpenSUSE.
Quel module de sécurité est le meilleur pour un nouvel utilisateur Linux ?
La plupart des principales distributions Linux sont livrées avec l’un des modules de sécurité installés par défaut. Par conséquent, il est peu probable qu’un nouvel utilisateur Linux ne dispose pas d’un module de sécurité prêt à l’emploi. La comparaison des fonctionnalités et de la facilité d’utilisation entre SELinux et AppArmor montre que pour les utilisateurs expérimentés ou les administrateurs système qui souhaitent un contrôle plus précis de leur système d’exploitation, SELinux est le meilleur, mais pour tous les autres, AppArmor est le meilleur choix.
SELinux et AppArmor sont-ils des alternatives aux pare-feux, antivirus et autres logiciels de sécurité des utilisateurs ou des données ?
SELinux et AppArmor ne sont pas des alternatives aux antivirus ou aux pare-feu bien configurés pour la sécurité du système et l’intégrité des données. Par conséquent, il est recommandé de compléter votre système avec un programme antivirus pour une meilleure protection des données.
Soutenez notre effort ❤️
Si vous avez apprécié cet article, pensez à laisser un pourboire pour nous aider à continuer à publier du contenu de qualité.





















