Le protocole SSH (Secure Shell) est l’un des moyens les plus utilisés pour administrer des serveurs Linux.
C'est pourquoi il est très souvent ciblé par des attaques manuelles ou automatisées.
Nous allons voir:
C'est pourquoi il est très souvent ciblé par des attaques manuelles ou automatisées.
Nous allons voir:
- comment sécuriser SSH avec l’authentification par clés
- ajout une protection contre le brute force avec fail2ban.
Génération et utilisation des clés SSH
Sur votre machine locale :
ssh-keygen -t ed25519 -C "admin@exemple.com" Cela génère une clé publique id_ed25519.pub et une clé privée id_ed25519.
Copiez la clé publique vers le serveur :
ssh-copy-id user@serveur
Connexion sécurisée :
ssh user@serveur Configuration du serveur SSH pour n’autoriser que les clés
Modifier le fichier /etc/ssh/sshd_config :
PasswordAuthentication no PermitRootLogin no PubkeyAuthentication yes
Puis redémarrer le service : sudo systemctl restart sshd 👉 Désactiver l’authentification par mot de passe empêche les attaques par brute force classiques.
Installation et configuration de fail2ban
Installer fail2ban :
sudo apt install fail2ban
Créer un fichier /etc/fail2ban/jail.local :
[sshd] enabled = true port = ssh logpath = /var/log/auth.log maxretry = 5 bantime = 3600
Puis redémarrer le service:
sudo systemctl restart fail2ban
Vérifier le statut :
sudo fail2ban-client status sshd Bonnes pratiques supplémentaires
- Utiliser un port non standard pour SSH (
Port 2222). - Restreindre l’accès à certaines adresses IP (
AllowUsers). - Activer un pare-feu (UFW, nftables).
- Surveiller les journaux avec
journalctl -u sshd.
Conclusion
En combinant authentification par clés SSH et fail2ban, vous augmentez significativement la sécurité de vos serveurs Linux.
C’est une configuration simple, mais extrêmement efficace contre les attaques automatisées.
