Le protocole SSH (Secure Shell) est l’un des moyens les plus utilisés pour administrer des serveurs Linux.
Cependant, il est souvent ciblé par des attaques automatisées.
Dans cet article, nous allons voir comment sécuriser SSH avec l’authentification par clés et en ajoutant une protection contre le brute force avec fail2ban.
Plan de l’article
- Génération et utilisation des clés SSH
- Configuration du serveur SSH pour n’autoriser que les clés
- Installation et configuration de fail2ban
- Bonnes pratiques supplémentaires
- Conclusion
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 :
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.