Tout le monde le sait : il ne faut jamais exposer un serveur SSH sur le net avec un mot de passe "trivial". Mais dans les faits, en combien de temps un tel serveur est-il exploité par des personnes mal intentionnées ? C'est ce que j'ai essayé de déterminer en mettant en place un petit honeypot ...
Le test a été réalisé sur un serveur installé spécifiquement pour cette opération (Debian 7) en utilisant une adresse IP publique inexploitée depuis plusieurs années. J'ai modifié mon .bashrc pour recevoir un email lorsqu'une session SSH était active sur ce serveur (utilisateur connecté en "root"). Afin de ne pas prendre de risques, ce serveur était également paramétré pour s'éteindre automatiquement dès qu'une session SSH était active (on ne sait jamais ...). Enfin j'ai tout simplement choisi (pour le compte "root") le mot de passe le plus utilisé en 2014 : "123456". Difficile de faire moins sécurisé 🙂
Le serveur a été mis en ligne le 27 mars à 17h20. La première connexion SSH détectée (et réussie) a eu lieu le 28 mars à 5h40. Le serveur a donc été repéré, testé et accédé en 12h et 20mn !
Cette expérience montre que le choix d'un mot de passe complexe est particulièrement important. En matière de connexion SSH, l'usage de clés (et l'interdiction des mots de passe) me semble même être un impératif.
- Crédit photo : Vlastimil Koutecký
Je serai curieux du meme test avec ssh sur un port autre que 22
Oui effectivement ça pourrait être intéressant. Je pense renouveler l'expérience un de ces jours, éventuellement avec un autre port. A suivre ...
Je serais curieux de voir l'efficacité de fail2ban la dessus
Je pense que Fail2Ban aurait assuré une protection efficace. Sauf si le mot de passe choisi "123456" avait été testé en premier (ce qui n'est pas impossible) ou du moins lors des premières tentatives qui n’auraient pas encore déclenché le blocage par fail2ban. Quoi qu'il en soit je pense que seul l'usage des clés (avec interdiction des mdp) est réellement efficace (en complément d'éventuelles règles de firewall bien entendu).