Exemplo de configuração do fail2ban para banir servidores que fazem spam no meu servidor postfix?

2

Eu tenho um pequeno servidor de e-mail em casa e regras de filtragem bastante restritivas. Eu uso logwatch e pude ver que 80 a 90% das conexões são rejeitadas pelas minhas regras restritivas de filtragem. A maioria dos resultados de rejeição do rbl_client.

Eu estou procurando desesperadamente por um exemplo de arquivo de configuração do fail2ban mostrando como filtrar IPs de spam do meu servidor. Desejo que a proibição seja por um longo período (ou seja, 1 mês).

Também tive uma tentativa de inundação de SYN no meu servidor de email que bloqueei usando uma regra de firewall definida manualmente. O fail2ban poderia detectar isso também?

    
por chmike 01.04.2013 / 18:08

2 respostas

5

Acabei de enjoar de todos os spammers da RBL enchendo meus logs, então configurei o Postfix para bani-los.

Depois de fazer isso, a carga caiu porque eles eram muitos!

Esteja ciente de que você precisa implementar alguma maneira de limpar a lista banida.

Estou planejando reiniciar o fail2ban semanalmente.

Confira estas regras: link

Adicione-os em: /etc/fail2ban/filter.d/postfix.conf (no sistema Debian!)

Também é bom ler isto (pesquise por fail2ban): link (alguns trechos de lá).

Resumindo:

  1. No conjunto jail.conf:

    [postfix]
    enabled  = true
    
  2. É bom fazer se você estiver usando o dovecot (do link acima): Crie /etc/fail2ban/filter.d/dovecot-pop3imap.conf e adicione a ele:

    [Definition]
    failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \   (auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed).*rip=(?P<host>\S*),.*
    ignoreregex =
    
  3. Adicione uma seção em jail.conf ou jail.local:

    [dovecot-pop3imap]
    enabled = true
    port = pop3,pop3s,imap,imaps
    filter = dovecot-pop3imap
    logpath = /var/log/mail.log
    
  4. Reinicie o fail2ban e verifique iptables -nvL se as cadeias para postfix e courier forem adicionadas. CUIDADO: Isto é para sistemas baseados em Debian. Verifique os caminhos dos arquivos para RH ou outros.

por 27.05.2013 / 12:40
1

A melhor maneira é apenas usar o Postfix para filtrar IPs usando listas de bloqueio.

Veja link para rejeitar o uso de lista (s) de bloqueio.

Se você realmente quisesse, você poderia usar um filtro Fail2Ban como f2b-postfix-rbl ( postfix-rbl.conf ) para filtrar o registro de e-mail para entradas IP de lista de bloqueio / lista negra. Ele então inseriria uma nova entrada no iptables e ela deveria ser bloqueada por um determinado tempo de proibição.

Como mencionado, isso provavelmente não fará muito, já que o script / bot / mailer irá apenas seguir após a primeira falha e tentar você novamente em um dia diferente de um IP diferente. Além disso, é redundante, pois você pode filtrar usando o MTA, conforme mencionado acima.

Aqui está uma amostra de algumas listas de bloqueio que você pode adicionar no postfix para bloquear IPs na lista negra.

/etc/main.cf:

smtpd_recipient_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination,
    reject_unlisted_recipient,
    reject_invalid_hostname,
    reject_non_fqdn_sender,
    reject_non_fqdn_recipient,
    reject_unknown_sender_domain,
    reject_unauth_pipelining,
    check_client_access hash:/etc/postfix/blacklist,
#Some DNS BL's - high availability:
    reject_rbl_client zen.spamhaus.org,
    reject_rbl_client bl.spamcop.net,
    reject_rbl_client dul.dnsbl.sorbs.net,
#Some country-wide IP blocks:
    #reject_rbl_client cn.countries.nerd.dk,
    #reject_rbl_client tw.countries.nerd.dk,
    #reject_rbl_client lr.countries.nerd.dk,
    #reject_rbl_client ng.countries.nerd.dk,
    #reject_rbl_client ro.countries.nerd.dk,
    #reject_rbl_client ua.countries.nerd.dk,
    #reject_rbl_client kr.countries.nerd.dk,
    #finalize and throw at postgrey if passes above:
    #check_policy_service inet:[::1]:10023,
    permit

Se você insistir em listas de bloqueio de processamento do fail2ban, certifique-se de ativá-lo em um /etc/failban/jail.local:

[postfix-rbl]

enabled  = true
port     = smtp,465,submission
filter   = postfix-rbl
logpath  = /var/log/mail.log

Para usar o "modo" rbl em versões mais recentes, substitua a linha de filtro por:

filter    = postfix[mode=rbl]

Em versões anteriores, tive que mudar o meu para detectar "554 5.7.1" para pegar rejeições de log postfix via filtro "postifx-rbl". A versão mais recente do filtro parece verificar essa alteração nas versões mais recentes do modo "RBL".

No caso de inundações por SYN - veja isto .

    
por 18.01.2017 / 22:27

Tags