Recherche de site Web

Comment trouver toutes les tentatives de connexion SSH ayant échoué sous Linux


Chaque tentative de connexion au serveur SSH est suivie et enregistrée dans un fichier journal par le démon rsyslog sous Linux. Le mécanisme le plus basique pour répertorier toutes les tentatives de connexion SSH ayant échoué sous Linux consiste à combiner l'affichage et le filtrage des fichiers journaux à l'aide de la commande cat ou de la commande grep.

Afin d'afficher une liste des connexions SSH ayant échoué sous Linux, exécutez certaines des commandes présentées dans ce guide. Assurez-vous que ces commandes sont exécutées avec les privilèges root.

La commande la plus simple pour répertorier toutes les connexions SSH ayant échoué est celle présentée ci-dessous.

grep "Failed password" /var/log/auth.log

Le même résultat peut également être obtenu en émettant la commande cat.

cat /var/log/auth.log | grep "Failed password"

Afin d'afficher des informations supplémentaires sur les connexions SSH ayant échoué, exécutez la commande comme indiqué dans l'exemple ci-dessous.

egrep "Failed|Failure" /var/log/auth.log

Dans CentOS ou RHEL, les sessions SSH ayant échoué sont enregistrées dans le fichier /var/log/secure. Exécutez la commande ci-dessus sur ce fichier journal pour identifier les échecs de connexion SSH.

egrep "Failed|Failure" /var/log/secure

Une version légèrement modifiée de la commande ci-dessus pour afficher les connexions SSH ayant échoué dans CentOS ou RHEL est la suivante.

grep "Failed" /var/log/secure
grep "authentication failure" /var/log/secure

Pour afficher une liste de toutes les adresses IP qui ont tenté et échoué de se connecter au serveur SSH ainsi que le nombre de tentatives infructueuses de chaque adresse IP, exécutez la commande ci-dessous.

grep "Failed password" /var/log/auth.log | awk ‘{print $11}’ | uniq -c | sort -nr

Sur les distributions Linux plus récentes, vous pouvez interroger le fichier journal d'exécution géré par le démon Systemd via la commande journalctl. Afin d'afficher toutes les tentatives de connexion SSH ayant échoué, vous devez transmettre le résultat via le filtre grep, comme illustré dans les exemples de commandes ci-dessous.

journalctl _SYSTEMD_UNIT=ssh.service | egrep "Failed|Failure"
journalctl _SYSTEMD_UNIT=sshd.service | egrep "Failed|Failure"  #In RHEL, CentOS 

Dans CentOS ou RHEL, remplacez l'unité du démon SSH par sshd.service, comme indiqué dans les exemples de commandes ci-dessous.

journalctl _SYSTEMD_UNIT=sshd.service | grep "failure"
journalctl _SYSTEMD_UNIT=sshd.service | grep "Failed"

Après avoir identifié les adresses IP qui frappent fréquemment votre serveur SSH afin de vous connecter au système avec des comptes d'utilisateurs suspects ou des comptes d'utilisateurs invalides, vous devez mettre à jour les règles de pare-feu de votre système pour bloquer les adresses IP des tentatives SSH infructueuses ou utiliser un outil spécialisé. des logiciels, tels que fail2ban, pour gérer ces attaques.