Comment répertorier les connexions SSH infructueuses sur Linux

« Il n’y a pas de blanc ou de noir, il n’y a que des nuances de gris. Nous ne pouvons pas dire si c’est bon ou mauvais. »

Et parfois, nous devons creuser dans les nuances de gris et rechercher les problèmes avant qu’ils ne se produisent. L’une de ces vérifications pourrait être une recherche des tentatives de connexion SSH échouées. Heureusement, Ubuntu propose une solution assez simple mais suffisamment puissante pour détecter la plupart des cas où quelqu’un laisse des mots de passe faibles et des attaques par force brute se produire.

Chaque tentative de connexion au serveur SSH est enregistrée dans un fichier nommé auth.log situé dans /var/log/auth.log par le démon rsyslog.

Les administrateurs peuvent consulter les journaux pour voir si le trafic entrant est étrange. Un fichier journal contient beaucoup d’informations en texte clair mais il n’est pas facile de lire toutes les sorties. Nous devons apprendre à utiliser grep pour effectuer des recherches dans le fichier journal et dans cet exemple, nous nous concentrerons sur les tentatives échouées.

Installer OpenSSH

OpenSSH est un service qui fournit un accès à distance sécurisé aux systèmes sous la forme d’un protocole de couche d’application, il comprend également le programme de ligne de commande scp. Connecte-toi en tant qu’utilisateur root ou passe à un utilisateur ayant les privilèges sudo, puis utilise la commande ci-dessous pour installer OpenSSH :

sudo apt-get update
sudo apt-get install openssh-server -y

Cette commande devrait installer OpenSSH et ses dépendances. Tu devrais voir que d’autres paquets sont également installés car OpenSSH en nécessite un grand nombre pour fonctionner correctement.

Installer OpenSSH

Après l’installation, tu peux activer ssh en tapant la commande suivante dans la fenêtre du terminal :

sudo systemctl enable ssh

Tu devrais voir une sortie similaire à l’image ci-dessous dans ta fenêtre de terminal si la commande a réussi :

activer ssh

Les commandes suivantes peuvent être utilisées pour arrêter SSH sur les machines Ubuntu au cas où tu voudrais le désactiver :

sudo systemctl stop ssh

Il peut être redémarré en exécutant :

sudo systemctl start ssh

Pour vérifier si le serveur SSH fonctionne, tu peux utiliser la commande ci-dessous :

sudo systemctl status ssh

Tu devrais voir une sortie similaire dans ton terminal :

Statut ssh

Dans la capture d’écran ci-dessus, tu peux voir que le serveur SSH est déjà en cours d’exécution et activé, ce qui signifie qu’il sera exécuté au moment du démarrage.

Comment trouver toutes les tentatives de connexion SSH échouées

Une tentative de connexion ratée peut être causée par diverses raisons et pas seulement par un exploit de connexion automatisé. Une tentative de connexion ratée peut se produire lorsque :

  • Un utilisateur peut se tromper dans son mot de passe.
  • Il essaie d’utiliser un mot de passe incorrect pour se connecter.
  • Le serveur subit une attaque par force brute et les pirates tentent de deviner le mot de passe à l’aide de scripts automatisés.

Le moyen le plus simple de répertorier toutes les tentatives de connexion SSH qui ont échoué est d’utiliser la commande suivante :

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

Tu devrais voir une sortie similaire dans ton terminal :

Échec des tentatives de connexion SSH

Les commandes suivantes peuvent être utilisées pour afficher les échecs de connexion SSH dans CentOS ou RHEL dans une version légèrement modifiée de la commande ci-dessus :

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

On peut aussi afficher les journaux en utilisant le démon Systemd avec la commande journalctl :

journalctl _SYSTEMD_UNIT=ssh.service | egrep "Failed|Failure"

Pour afficher une liste de toutes les adresses IP responsables de l’échec des tentatives de connexion SSH, avec le nombre de tentatives à côté, tu peux utiliser cette commande :

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

Il est inévitable qu’une tentative de connexion échouée se produise de temps en temps. Cependant, il reste crucial d’identifier les échecs de connexion à ton serveur. Il est important d’identifier les adresses IP qui frappent fréquemment ton serveur SSH et de prendre les mesures nécessaires.

Conclusion

Dans ce guide, nous avons couvert comment trouver les tentatives de connexion SSH échouées sur une machine Linux. Nous avons également appris une approche différente qui consiste à utiliser la commande journalctl. Nous espérons que tu as trouvé cet article utile. N’hésite pas à nous faire part de tes commentaires ou de tes questions dans la section des commentaires.

Vous aimerez aussi...