Durcissement du système (Hardening)¶
Cette procédure détaille les mesures techniques appliquées pour sécuriser un serveur Linux de production et atteindre un niveau de conformité élevé.
Fiche technique
- Cible : Serveur Linux (Production)
- OS : Debian GNU/Linux (Stable)
- Objectif : Score d'audit > 74 (Hardened)
- Dernière MAJ : 30/12/2025
Sécurisation du service SSH¶
L'objectif est de supprimer les algorithmes cryptographiques obsolètes, de désactiver l'accès au compte root et d'imposer l'authentification par clé publique.
Génération et envoi des clés¶
Exécutez ces commandes sur le poste d'administration pour générer une paire de clés robuste (Ed25519).
Configuration du démon SSH¶
Attention
Avant de redémarrer le service, assurez-vous que votre clé est correctement copiée. Gardez une session active ouverte par sécurité.
Éditez le fichier /etc/ssh/sshd_config pour appliquer la configuration durcie :
Port 22
Protocol 2
# Authentification
PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
# Performance et Sécurité Réseau
AllowTcpForwarding no
X11Forwarding no
AllowAgentForwarding no
TCPKeepAlive no
MaxSessions 2
ClientAliveInterval 300
ClientAliveCountMax 2
# Bannière légale
Banner /etc/issue.net
# Clés d'hôte (Host Keys)
HostKey /etc/ssh/ssh_host_ed25519_key
HostKey /etc/ssh/ssh_host_rsa_key
# Algorithmes d'échange de clés (KEX) - Suppression NIST & SHA1
KexAlgorithms mlkem768x25519-sha256,sntrup761x25519-sha512@openssh.com,curve25519-sha256,curve25519-sha256@libssh.org
# Chiffrement (Ciphers) - AEAD uniquement
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com
# Intégrité (MACs) - Mode ETM uniquement
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com
Appliquez les changements :
Protection active (Fail2Ban)¶
Installation d'un système de prévention d'intrusions pour bannir les adresses IP après plusieurs échecs d'authentification.
Installation¶
Configuration de la prison SSH¶
Créez le fichier de configuration locale /etc/fail2ban/jail.local :
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
maxretry = 3
bantime = 1h
Redémarrez le service :
Durcissement du Noyau (Kernel)¶
Modification des paramètres sysctl pour protéger la pile réseau contre le spoofing IP et les paquets malformés.
Créez le fichier /etc/sysctl.d/99-hardened.conf :
# Protection IP Spoofing
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Ignorer les redirections ICMP (Anti Man-in-the-Middle)
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
# Logs des paquets martiens (sources impossibles)
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1
# Protection SYN Flood
net.ipv4.tcp_syncookies = 1
# Désactiver le routage
net.ipv4.ip_forward = 0
net.ipv6.conf.all.forwarding = 0
# Restreindre l'accès aux logs noyau (dmesg)
kernel.dmesg_restrict = 1
Appliquez immédiatement les paramètres :
Surveillance et Intégrité¶
Mise en place des outils de surveillance recommandés par le framework d'audit.
Initialisation¶
- Auditd (Journaux d'audit système) :
- AIDE (Intégrité des fichiers) :
Gestion des utilisateurs¶
Modification des paramètres par défaut dans /etc/login.defs pour renforcer la sécurité des comptes créés ultérieurement.
| Paramètre | Valeur par défaut | Valeur durcie | Description |
|---|---|---|---|
UMASK | 022 | 027 | Restreint la lecture des nouveaux fichiers aux autres utilisateurs. |
PASS_MAX_DAYS | 99999 | 90 | Impose le renouvellement du mot de passe tous les 90 jours. |
PASS_MIN_DAYS | 0 | 1 | Empêche le changement immédiat du mot de passe (anti-spam). |
Bannière légale¶
Ajout d'un avertissement juridique dissuasif affiché avant l'authentification.
Fichier : /etc/issue.net
********************************************************************
* ACCES RESTREINT / RESTRICTED ACCESS *
* Toute tentative d'intrusion sera enregistree et poursuivie. *
* Disconnect IMMEDIATELY if you are not an authorized user! *
********************************************************************
Audit et Validation¶
Validation des mesures appliquées à l'aide d'outils d'audit automatisés.
Audit de la configuration SSH¶
L'outil ssh-audit permet de vérifier la conformité des algorithmes de chiffrement.
Résultat attendu : * Aucun algorithme faible (rouge) ou obsolète (jaune). * Utilisation exclusive de curve25519, chacha20-poly1305 ou aes-gcm.
Audit global (Lynis)¶
Lynis effectue un scan complet du système (fichiers, kernel, réseau) pour calculer un score de conformité.
Résultat obtenu : Hardening Index 74
Ci-dessous le rapport de synthèse après application de la procédure.