Bonjour à tous,
Je rencontre actuellement des tentatives régulières d'authentification de type SPAM sur un worker de dovecot.
Est-ce que vous pourriez m'aider à créer une regex sur la ligne de log ci-dessous ?
auth-worker(551146): Info: conn unix:auth-worker (pid=551145,uid=114): auth-worker<6>: pam(contact,122.184.124.78): pam_authenticate() failed: Authentication failure (Password mismatch?) (given password: Allemagne165)
Mon but est d'intégrer cette regex dans un filtre de fail2ban pour dovecot.
Je vous remercie.
# À tester...
Posté par Ellendhel (site web personnel) . Évalué à 4 (+2/-0).
En utilisant grep tu pourrais arriver à tes fins :
grep "Password mismatch" dovecot.log | grep -o "contact,[^)]*" | sed 's/contact,//'
Cela sélectionne toutes les lignes contenant "Password mismatch" et extrait la sous-chaîne "contact,122.184.124.78", et en dernier sed élimine "contact," pour ne garder que l'adresse IPv4.
Le truc est de cibler la sous-chaîne "contact,122.184.124.78" qui est entre parenthèses. grep récupère tous les caractères après la virgule, sauf pour la parenthèse fermante. Potentiellement, cela devrait aussi fonctionner pour une adresse IPv6.
Bien sûr c'est à valider avec un fichier de log complet.
[^] # Re: À tester...
Posté par Ellendhel (site web personnel) . Évalué à 4 (+2/-0).
Un commentaire supplémentaire : attention à ne pas bloquer immédiatement une adresse IP après une tentative d'accès avec un mauvais mot de passe, cela bloquerait aussi un utilisateur légitime simplement pour avoir fait une faute de frappe.
Je recommanderais d'avoir un script lancé toute les cinq ou dix minutes et de chercher des adresses apparaissant plusieurs fois.
Quelque chose du genre :
grep "Password mismatch" dovecot.log | grep -o "contact,[^)]*" | sed 's/contact,//' | sort | uniq -c | sort -nr
Et après cela ne conserver que les lignes avec plus de x tentative (5 ? 10 ?).
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.