Come appare il messaggio
imap-login: Disconnected (auth failed, 1 attempts in 2 secs): user=<anna@example.com>, method=PLAIN, rip=198.51.100.7, lip=203.0.113.10, TLSCause frequenti
- Password sbagliata o cambiata, quella vecchia ancora salvata sul telefono o in Outlook.
- Nome utente con o senza dominio, coerente con
auth_username_formatma non con il client. - Login in chiaro senza TLS bloccato (“Plaintext authentication disallowed”).
- Query della passdb o schema password (es. SHA512-CRYPT) non corrispondono agli hash salvati.
- Molti tentativi da IP esterni: brute force su IMAP/POP3.
Verifica
- Raggruppa i tentativi falliti per IP
journalctl -u dovecot --since '1 hour ago' | grep 'auth failed' | grep -o 'rip=[0-9a-f.:]*' | sort | uniq -c | sort -rn | head - Prova il login direttamente in Dovecot (chiede la password)
doveadm auth test -x service=imap anna@example.com - Mostra le impostazioni di auth e SSL
doveconf -n | grep -E 'auth_|passdb|userdb|ssl =' - Mostra gli ultimi errori conservati da Dovecot
doveadm log errors
Soluzione
- Per i dettagli imposta per poco
auth_verbose = yeseauth_debug_passwords = no, poidoveadm reload. - Reimposta la password e genera l'hash con
doveadm pw -s SHA512-CRYPT. - Sposta i client sulla 993 (IMAPS) o sulla 143 con STARTTLS.
- Contro il brute force attiva fail2ban con il filtro
dovecot. - Finita la diagnosi spegni
auth_verbose, così i nomi utente non finiscono nel log.
Domande frequenti
Come distinguo una password sbagliata da un attacco?
Un solo utente da un IP noto è di solito una vecchia password salvata. Tanti nomi utente diversi da pochi IP sono un attacco.
Cosa significa “no auth attempts” invece di “auth failed”?
Con “no auth attempts” il client non ha mai provato il login: di solito port scanner o monitoraggio. Non è un errore di autenticazione.