17jan 2008
Gandi Hébergement -- part 2: sécuriser le SSH de son serveur Ubuntu
22:04 - Par chris - geek - 2 commentaires
Une fois acquis, votre hébergement est accessible en mode expert via ssh : ssh <votre user>@<votre adresse IP>
1. Le problème
Mais dès que vous dites cela, vous vous rendez compte que tous les robots et autres botnets peuvent en faire autant.
Vous ne me croyez pas ?
Lancez donc cette commande comme moi au bout de seulement 2 jours :
root@XXX:/home/user1# cat /var/log/auth.log* | grep 'Failed password' | grep sshd
| awk '{print $1,$2}' | sort | uniq -c
690 Jan 10
58 Jan 11
Le résultat exprime le nombre d'échecs de connexion SSH par jour (sic !). En gros, Presque 700 échecs de connexion pour une machine venant d'être mise en ligne. CQFD.
Quelques faits :
- SSH est configuré par défaut chez Gandi pour ne pas autoriser les logins root,
- vous devez renforcer absolument le password de votre user de connexion,
- vous devez vous prémunir des attaques de force brute.
2. La solution
Un moyen tout simple est d'utiliser le logiciel Fail2ban.
Principe :
Analyser les échecs de connexion consignés dans le fichier /var/log/auth.log et mettre à jour le firewall en bannissant pour un temps donné les adresses IP apparaissant plus de tant de fois en échec dans le fichier en question.
Prérequis :
Installer un firewall. Iptables dans notre cas.
Commande :
apt-get install iptables apt-get install fail2ban
Configuration :
La configuration s'effectue dans le répertoire /etc/fail2ban. La configuration par défaut est dans le jail.conf que l'on peut altérer en créant le fichier jail.local. Comme cela, lors d'une update, pas d'écrasement de configuration.
Mon fichier jail.local :
[DEFAULT] ignoreip = @IP1 @IP2 @IP3 [ssh] maxretry = 3
Où @IPx sont les adresses sur lesquelles vous ne souhaitez pas de mise en liste noire. Cela peut être utile d'y mettre l'IP fixe de votre box domestique ou celle de votre sortie internet d'entreprise au cas où cela soit VOUS qui ayez oublié votre password 
Résultat :
root@XXX:/home/user1# cat /var/log/auth.log* | grep 'Failed password' | grep sshd
| awk '{print $1,$2}' | sort | uniq -c
690 Jan 10
58 Jan 11
11 Jan 12
14 Jan 13
7 Jan 14
2 Jan 15
Liste du nombre d'échecs de connexions sur SSH avec une installation de fail2ban le 11 Janvier. Spectaculaire hein ?






2 commentaires
Bravo c'est clair net et précis de plus cela ne vaut pas que chez GANDI mais pour tous les hébergements dédié et semi dédié.
Merci Francis
Tu as tout à fait raison, cela est valable sur tout serveur unix à où l'on a un accès ligne de commande. Mais vu que je suis dans la série Hébergement Gandi, le nommage de l'article en découle ...
Devrait suivre :
* synchro horaire,
* gestion des logs,
* sécurisation Apache et quelques règles pare-feu.
... si je ne m'endors pas comme une loque le soir venu sur mon portable