Comment puis-je suivre les tentatives de connexion SSH ayant échoué?

124

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?

    
posée Ivan 20.08.2012 - 08:32
la source

2 réponses

138

Toutes les tentatives de connexion sont consignées dans /var/log/auth.log .

1. Filtre pour les connexions SSH interactives de force brute

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
    

2. Recherchez les échecs de connexions (c’est-à-dire qu’aucune tentative de connexion n’a été effectuée, par exemple un scanner de port, etc.):

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
    

Comment réduire les tentatives de connexion infructueuses / brutes-force

  • Essayez de basculer votre SSH sur un port non standard par défaut 22
  • Ou installez un script d’interdiction automatique tel que fail2ban .
réponse donnée ish 20.08.2012 - 08:48
la source
67

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.

Si vous avez un serveur SSH public, vous avez besoin d'une solution qui prend long avant de pouvoir être piraté.

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!)

    
réponse donnée Oli 23.08.2012 - 11:12
la source

Lire d'autres questions sur les étiquettes