Recherche de site Web

Comment lister les tentatives de connexion SSH non réussies sur Linux


Comment lister les tentatives de connexion SSH non réussies sur Linux

Sur cette page

  1. Installation d'OpenSSH
  2. Comment trouver toutes les tentatives de connexion SSH échouées
  3. Conclusion

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 bien ou mal.

Et parfois, nous devons explorer les nuances de gris et rechercher des problèmes avant qu'ils ne se produisent. Un de ces contrôles pourrait être une recherche d'échecs de tentatives de connexion SSH. Heureusement, Ubuntu propose une solution qui est suffisamment simple mais assez 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é à /var/log/auth.log par le démon rsyslog.

Les administrateurs peuvent consulter les journaux pour voir s'il y a un trafic entrant é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 rechercher dans le fichier journal et dans cet exemple, nous nous concentrerons sur les tentatives échouées.

Installation d'OpenSSH

OpenSSH est un service qui fournit un accès distant sécurisé aux systèmes sous la forme d'un protocole de couche application, il comprend également le programme en ligne de commande scp. Connectez-vous en tant qu'utilisateur root ou passez à un utilisateur avec des privilèges sudo, puis utilisez 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. Vous devriez voir qu'il y a des paquets supplémentaires qui sont également installés car OpenSSH en nécessite beaucoup pour fonctionner correctement.

Après l'installation, vous pouvez activer ssh en tapant la commande suivante dans la fenêtre du terminal :

sudo systemctl enable ssh

Vous devriez voir une sortie similaire à l'image ci-dessous dans votre fenêtre de terminal si la commande a réussi :

Les commandes suivantes peuvent être utilisées pour arrêter SSH sur des machines Ubuntu au cas où vous voudriez désactiver cette fonctionnalité :

sudo systemctl stop ssh

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

sudo systemctl start ssh

Pour vérifier si le serveur SSH est en cours d'exécution, vous pouvez utiliser la commande ci-dessous :

sudo systemctl status ssh

Vous devriez voir un résultat similaire dans votre terminal :

Dans la capture d'écran ci-dessus, vous pouvez voir que le serveur SSH est déjà en cours d'exécution et activé, ce qui signifie qu'il démarrera au moment du démarrage.

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

Une tentative de connexion échouée peut être causée par une variété de raisons et pas seulement par une exploitation automatique de la connexion. Une tentative de connexion échouée peut se produire lorsque :

  • Un utilisateur peut mal saisir son mot de passe.
  • Essayer d'utiliser un mot de passe incorrect pour se connecter.
  • Le serveur est sous une attaque par force brute et des hackers essaient de deviner le mot de passe en utilisant des scripts automatisés.

Le moyen le plus simple de lister toutes les tentatives de connexion SSH échouées est d'utiliser la commande suivante :

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

Vous devriez voir une sortie similaire dans votre terminal :

Les commandes suivantes peuvent être utilisées pour afficher les tentatives de connexion SSH échouées 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

Alternativement, nous pouvons consulter 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 des tentatives de connexion SSH échouées, avec le nombre de tentatives à côté, vous pouvez utiliser cette commande :

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

Il est inévitable qu'il y ait de temps en temps des tentatives de connexion échouées. Cependant, il reste crucial d'identifier les connexions échouées à votre serveur. Il est important d'identifier les adresses IP qui accèdent fréquemment à votre serveur SSH et de prendre les mesures nécessaires.

Conclusion

Dans ce guide, nous avons expliqué comment trouver des 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 cet article vous a été utile. N'hésitez pas à donner votre avis ou à poser vos questions dans la section des commentaires.