web-dev-qa-db-fra.com

Journaux SSH que je ne comprends pas: dépassement du nombre maximal de tentatives d'authentification

J'essaie de décrypter tous mes journaux ssh (afin de leur donner des balises raisonnables avec logstash). Mais j'ai trouvé un cas que je ne comprends pas vraiment:

Oct 23 07:43:47 sshd[59830]: Connection from 74.194.6.5 port 60126 on 213.67.100.148 port 22
Oct 23 07:43:51 sshd[59830]: error: maximum authentication attempts exceeded for root from 74.194.6.5 port 60126 ssh2 [preauth]
Oct 23 07:43:51 sshd[59830]: Disconnecting authenticating user root 74.194.6.5 port 60126: Too many authentication failures [preauth]

Comment peut-il atteindre le maximum de tentatives d'authentification sans donner le moindre signe d'une tentative d'authentification?

Habituellement, j'obtiens des choses comme avant que la ligne "Auth maximum ..." apparaisse.

Oct 23 08:54:06 sshd[62392]: Failed keyboard-interactive/pam for [...]
Oct 23 08:52:41 sshd[49690]: Failed publickey for [...]

Mais pas toujours.

Veuillez noter que je n'ai aucun problème pour me connecter.

8
Peter

Ce message d'erreur est déclenché, entre autres, lorsque le client ssh tente une connexion par clé et propose plus de MaxAuthTries clés invalides. Le serveur SSH interrompra alors la connexion. Cela peut être causé par un client (malveillant) qui n'a pas de clés valides du tout, ou par des utilisateurs valides qui ont simplement de nombreuses paires de clés différentes et le numéro MaxAuthTries est atteint avant que la clé valide puisse être échangée. Lorsque cela se produit, la connexion sera interrompue et n'atteindra même pas le stade où d'autres méthodes de connexion sont proposées/tentées.

(Au niveau du journal par défaut) le serveur ssh n'enregistre pas les clés échouées get sont échangées et donc le message d'erreur "error: maximum authentication attempts exceeded for ... ssh2 [preauth] "semble apparaître sans aucune tentative d'authentification préalable dans le fichier journal.

Vous pouvez facilement simuler cela avec:

for n in $(seq 1 10 ) ; do ssh-keygen -b 2048 -t rsa -f /tmp/sshkey-$n -q -N "" ; done
ssh  -v -i /tmp/sshkey-1  -i /tmp/sshkey-2  -i /tmp/sshkey-3  ... user@Host

debug1: méthode d'authentification suivante: publickey
debug1: Offrir la clé publique RSA:/tmp/sshkey -1
debug2: nous avons envoyé un paquet publickey, attendez la réponse
debug1: authentifications qui peuvent continuer: publickey, gssapi-keyex, gssapi-with-mic
debug1: Offrir la clé publique RSA:/tmp/sshkey -2
debug2: nous avons envoyé un paquet publickey, attendez la réponse
debug1: authentifications qui peuvent continuer: publickey, gssapi-keyex, gssapi-with-mic
debug1: Offrir la clé publique RSA:/tmp/sshkey -
debug2: nous avons envoyé un paquet publickey, attendez la réponse
debug1: authentifications qui peuvent continuer: publickey, gssapi-keyex, gssapi-with-mic
debug1: Offrir la clé publique RSA:/tmp/sshkey -4
debug2: nous avons envoyé un paquet publickey, attendez la réponse
debug1: authentifications qui peuvent continuer: publickey, gssapi-keyex, gssapi-with-mic
debug1: Offrir la clé publique RSA:/tmp/sshkey -5
debug2: nous avons envoyé un paquet publickey, attendez la réponse
debug1: authentifications qui peuvent continuer: publickey, gssapi-keyex, gssapi-with-mic
debug1: Offrir la clé publique RSA:/tmp/sshkey -6
debug2: nous avons envoyé un paquet publickey, attendez la réponse
Déconnexion reçue du port hôte 22: 2: Trop d'échecs d'authentification
Échec de l'authentification

La valeur par défaut de MaxAuthTries est 6.

sshd [19032]: erreur: le nombre maximum de tentatives d'authentification a été dépassé pour la connexion à partir du port 10.9.8.7 54956 ssh2 [preauth]
sshd [19032]: Déconnexion: trop d'échecs d'authentification [préautorisation]

L'augmentation de sshd_config LogLevel à VERBOSE générera les événements de journal supplémentaires qui ont un peu plus de sens:

sshd [19271]: Connexion à partir du port 10.9.8.7 58823 sur le port 10.9.8.8 22
sshd [19271]: Échec de publickey pour la connexion à partir du port 10.9.8.7 58823 ssh2: RSA SHA256: QGnu ... fpY
sshd [19271]: Échec de publickey pour la connexion à partir du port 10.9.8.7 58823 ssh2: RSA SHA256: cjje ... dDo
sshd [19271]: Échec de publickey pour la connexion à partir du port 10.9.8.7 58823 ssh2: RSA SHA256: IIWe ... d1M
sshd [19271]: Échec de publickey pour la connexion à partir du port 10.9.8.7 58823 ssh2: RSA SHA256: xrQs ... Et0
sshd [19271]: Échec de publickey pour la connexion à partir du port 10.9.8.7 58823 ssh2: RSA SHA256: 0Zln ... UI4
sshd [19271]: Échec de publickey pour la connexion à partir du port 10.9.8.7 58823 ssh2: RSA SHA256: hhsj ... 7Q4
sshd [19271]: erreur: le nombre maximal de tentatives d'authentification a été dépassé pour la connexion à partir du port 10.9.8.7 58823 ssh2 [préauthentification]
sshd [19271]: Déconnexion: trop d'échecs d'authentification [pré-autorisation]

6
HBruijn

Selon la page de manuel de config sshd

MaxAuthTries
Spécifie le nombre maximal de tentatives d'authentification autorisées par connexion. Une fois que le nombre d'échecs atteint la moitié de cette valeur, des échecs supplémentaires sont enregistrés. La valeur par défaut est 6.

Comme vous pouvez le voir, la limite est valide par connexion et toutes les tentatives ne sont pas enregistrées. Vous pouvez également choisir le nombre d'informations que vous souhaitez dans les journaux

LogLevel
Donne le niveau de verbosité utilisé lors de la journalisation des messages de sshd (8). Les valeurs possibles sont: SILENCIEUX, FATAL, ERREUR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 et DEBUG3. La valeur par défaut est INFO. DEBUG et DEBUG1 sont équivalents. DEBUG2 et DEBUG3 spécifient chacun des niveaux plus élevés de sortie de débogage. La journalisation avec un niveau DEBUG viole la confidentialité des utilisateurs et n'est pas recommandée.

Dans OpenSSH/Journalisation et dépannage vous pouvez voir des exemples de journaux dans lesquels vous pouvez voir que la partie de rejet est similaire à celle que vous avez montrée:

...
Mar 19 11:11:10 server sshd[54798]: Failed password for root from 122.121.51.193 port 59928 ssh2
Mar 19 11:11:10 server sshd[54798]: error: maximum authentication attempts exceeded for root from 122.121.51.193 port 59928 ssh2 [preauth]
Mar 19 11:11:10 server sshd[54798]: Disconnecting authenticating user root 122.121.51.193 port 59928: Too many authentication failures [preauth]

En résumé, les tentatives d'authentification échouées ne sont pas toujours envoyées aux journaux. Le comportement peut être configuré dans le fichier conf pour httpd.

Et maintenant, de mon expérience pas très heureuse d'exposer ssh à Internet, permettez-moi de donner quelques recommandations générales:

  • Veuillez ne pas autoriser l'accès utilisateur/mot de passe. Vous ne devez utiliser que des paires de clés privées/publiques. Il y a beaucoup de méchants là-bas.
  • Dans tous les cas, root ne doit pas être autorisé à entrer via SSH.
  • Pensez à installer fail2ban ou quelque chose de similaire qui peut interdire les adresses IP pour accéder à votre système
1
J.M. Robles

Une autre chose est que si vous souhaitez vous connecter à l'utilisateur root par ssh en utilisant un mot de passe et que votre configuration est définie sur PermitRootLogin prohibit-password il se terminera par une erreur error: maximum authentication attempts exceeded for root from 10.0.12.12 port 58656 ssh2 [preauth]

0
QkiZ