J'aimerais savoir si quelqu'un a essayé de se connecter par force brute à 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. si elle est plus longue qu'une page, vous pourrez faire défiler de haut en bas; tapez q
pour quitter:
grep sshd.\*Failed /var/log/auth.log | less
Voici un exemple réel tiré d'un de mes VPS:
18 août 11:00:57 izxvps sshd [5657]: Échec du mot de passe de la racine à partir du port 95.58.255.62 38980 ssh2 18 août à 23:08:26 izxvps sshd [5768]: Mot de passe introuvable pour root from 91.205.189.15 port 38156 ssh2 18 août 23:08:30 izxvps sshd [5770]: Échec du mot de passe pour personne à partir du 91.205.189.15 port 38556 ssh2 août 18 23:08:34 izxvps sshd [5772]: Echec du mot de passe pour l'astérisque de l'utilisateur invalide depuis le port 91.205.189.15 38864 ssh2 18 août 23 23:08:38 izxvps sshd [5774]: Echec du mot de passe pour l'utilisateur invalide sjobeck à partir du 91.205.189.15 port 39157 ssh2 18 août 23:08:42 izxvps sshd [5776]: Échec du mot de passe pour root depuis le port 91.205.189.15 sur le port 39467 ssh2
Utilisez cette commande:
grep sshd.*Did /var/log/auth.log | less
Exemple:
5 août 22:19:10 izxvps sshd [7748]: N'a pas reçu de chaîne d'identification de 70.91.222.121 10 août 19:39:49 izxvps sshd [1919]: N'a pas reçu de chaîne d'identification à partir de 50.57.168.154 13 août 23:08:04 izxvps sshd [3562]: N'a pas reçu la chaîne d'identification de 87.216.241.19 août 17 15:49:07 izxvps sshd [5350]: Est-ce que ne reçoit pas la chaîne d'identification de 211.22.67.238 19 août 06:28:43 izxvps sshd [5838]: N'a pas reçu de chaîne d'identification de 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 tentent souvent au moins des centaines de clés par minute. Même si vous avez un travail cron configuré pour vous envoyer des courriels de tentatives brutes, cela peut prendre des heures avant que vous n'atteignez votre serveur.
Je recommande fortement fail2ban
. Leur wiki dit 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 montrent les signes malveillants - trop d'échecs de mot de passe, recherche d'exploits, etc. En général, Fail2Ban était utilisé pour mettre à jour les règles de pare-feu afin de rejeter les adresses IP toute autre action arbitraire (par exemple, envoi d'un courrier électronique ou éjection d'un plateau de CD-ROM) pourrait également être configurée. Prêt à l'emploi, Fail2Ban est fourni avec des filtres pour divers services (Apache, curier, ssh, etc.).
Obtenir une protection est aussi simple que Sudo apt-get install fail2ban
.
Par défaut, dès que trois tentatives ont échoué, leur adresse IP est suspendue cinq minutes plus tard. Ce type de retard met essentiellement fin à une tentative de force brutale SSH, mais il 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!)