Este é um bot distribuído mal escrito. Tanto quanto eu posso dizer que esses hosts estão tentando autenticar através de uma conexão não criptografada. Se você precisar de uma conexão segura para autenticar, eles falharão mesmo. No entanto, parece que você está permitindo a autenticação em conexões não criptografadas.
Por padrão, fail2ban
perderá essa condição, mas bloqueia após três tentativas em 10 minutos. Você pode criar um arquivo jail.local
para ajustar o número de falhas necessárias para ser banido por fail2ban
ou aumentar o tempo de proibição. fail2ban-client
também permite ajustar a configuração enquanto o servidor está em execução. Talvez seja necessário criar um arquivo exim.local
em filter.d
para corresponder às linhas que estão sendo geradas. Eu incluí o conteúdo do meu exim.local
. Você pode usar fail2ban-regex
para testar o regex (você precisará substituir os inclusões do python no regex).
[Definition]
host_info = H=([\w.-]+ )?(\(\S+\) )?\[<HOST>\](:\d+)? ?(I=\[\S+\]:\d+ )?(U=\S+ )?(P=e?smtp )?
failregex = ^%(pid)s %(host_info)s [^:]+: Sender host address is listed in zen.spamhaus.org
^%(pid)s %(host_info)s sender verify fail for <\S+>: (?:Unknown user|Unrouteable address|all relevant MX records point to non-existent hosts)\s*$
^%(pid)s (plain|login) authenticator failed for (\S+ )?\(\S+\) \[<HOST>\]: 535 Incorrect authentication data( \(set_id=.*\)|: \d+ Time\(s\))?\s*$
^%(pid)s %(host_info)s F=(<>|[^@]+@\S+) rejected RCPT [^@]+@\S+: (relay not permitted|Sender verify failed|Unknown user)\s*$
^%(pid)s SMTP protocol synchronization error \([^)]*\): rejected (connection from|"\S+") %(host_info)s(next )?input=".*"\s*$
^%(pid)s SMTP call from \S+ \[<HOST>\](:\d+)? (I=\[\S+\]:\d+ )?dropped: too many nonmail commands \(last was "\S+"\)\s*$
\[<HOST>\]: 535 Incorrect authentication data
^%(pid)s %(host_info)s Warning: smtp used a hostname$
^%(pid)s no MAIL in SMTP connection from (\([^)]+\) )?\[<HOST>\] D=\d+(m\d+)?s( C=.*)?$
^%(pid)s SMTP protocol synchronization error \(input sent without waiting for greeting\): rejected connection from %(host_info)s
ignoreregex =