Hardening des systèmes¶
Appliquer les CIS Benchmarks, sécuriser SSH, le firewall local et automatiser la conformité de configuration.
CIS Benchmarks¶
Le Center for Internet Security publie des référentiels de durcissement pour la plupart des systèmes d'exploitation, bases de données et middleware. Ces benchmarks constituent la référence industrielle pour le hardening.
Niveaux de profil¶
| Niveau | Description | Usage recommande |
|---|---|---|
| Level 1 | Recommandations de base, impact opérationnel minimal | Tous les systèmes de production |
| Level 2 | Durcissement avance, peut impacter certains usages | Systèmes sensibles, zones DMZ |
Périmètre des benchmarks¶
Les benchmarks CIS couvrent entre autres : Linux (RHEL, Ubuntu, Debian), Windows Server, Docker, Kubernetes, AWS, Azure, GCP, PostgreSQL, nginx, Apache.
Les STIG (Security Technical Implémentation Guides) du DISA sont une alternative americaine, souvent plus stricte, utilisée dans les contextes gouvernementaux et defense.
Hardening OS¶
Desactivation des services inutiles¶
Réduire la surface d'attaque passe par la desactivation de tout service non nécessaire :
- Lister les services actifs et identifier ceux qui ne sont pas requis
- Désactiver via le gestionnaire de services (systemd, init)
- Supprimer les paquets non nécessaires pour éviter les mises à jour inutiles
Parametres kernel (sysctl)¶
Les parametres sysctl permettent de durcir le comportement réseau et mémoire du noyau :
| Parametre | Effet sécurité |
|---|---|
net.ipv4.ip_forward = 0 | Désactivé le routage IP si non nécessaire |
net.ipv4.conf.all.rp_filter = 1 | Active le reverse path filtering |
kernel.dmesg_restrict = 1 | Limite l'accès aux logs kernel aux non-root |
fs.suid_dumpable = 0 | Désactivé les core dumps SUID |
kernel.randomize_va_space = 2 | Active l'ASLR complet |
Permissions filesystem¶
- Restreindre les permissions sur
/etc/shadow,/etc/sudoers, les clés SSH - Monter
/tmpet/var/tmpavec les optionsnoexec,nosuid,nodev - Activer les audit rules pour surveiller les accès aux fichiers sensibles
Configuration SSH¶
SSH est un vecteur d'attaque majeur. Sa configuration par défaut doit être durcie systematiquement.
| Parametre sshd_config | Valeur recommandee | Raison |
|---|---|---|
PermitRootLogin | no | Empêche la connexion directe en root |
PasswordAuthentication | no | Force l'usage des clés SSH |
PubkeyAuthentication | yes | Authentification par clé uniquement |
MaxAuthTries | 3 | Limite les tentatives de brute-force |
LoginGraceTime | 30 | Réduit la fenêtre d'attaque |
AllowUsers / AllowGroups | Liste explicite | Restreint les comptes autorises |
- Utiliser un port non standard réduit le bruit dans les logs (pas une mesure de sécurité seule)
- Configurer fail2ban pour bannir les IPs après N échecs d'authentification
- Activer le bastion host comme point d'entree unique pour les accès SSH en production
Firewall local¶
Un firewall local (iptables, nftables, ufw) constitue une defense complementaire au firewall réseau.
Principe du default deny¶
Politique par defaut : DROP (entrant et forward)
Regles : autoriser uniquement les flux legitimes identifies
Règles minimales type¶
| Direction | Source | Destination | Port | Action |
|---|---|---|---|---|
| INPUT | Bastion | Serveur | 22/tcp | ACCEPT |
| INPUT | LB interne | Serveur | 443/tcp | ACCEPT |
| INPUT | Monitoring | Serveur | 9100/tcp | ACCEPT |
| INPUT | any | any | any | DROP |
| OUTPUT | Serveur | DNS interne | 53/udp | ACCEPT |
Outils de hardening¶
| Outil | Type | Usage | Licence |
|---|---|---|---|
| Lynis | Audit local | Scan de conformité d'un système Linux en cours d'exécution | Open source |
| OpenSCAP | Audit / remédiation | Évaluation et remédiation sur base de profils SCAP/XCCDF | Open source |
| CIS-CAT Lite | Audit | Vérification des benchmarks CIS, rapport HTML | Gratuit (limite) |
| CIS-CAT Pro | Audit / reporting | Version complète avec remédiation et historique | Payant |
| Ansible hardening | Remédiation | Playbooks de hardening automatises (rôles communautaires) | Open source |
flowchart LR
A["Baseline CIS"] --> B["Scan initial\nLynis / OpenSCAP"]
B --> C["Rapport d'ecarts"]
C --> D["Remediation\nAnsible / manuel"]
D --> E["Re-scan de validation"]
E --> F["Integration pipeline\nCI/CD"]
F -->|Derive detectee| C Automatiser le hardening avec Ansible
Les rôles Ansible devsec.hardening (OS hardening, SSH hardening) couvrent la majorité des recommandations CIS Level 1 et sont maintenus activement. Integrez-les dans vos playbooks de provisioning pour garantir que chaque nouveau serveur est harde des sa création.