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.
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]
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:
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]