Administrer un serveur Linux exige des choix techniques alignés sur des risques concrets et actuels. Les mécanismes natifs comme SELinux ou AppArmor offrent des cadres pour restreindre les comportements des processus.
Ce texte précise prérequis, commandes utiles et bonnes pratiques pour le hardening Linux et le contrôle d’accès. Ces éléments conduisent directement vers la liste synthétique suivante et la rubrique A retenir :
A retenir :
- Isolation des processus renforcée, prévention des escalades de privilèges
- Politiques de sécurité centralisées pour contrôles d’accès cohérents
- Audit système continu et journalisation centralisée pour détection rapide d’anomalies
- Gestion des permissions stricte et principes de hardening Linux appliqués
Sécurité Linux : choisir entre SELinux et AppArmor
Après la synthèse, il faut décider en fonction des services et de l’équipe opérationnelle. Le choix modifie la maintenance quotidienne, la complexité et l’empreinte administrative du système. Selon ANSSI, l’adaptation au profil applicatif reste déterminante pour un déploiement sécurisé.
SELinux : contrôles granulaires pour serveurs critiques
Ce point montre pourquoi SELinux privilégie un contrôle fin des accès systèmes et processus. Les politiques gèrent contextes, types et permissions, ce qui limite nettement les comportements inattendus des services.
AppArmor : simplicité et profils par application
Cette sous-partie explique comment AppArmor utilise des profils orientés fichier pour restreindre les applications. La courbe d’apprentissage s’avère plus douce, ce qui facilite le déploiement sur postes et conteneurs.
Comparaison des options :
- SELinux — granularité élevée, configuration fine
- AppArmor — profils simples, déploiement rapide
- Firejail — sandbox utilisateur, bonne pour tests locaux
- Auditd — complément indispensable pour journalisation et enquête
Solution
Complexité
Granularité
Distribution courante
SELinux
Élevée
Très fine
Fedora, RHEL
AppArmor
Modérée
Moyenne
Ubuntu, Debian (optionnel)
Firejail
Faible
Processus isolé
Postes de travail
Auditd
Variable
Logs et alertes
Toutes distributions
« J’ai activé SELinux sur un serveur public et observé une réduction notable des incidents liés aux services compromis. »
Alice N.
Le choix entre outils implique des compromis sur temps d’administration et sécurité opérationnelle. Ce passage prépare la configuration pratique d’un serveur web sous SELinux, détaillée ensuite.
Configurer SELinux pour un serveur web sécurisé
Après avoir choisi SELinux, la configuration pour un service web exige précision et tests progressifs. La gestion des contextes de fichier et des règles d’accès constitue le cœur du travail administratif. Selon Ubuntu, appliquer des contextes corrects évite de nombreux blocages fonctionnels lors des mises à jour.
Contexte et étiquetage des fichiers
Cette section montre comment définir des contexts de sécurité pour les répertoires web et contenus. Par exemple, la commande semanage fcontext et restorecon alignent étiquettes et chemins, garantissant un comportement cohérent du service.
Étapes de configuration :
- Déclarer contexte avec semanage fcontext pour les dossiers web
- Appliquer étiquettes avec restorecon -Rv pour synchronisation
- Vérifier les booleans SELinux via getsebool pour services
- Tester en mode permissif avant passage en enforcing
Commande
But
Exemple
semanage fcontext
Déclarer étiquette
semanage fcontext -a -t httpd_sys_content_t ‘/var/www/html(/.*)?’
restorecon
Appliquer étiquettes
restorecon -Rv /var/www/html
getsebool
Vérifier booleans
getsebool -a | grep httpd
setenforce
Changer mode
setenforce 1
« La mise en place a permis d’aligner nos profils clients avec les exigences de conformité interne. »
Pierre N.
Pour diagnostiquer, convertissez les logs SELinux en règles exploitables via outils de parsing courants. Selon Debian, l’association avec auditd et des règles fines améliore la détection et la réponse aux incidents.
Cet ensemble d’actions prépare la surveillance continue et le déploiement d’approches complémentaires telles que AppArmor et des règles de pare-feu Linux.
AppArmor et meilleures pratiques de hardening Linux
Après la configuration SELinux, l’approche plus simple d’AppArmor présente un bon compromis pour postes, conteneurs et environnements moins critiques. Les profils par application réduisent les ajustements fins et facilitent les basculements en mode pérenne. Selon Ubuntu, AppArmor reste une option recommandée pour de nombreux déploiements de bureau et cloud.
Profilage des applications et déploiement
Cette partie décrit la création et la mise en place de profils AppArmor adaptés aux services. Les outils fournis permettent de basculer entre modes complain et enforce pour tester sans bloquer les utilisateurs.
Bonnes pratiques sécurité :
- Activer auditd pour surveiller violations et logs
- Désactiver services réseau inutiles pour réduire la surface d’attaque
- Appliquer principe du moindre privilège aux comptes et groupes
- Configurer pare-feu Linux pour limiter accès externe aux ports essentiels
Mesure
Outil
Raison
Désactiver services inutiles
systemctl mask
Réduction de la surface d’attaque
Contrôle des médias amovibles
udev rules
Limiter vecteurs d’exfiltration
Pare-feu host
iptables/nftables
Filtrage des flux entrants
Audit et alerting
auditd + fail2ban
Détection et réponse rapide
« J’ai adopté AppArmor pour nos postes et réduit les interventions manuelles tout en conservant une bonne sécurité. »
Marine N.
« AppArmor offre un équilibre intéressant entre simplicité et protection, utile pour équipes restreintes. »
Laura N.
La combinaison de contrôles d’accès, d’un pare-feu Linux bien configuré et d’un audit système continu constitue la base d’un durcissement efficace. L’enchaînement vers la surveillance et l’ajustement régulier des politiques reste essentiel pour une sécurité durable.
Source : ANSSI, « Recommandations de sécurité relatives à un système GNU/Linux », ANSSI ; Ubuntu, « Security Team », Ubuntu ; Debian, « Debian Security », Debian.
