Aller au contenu principal

SELinux

Overview

SELinux (Security-Enhanced Linux) est un système de contrôle d'accès obligatoire (MAC - Mandatory Access Control) développé par la NSA, intégré par défaut dans Red Hat Enterprise Linux, CentOS, Fedora, et d'autres distributionsSELinux utilise des politiques de sécurité basées sur des labels et des contextes pour contrôler finement les accès des processus, fichiers, et ressources système, offrant une protection granulaire contre les compromissions.

SELinux est particulièrement adapté aux environnements nécessitant un haut niveau de sécurité : systèmes gouvernementaux, infrastructures critiques, serveurs exposés sur Internet, et applications nécessitant une isolation stricteIl peut fonctionner en mode enforcing (blocage strict), permissive (enregistrement uniquement), ou disabled (désactivé)

Dans un contexte DevOps/SRE, SELinux peut être configuré dans les images de base pour durcir les systèmes, utilisé dans les playbooks Ansible pour gérer les politiques, et ses événements peuvent être corrélés avec les SIEM pour la détection d'anomalies et l'audit de sécurité


Informations essentielles

PropriétéValeur
Site officielhttps://selinuxproject.org/
LicenceGPL v2
PlateformesLinux (RHEL, CentOS, Fedora, etc.)
DifficultéAvancée

TL;DR

SELinux est un système MAC puissant et granulaire pour sécuriser Linux, intégré par défaut dans RHEL/CentOSIl est particulièrement utile pour les environnements nécessitant un haut niveau de sécurité et de confinementPoints forts : protection granulaire, politiques flexibles, support multi-niveauxLimite principale : courbe d'apprentissage élevée, configuration complexe, peut nécessiter ajustements pour certaines applications.


Cas d'usage typiques

  • Durcissement des serveurs critiques et systèmes gouvernementaux
  • Confinement strict des serveurs web et bases de données
  • Isolation des applications multi-tenant sur les serveurs partagés
  • Protection des systèmes exposés sur Internet
  • Conformité aux standards de sécurité stricts (STIG, etc.)
  • Isolation des conteneurs et applications cloud-native

Avantages

  • Protection granulaire et puissante
  • Politiques flexibles et personnalisables
  • Support des labels et contextes multi-niveaux
  • Intégration native dans RHEL/CentOS/Fedora
  • Mode permissive pour apprentissage sans blocage
  • Communauté active et support Red Hat
  • Compatible avec les conteneurs (container-selinux)

Limites

  • Courbe d'apprentissage élevée
  • Configuration complexe et nécessite expertise
  • Politiques par défaut peuvent être restrictives
  • Nécessite ajustements pour certaines applications
  • Performance overhead (généralement faible mais présent)
  • Messages d'erreur peuvent être difficiles à interpréter
  • Désactivation fréquente par les administrateurs par manque de compréhension

Intégration dans un socle DevOps / SRE

SELinux peut être intégré dans un socle DevOps/SRE de plusieurs manières. Des playbooks Ansible peuvent configurer SELinux en mode enforcing, gérer les contextes de fichiers, et créer des politiques personnalisées. Les politiques peuvent être versionnées dans Git et déployées via les pipelines CI/CD.

Pour les environnements conteneurisés, SELinux peut être utilisé pour durcir les conteneurs Docker avec des politiques restrictives. Les événements SELinux peuvent être envoyés vers les SIEM (Wazuh, ELK) via auditd pour corrélation avec d'autres événements de sécurité. SELinux peut également être intégré dans les images de base RHEL/CentOS pour un durcissement automatique, avec configuration des contextes appropriés pour les applications.


Ressources