regex fail2ban que usa menos CPU?

2

Usando o fail2ban, quero banir esses spammers que enviam para um endereço de spamtrap:

Oct 27 09:04:22 si68 postfix/smtpd[3240]: NOQUEUE: reject: RCPT from unknown[117.197.114.222]: 550 5.7.1 <[email protected]>: Recipient address rejected: Mail appeared to be SPAM or forged. Ask your Mail/DNS-Administrator to correct HELO and DNS MX settings or to get removed from DNSBLs; MTA helo: odwsgs.com, MTA hostname: unknown[117.197.114.222] (helo/hostname mismatch); from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<odwsgs.com>
Oct 27 09:08:51 si68 postfix/smtpd[32646]: NOQUEUE: reject: RCPT from unknown[182.177.131.71]: 550 5.7.1 <[email protected]>: Recipient address rejected: Mail appeared to be SPAM or forged. Ask your Mail/DNS-Administrator to correct HELO and DNS MX settings or to get removed from DNSBLs; MTA helo: rigplj.com, MTA hostname: unknown[182.177.131.71] (helo/hostname mismatch); from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<rigplj.com>
Oct 27 12:42:09 si68 postfix/smtpd[22119]: NOQUEUE: reject: RCPT from unknown[70.39.119.76]: 550 5.7.1 <[email protected]>: Recipient address rejected: temporarily blocked because of previous errors - retrying too fast. penalty: 30 seconds x 0 retries.; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<CT623.local>
Oct 27 14:03:12 si68 postfix/smtpd[30183]: NOQUEUE: reject: RCPT from unknown[91.79.137.194]: 550 5.7.1 <[email protected]>: Recipient address rejected: Mail appeared to be SPAM or forged. Ask your Mail/DNS-Administrator to correct HELO and DNS MX settings or to get removed from DNSBLs; please relay via your ISP (mchi.org); Please use DynDNS; from=<[email protected]> to=<[email protected]> proto=SMTP helo=<ppp91-79-137-194.pppoe.mtu-net.ru>
Oct 27 22:00:28 si68 postfix/smtpd[18310]: NOQUEUE: reject: RCPT from unknown[96.31.94.71]: 550 5.1.1 <[email protected]>: Recipient address rejected: User unknown; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<ipr-management-mail.com>
Oct 28 00:40:00 si68 postfix/smtpd[18319]: NOQUEUE: reject: RCPT from unknown[63.141.229.165]: 550 5.1.1 <[email protected]>: Recipient address rejected: User unknown; from=<[email protected]> to=<[email protected]> proto=SMTP helo=<mx1.nnamedia.com>
Oct 28 04:05:14 si68 postfix/smtpd[9519]: NOQUEUE: reject: RCPT from unknown[70.39.119.76]: 550 5.7.1 <[email protected]>: Recipient address rejected: Your MTA is listed in too many DNSBLs; check http://www.robtex.com/rbl/70.39.119.76.html; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<CT623.local>

Não sou muito bom em expressões regulares, mas descobri isso:

[Definition]
failregex = reject: RCPT from (.*)\[<HOST>\]: (.*)spamtrap

No entanto, quando eu testo o regex acima contra o maillog (46MB) da seguinte forma:

fail2ban-regex /var/log/maillog 'failregex = reject: RCPT from (.*)\[<HOST>\]: (.*)spamtrap'

A CPU enlouquece tentando processá-lo. Eu acho que o regex poderia ser escrito de forma mais eficiente. Alguma sugestão?

Atualização : os IPs no arquivo de log acima são rejeitados apenas para as transações específicas acima. Eu quero bloqueá-los completamente. Isso é apenas um excerto de log muito pequeno. Os mesmos IPs de spam não estão enviando apenas para endereços de spamtrap, mas também enviando para destinatários válidos reais, e estão passando.

Em outras palavras, eu gostaria de bani-los no momento em que eles tentam o endereço de spamtrap - evitando assim que novas mensagens do mesmo IP cheguem a uma pessoa real.

    
por ane 31.10.2011 / 21:48

2 respostas

2

Encontrou uma maneira de usar um pouco menos de CPU com menos glob usando este conselho de Michael Orlitzky:

failregex = reject: RCPT from (.*)\[<HOST>\]: 550 5\.1\.1 <spamtrap@example\.com>

Referência: link

    
por 07.11.2011 / 21:47
1

Não consigo ver o que você está tentando realizar. O menor uso de CPU que você pode obter é remover o fail2ban e ignorar as entradas no log de mensagens. Todos esses emails são rejeitados. Então, por que se importar?

Você consome CPU ao rejeitar (policyd-weight) e depois ao fail2ban para banir a conexão já encerrada. Apenas ignore o passado.

Se você realmente precisa fazer isso, você deve redirecionar os registros. Use filtros syslog-ng para criar um arquivo de log apenas para ocorrências de spamtrap. Em seguida, use o fail2ban nesse minúsculo arquivo de log.

    
por 31.10.2011 / 22:04