SELinux
SELinux (Security-Enhanced Linux) est une architecture de sécurité pour systèmes Linux® qui permet aux administrateurs de mieux contrôler les accès au système. Cette architecture a initialement été conçue par la NSA, l'agence de sécurité nationale des États-Unis, comme une série de correctifs pour le noyau Linux sur la base de la structure LSM (Linux Security Modules).
SELinux a été distribué à la communauté Open Source en l'an 2000 et intégré à la version en amont du noyau Linux en 2003.
Contrôle d'accès discrétionnaire et contrôle d'accès obligatoire
Les systèmes Linux et UNIX utilisent généralement le contrôle d'accès discrétionnaire (ou DAC). SELinux est un exemple de système de contrôle d'accès obligatoire (ou MAC) pour Linux.
Dans le cadre du contrôle d'accès discrétionnaire, les fichiers et processus ont des propriétaires. Le propriétaire d'un fichier peut être un utilisateur, un groupe, ou autre, c'est-à-dire n'importe qui d'autre. Les utilisateurs ont la possibilité de modifier les autorisations d'accès à leurs propres fichiers.
Avec un système DAC, l'utilisateur root dispose d'un contrôle d'accès total. Si vous disposez d'un accès root, vous pouvez accéder aux fichiers de n'importe quel utilisateur ou faire ce que vous voulez sur le système.
En revanche, sur les systèmes de type MAC tels que SELinux, des politiques d'accès sont définies par l'administrateur. Même si les paramètres du système DAC sont modifiés au niveau de votre répertoire principal, la sécurité du système sera préservée grâce à une politique SELinux mise en place pour empêcher d'autres utilisateurs ou processus d'accéder au répertoire.
Les politiques SELinux permettent de gérer les accès de manière spécifique et couvrent un grand nombre de processus. Vous pouvez apporter des modifications avec SELinux pour limiter l'accès entre utilisateurs, fichiers, répertoires et plus encore.
Gestion des erreurs dans SELinux
Lorsque SELinux renvoie une erreur, c'est qu'il y a une anomalie à corriger. Le plus souvent, il s'agit de l'un des quatre problèmes suivants :
- Les étiquettes sont erronées. Si l'étiquetage est incorrect, vous pouvez utiliser les outils à disposition pour rétablir les étiquettes.
- Une politique doit être réparée. Ceci peut signifier que vous devez informer SELinux d'une modification que vous avez effectuée, ou que vous devez ajuster une politique. Vous pouvez résoudre ce problème à l'aide de variables booléennes ou des modules de la politique.
- Il y a un bogue dans la politique. La politique peut présenter un bogue qui nécessite une intervention.
- Le système a été infiltré. Même si SELinux peut protéger vos systèmes dans de nombreux cas, il est toujours possible que l'intégrité d'un système soit compromise. Si vous suspectez que c'est le cas, agissez immédiatement.
Que sont les variables booléennes ?
Les variables booléennes sont des paramètres de type activer/désactiver pour les fonctionnalités de SELinux. Des centaines de paramètres peuvent activer ou désactiver les capacités de SELinux, et un grand nombre d'entre eux sont prédéfinis. Pour trouver les variables booléennes déjà paramétrées dans votre système, vous pouvez exécuter la commande getsebool -a.
Red Hat peut vous aider
Red Hat Enterprise Linux est la première plateforme Linux Open Source au monde. Elle vous permet de réduire les risques, d'appliquer vos configurations et politiques de sécurité ainsi que de rationaliser votre stratégie de mise en conformité.
Les rôles système de Red Hat Enterprise Linux sont un ensemble de rôles Ansible® pris en charge qui assurent un workflow cohérent, capable de simplifier l'exécution des tâches manuelles. Les rôles système permettent d'automatiser les workflows de sécurité et de maintenir la cohérence sur l'ensemble des systèmes au fil du temps et en toute simplicité. Ils vous aident également à rationaliser la gouvernance et les exigences de conformité. Les rôles système SELinux vous donnent également la possibilité d'automatiser le déploiement et la gestion de SELinux, mais également de :
- définir les modes permissif et appliqué pour SELinux afin de garantir une cohérence des contrôles,
- personnaliser les booléens de politiques SELinux, les contextes de fichier, les ports et les identifiants selon vos besoins,
- utiliser le rôle système pour réconcilier les contextes de fichier sur des fichiers ou répertoires spécifiés.