Parâmetros ideais definidos para o “smtpd_recipient_restrictions” do Postfix

8

herdamos o DNS de outro ISP e agora nosso servidor de email é bombardeado por cerca de 1000 emails por minuto, 99,99% desses emails são apenas spam. Estamos tentando otimizar a filtragem / rejeição do spam sem muita sorte.

Na sua opinião, qual seria o melhor cenário smtpd_recipient_restrictions?

A configuração do sistema: Ubuntu + Amavis + Postfix + MySQL + Fail2Ban-Postfix

Qualquer conselho é bem-vindo!

UDPATE, 08/08/2012

Na alteração da configuração do posftix como a seguir e na configuração do serviço Potrgey, o nível de spam diminuiu 10 vezes

smtpd_recipient_restrictions = 
permit_mynetworks, 
permit_sasl_authenticated, 
reject_non_fqdn_hostname, 
reject_invalid_hostname, 
reject_non_fqdn_sender, 
reject_unknown_sender_domain, 
reject_non_fqdn_recipient, 
reject_unknown_recipient_domain, 
check_policy_service inet:127.0.0.1:10023, 
reject_rbl_client zen.spamhaus.org, 
check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf,
reject_unauth_pipelining, 
reject_unauth_destination

insira a descrição da imagem aqui

Igor
fonte
1
Eu quero comprar esse domínio! Por favor, faça uma oferta.
mailq
O que você está tentando resolver? Qual é o seu problema? Você diz apenas que rejeita o spam. Mas isso não é um problema. Esta é uma solução.
mailq
@mailq: de jeito nenhum me desculpe
Igor
@mailq: a idéia é rejeitar spams com mais eficiência, reduzir as cargas do sistema
Igor

Respostas:

6

Sua ordem de regras é muito ruim. Se você deseja manter todos eles e não adicionar mais nada, o pedido deve ser:

smtpd_recipient_restrictions = 
permit_mynetworks, 
permit_sasl_authenticated, 
reject_unauth_pipelining, 
reject_invalid_hostname, 
reject_non_fqdn_sender, 
reject_unknown_sender_domain, 
reject_unauth_destination, 
reject_unknown_recipient_domain, 
reject_rbl_client zen.spamhaus.org,
check_recipient_access proxy:mysql:/etc/postfix/mysql-virtual_recipient.cf, 
reject_non_fqdn_recipient

E se isso ainda não é suficiente, em seguida, ler sobre postscreenem http://www.postfix.org/POSTSCREEN_README.html .

mailq
fonte
Desculpe, mas o pedido é importante ou não? de certa forma, o postfix verifica primeiro "allow_mynetworks" e, finalmente, "reject_non_fqdn_recipient".
Igor
1
Definitivamente! Ordem importa. Da esquerda para a direita (ou de cima para baixo). Conforme descrito em postfix.org/SMTPD_ACCESS_README.html
mailq
5

Eu sugeriria uma smtpd_recipient_restriction semelhante à seguinte:

smtpd_recipient_restricdtions = 
# Whitelisting or blacklisting:
check_recipient_access proxy:mysql:/etc/postfix/mysql-virtual_recipient.cf,
# Everyone should play after rules:
reject_non_fqdn_recipient,
reject_non_fqdn_sender,
reject_unknown_recipient_domain,
reject_unknown_sender_domain,
reject_unauth_pipelining,
# Mails from your users:
permit_mynetworks,
permit_sasl_authenticated,
# This will block mails from domains with no reverse DNS record. Will affect both spam and ham mails, but mostly spam. 
reject_unknown_reverse_client_hostname,
# Instead of reject_unknown_reverse_client_hostname you can also use reject_unknown_client_hostname, which is an even harder rule. 
# Reject ugly HELO/EHLO-hostnames (could also affect regular mails):
reject_non_fqdn_hostname,
reject_invalid_helo_hostname,
# Reject everything you're not responsible for:
reject_unauth_destination,
# Only take mails for existing accounts:
reject_unverified_recipient,
# DNS lookups are "expensive", therefore should be at bottom
reject_rbl_client zen.spamhaus.org

Informações detalhadas sobre smtpd_recipient_restrictions podem ser encontradas aqui: http://www.postfix.org/postconf.5.html#smtpd_recipient_restrictions

Talvez você também quiser usar postgrey , postscreen , postfwd ou algum outro daemon política .

E também verifique se você está usando seu amavisd-new no modo pré-fila.

sebokopter
fonte
Isto é mau. A segunda linha bloqueia o correio para qualquer destinatário de saída. Portanto, você não pode enviar e-mails do seu servidor para o mundo externo. As consultas MySQL são igualmente caras quanto as consultas DNS. Portanto, você também deve mover as consultas do MySQL para o final.
mailq