Ce que vous allez faire
À la fin de ce tutoriel, le serveur expose uniquement SSH sur un port non standard, les mises à jour de sécurité sont automatiques, les tentatives d'intrusion sont bloquées par fail2ban et les journaux sont centralisés. L'ensemble est opérationnel en moins d'une heure sur une distribution récente.
Prérequis
- Accès root ou sudo sur la machine cible
- Connexion SSH active et session de secours ouverte
- Distribution Debian, Ubuntu ou dérivée
- Temps estimé : 45 à 60 minutes
Étape 1 — Désactiver les comptes et services inutiles
Les comptes système et services non utilisés augmentent la surface d'attaque. Supprimez ou désactivez tout ce qui n'est pas strictement nécessaire avant d'ouvrir le serveur sur Internet.
sudo userdel -r utilisateur-inutile
sudo systemctl disable --now apache2Étape 2 — Restreindre l'accès SSH
Modifier le port et limiter les connexions root réduit les attaques automatisées. Gardez toujours une session SSH ouverte avant d'appliquer les changements.
sudo sed -i 's/^#Port 22/Port 2222/' /etc/ssh/sshd_config
sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart sshdÉtape 3 — Installer et activer le pare-feu ufw
ufw fournit une interface simple pour iptables. Autorisez uniquement le port SSH modifié et refusez le reste par défaut.
sudo apt update
sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp
sudo ufw --force enableÉtape 4 — Activer les mises à jour de sécurité automatiques
unattended-upgrades installe les correctifs critiques sans intervention manuelle et limite la fenêtre d'exposition aux vulnérabilités connues.
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgradesÉtape 5 — Installer et configurer fail2ban
fail2ban analyse les journaux et bannit les adresses IP après plusieurs tentatives infructueuses. Il protège directement SSH et les autres services exposés.
sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo systemctl enable --now fail2banÉtape 6 — Configurer la journalisation avec auditd et journalctl
auditd enregistre les appels système sensibles. journalctl permet de consulter rapidement les événements récents pour détecter toute anomalie.
sudo apt install auditd -y
sudo systemctl enable --now auditd
sudo journalctl -u sshd --since "1 hour ago"Vérifier que tout fonctionne
sudo ufw status verbose
sudo fail2ban-client status sshd
sudo systemctl status unattended-upgradesErreurs fréquentes
Perte de la connexion SSH après changement de port
Cause : règle ufw non appliquée avant le redémarrage. Correction : depuis la console physique ou une session de secours, exécutez sudo ufw allow 2222/tcp puis sudo ufw reload.
fail2ban ne bannit aucune adresse
Cause : le filtre sshd n'est pas activé. Correction : ajoutez [sshd] enabled = true dans /etc/fail2ban/jail.local puis redémarrez le service.
Mises à jour automatiques ignorées
Cause : le paquet unattended-upgrades n'a pas été reconfiguré. Correction : relancez sudo dpkg-reconfigure -plow unattended-upgrades et choisissez les mises à jour de sécurité.
Aller plus loin
Une fois la base en place, passez à des règles iptables plus fines, à l'isolation des conteneurs et à la centralisation des logs sur un serveur distant.
Se former avec Learni
Maîtriser iptables : Gestion avancée de la sécurité et pare-feu sous Linux
Administrateurs systèmes et ingénieurs réseaux qui veulent sécuriser des serveurs Linux en production. Niveau avancé, 3 journées en distanciel, 3500 € HT par participant. Détails de la formation
Maîtriser iptables : Sécurité Réseau et Pare-feu sous Linux
Administrateurs systèmes et techniciens informatiques qui sécurisent des réseaux Linux. Niveau intermédiaire, 3 journées en distanciel, 3500 € HT par participant. Détails de la formation
Maîtriser iptables : Sécuriser et Paramétrer un Pare-feu Linux
Professionnels IT qui établissent une politique de sécurité via iptables. Niveau intermédiaire, 3 journées en distanciel, 3500 € HT par participant. Détails de la formation
Prochaine session à planifier. Devis sous 48 h
FAQ
Combien de temps faut-il pour durcir un serveur Linux exposé ?
Moins d'une heure suffit pour appliquer les six étapes avec les commandes fournies, à condition de disposer d'une session de secours.
Quelles distributions Linux sont concernées ?
Debian, Ubuntu et leurs dérivées récentes. Les paquets ufw, fail2ban et unattended-upgrades y sont disponibles par défaut.
Faut-il redémarrer après chaque étape ?
Seul le redémarrage de sshd est nécessaire après modification du port. Les autres services s'activent sans interruption.
Comment vérifier que fail2ban fonctionne réellement ?
Exécutez sudo fail2ban-client status sshd. Le nombre de banned IPs augmente après des tentatives de connexion échouées.

