De repente, algumas pessoas ou computadores estão tentando fazer login no meu servidor linux directadmin.
Nos últimos dias recebi muitas mensagens de ataques de força bruta para Exim2 no Direct Admin.
Já instalei o Fail2Ban & Block_IP.SH está no servidor.
Portanto, se o usuário falhar 15 vezes no login, o endereço IP será bloqueado.
Como posso impedir que os ataques continuem, para que os computadores não tentem mais fazer login?
Responder1
Este é um bot distribuído mal escrito. Pelo que sei, esses hosts estão tentando se autenticar em 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
irá perder esta condição, mas bloqueará após 3 tentativas em 10 minutos. Você pode criar um jail.local
arquivo para ajustar o número de falhas necessárias para ser banido fail2ban
ou aumentar o tempo de banimento. fail2ban-client
também permite ajustar a configuração enquanto o servidor está em execução. Pode ser necessário criar um exim.local
arquivo para filter.d
corresponder às linhas que estão sendo geradas. Eu incluí o conteúdo do meu arquivo exim.local
. Você pode usar fail2ban-regex
para testar o regex (você precisará substituir as 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 =