Le fichier btmp des tentatives de connexion ssh échouées

Je m'étonne de la taille du fichier btmp qui grossit dans mon /var/log. Qui est-il ? Qui sont ses réseaux ?

1-rw-rw----  1 root        utmp            2058436224 Jun 11 11:10 btmp

2 Go et ça continue de grossir. Sur un petit espace de stockage comme un VPS, c'est non négligeable.

J'apprends que c'est une liste des dernières connexions échouées par ssh, qu'on pourrait résumer en tentatives d'attaques par brute-force. C'est très fréquent sur les serveurs directement exposés à l'internet, sans doute encore plus avec le port ssh par défaut.

La commande lastb permet de voir les derniers logins échoués, l'ip et l'heure de la tentative de connexion. Les connexions réussies n'apparaissent pas dans ce tableau. J'ai anonymisé les ips.

1$ sudo lastb -a
2root     ssh:notty    Wed Jun 11 11:14 - 11:14  (00:00)     n.n.n.n
3ubuntu   ssh:notty    Wed Jun 11 11:13 - 11:13  (00:00)     n.n.n.n
4ftpsecur ssh:notty    Wed Jun 11 10:45 - 10:45  (00:00)     n.n.n.n
5cisco    ssh:notty    Wed Jun 11 10:25 - 10:25  (00:00)     n.n.n.n

Petit florilège des 30 logins les plus tentés (et nombre d'occurences)

 1$ sudo lastb | awk '{print $1}' | \
 2grep -v "reboot" | grep -v "wtmp" | grep -v "^$" | \
 3sort | uniq -c | sort -nr | head -30
 42206461 root
 5 181930 admin
 6 138240 ubuntu
 7 124111 user
 8  76378 test
 9  51770 oracle
10  41017 ftpuser
11  36511 postgres
12  25560 debian
13  25459 git
14  24328 steam
15  22152 deploy
16  21881 guest
17  19961 es
18  18939 hadoop
19  18651 dev
20  18388 test1
21  17236 mysql
22  16231 user1
23  15141 test2
24  15137 pi
25  14026 usuario
26  13795 testuser
27  12910 www
28  12836 ubnt
29  11906 ftp
30  11735 support
31  10427 centos
32  10421 minecraf
33  10051 esuser

Remédiations possibles

  • désactiver le compte root (directement au niveau unix en généralisant le sudo, ou au moins au niveau du serveur ssh)
  • fail2ban pour blacklister automatiquement, au moins temporairement les ips les plus insistantes
  • règles de firewall pour n'autoriser que certaines ip à se connecter via ssh
  • Changer le port SSH par défaut
  • Désactiver le serveur sshd s'il n'y en a pas besoin !

Ressources

comments powered by Disqus