Je voudrais voir si quelqu'un a essayé de se connecter par brute-force sur mon serveur Ubuntu 12.04 via SSH. Comment puis-je voir si de telles activités ont eu lieu?
Toutes les tentatives de connexion sont consignées dans /var/log/auth.log
.
Ouvrez un terminal et tapez ce qui suit; s'il est plus long que 1 page, vous pourrez faire défiler vers le haut et le bas; tapez q
pour quitter:
grep sshd.\*Failed /var/log/auth.log | less
Voici un exemple concret de l’un de mes VPS:
Aug 18 11:00:57 izxvps sshd[5657]: Failed password for root from 95.58.255.62 port 38980 ssh2 Aug 18 23:08:26 izxvps sshd[5768]: Failed password for root from 91.205.189.15 port 38156 ssh2 Aug 18 23:08:30 izxvps sshd[5770]: Failed password for nobody from 91.205.189.15 port 38556 ssh2 Aug 18 23:08:34 izxvps sshd[5772]: Failed password for invalid user asterisk from 91.205.189.15 port 38864 ssh2 Aug 18 23:08:38 izxvps sshd[5774]: Failed password for invalid user sjobeck from 91.205.189.15 port 39157 ssh2 Aug 18 23:08:42 izxvps sshd[5776]: Failed password for root from 91.205.189.15 port 39467 ssh2
Utilisez cette commande:
grep sshd.*Did /var/log/auth.log | less
Exemple:
Aug 5 22:19:10 izxvps sshd[7748]: Did not receive identification string from 70.91.222.121 Aug 10 19:39:49 izxvps sshd[1919]: Did not receive identification string from 50.57.168.154 Aug 13 23:08:04 izxvps sshd[3562]: Did not receive identification string from 87.216.241.19 Aug 17 15:49:07 izxvps sshd[5350]: Did not receive identification string from 211.22.67.238 Aug 19 06:28:43 izxvps sshd[5838]: Did not receive identification string from 59.151.37.10
Je dirais que la surveillance des journaux est une solution faible, surtout si vous avez un mot de passe faible sur un compte. Les tentatives de Brute essaient souvent au moins des centaines de clés par minute. Même si une tâche cron est configurée pour vous envoyer des tentatives par courrier électronique, cela peut prendre des heures avant d’arriver sur votre serveur.
Je recommande fortement fail2ban
. Leur wiki indique ce qu’il fait mieux que moi.
Fail2ban analyse les fichiers journaux (par exemple,
/var/log/apache/error_log
) et interdit les adresses IP qui affichent les signes malveillants - trop d’échecs de mots de passe, recherche d’exploitations, etc. En général, Fail2Ban met à jour les règles quantité de temps, bien que toute autre action arbitraire (par exemple, l'envoi d'un courrier électronique ou l'éjection d'un plateau de CD-ROM) puisse également être configurée. Fail2Ban est livré avec des filtres pour différents services (apache, curier, ssh, etc.).
Obtenir une protection contre cela est aussi simple que sudo apt-get install fail2ban
.
Par défaut, dès que trois tentatives ont échoué, leur adresse IP est interdite pendant cinq minutes. Ce type de retard arrête essentiellement une tentative de force brute SSH mais cela ne va pas gâcher votre journée si vous oubliez votre mot de passe (mais vous devriez quand même utiliser des clés!)