fail2ban rejeitar bots de spam de força bruta

2

Seria sensato se eu modificasse a regra postfixban fail2ban a partir disso:

failregex = ^%(__prefix_line)sNOQUEUE: reject: RCPT from \S+\[<HOST>\]: 554 5\.7\.1 .*$
        ^%(__prefix_line)sNOQUEUE: reject: RCPT from \S+\[<HOST>\]: 450 4\.7\.1 Client host rejected: cannot find your hostname, (\[\S*\]); from=<\S*> to=<\S+> proto=ESMTP helo=<\S*>$
        ^%(__prefix_line)sNOQUEUE: reject: RCPT from \S+\[<HOST>\]: 450 4\.7\.1 : Helo command rejected: Host not found; from=<> to=<> proto=ESMTP helo= *$
        ^%(__prefix_line)sNOQUEUE: reject: EHLO from \S+\[<HOST>\]: 504 5\.5\.2 <\S+>: Helo command rejected: need fully-qualified hostname;
        ^%(__prefix_line)sNOQUEUE: reject: VRFY from \S+\[<HOST>\]: 550 5\.1\.1 .*$
        ^%(__prefix_line)sNOQUEUE: reject: RCPT from \S+\[<HOST>\]: 450 4\.1\.8 <\S*>: Sender address rejected: Domain not found; from=<\S*> to=<\S+> proto=ESMTP helo=<\S*>$
        ^%(__prefix_line)simproper command pipelining after \S+ from [^[]*\[<HOST>\]:?$

adicionando a seguinte linha:

  ^%(__prefix_line)sNOQUEUE: reject: RCPT from \S+\[<HOST>\]: 550 5\.1\.1 .*$

Porque estou tentando impedir ataques como este:

Jan 27 09:42:02 host1 postfix/smtpd[3416]: NOQUEUE: reject: RCPT from unknown[109.107.106.180]: 550 5.1.1 <[email protected]>: Recipient address rejected: User unkn
own in virtual alias table; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<[109.107.106.180]>
Jan 27 09:42:03 host1 postfix/smtpd[3416]: NOQUEUE: reject: RCPT from unknown[109.107.106.180]: 550 5.1.1 <[email protected]>: Recipient address rejected: User unknown 
in virtual alias table; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<[109.107.106.180]>
Jan 27 09:55:32 host1 postfix/smtpd[4914]: NOQUEUE: reject: RCPT from unknown[109.107.106.180]: 550 5.1.1 <[email protected]>: Recipient address rejected: User unk
nown in virtual alias table; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<[109.107.106.180]>
Jan 27 09:55:32 host1 postfix/smtpd[4914]: NOQUEUE: reject: RCPT from unknown[109.107.106.180]: 550 5.1.1 <[email protected]>: Recipient address rejected: User unknown
 in virtual alias table; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<[109.107.106.180]>

My concern is that it will drop unintentional wrong emails that should be bounced back to users who missed email address by accident.

Qual é a sua sugestão?

    
por Aleksandar Pavić 27.01.2017 / 09:59

2 respostas

2

Há sempre um equilíbrio para encontrar com esse tipo de coisa. Uma falha ocasional ou pouco frequente é provavelmente um erro na parte dos remetentes. Múltiplas falhas em pouco tempo são provavelmente uma indicação de que você quer colocar uma proibição (temporária) em vigor.

É por isso que o fail2ban possui parâmetros que você pode usar para ajustar a sensibilidade. Por exemplo, você pode definir maxretry e findtime . A configuração maxretry é o número de tentativas falhas que serão toleradas dentro do findtime mais do que isso e o endereço será banido.

Eu daria uma olhada no arquivo e teria uma ideia do que está acontecendo e definiria os parâmetros adequadamente.

    
por 27.01.2017 / 10:51
3

Minha sugestão para você é usar a pós-tela, mais informações aqui: link

"The Postfix postscreen(8) server provides additional protection against mail server overload. One postscreen(8) process handles multiple inbound SMTP connections, and decides which clients may talk to a Post- fix SMTP server process. By keeping spambots away, postscreen(8) leaves more SMTP server processes available for legitimate clients, and delays the onset of server overload conditions."

Isso coloca toda a carga longe do MTA, fazendo algumas verificações inteligentes. Os bots nunca chegarão até lá, assim como deveria ser.

Se a sua configuração não permitir a instalação de pós-telas, o uso de um daemon de política com limites de taxa poderá ser útil.

    
por 29.01.2017 / 20:48