Muitos dos itens podem ser abordados na seção smtpd_client_restrictions
dos Parâmetros de configuração do Postfix
Aqui estão as restrições do meu cliente:
smtpd_client_restrictions = permit_mynetworks
permit_sasl_authenticated
check_helo_access
hash:/etc/postfix/helo_access
check_client_access
hash:/etc/postfix/client_checks
reject_unauth_destination
check_policy_service unix:private/policy-spf
reject_rbl_client cbl.abuseat.org
reject_rbl_client pbl.spamhaus.org
reject_rbl_client sbl.spamhaus.org
reject_rbl_client bl.blocklist.de
reject_unknown_client
Esta configuração remove cerca de 99% do correio de spam recebido. A lista é uma lista ordenada. Cada cheque passa para o próximo. Quando ocorre uma falha, o email é rejeitado. Descobri que precisava criar algumas exceções para minhas regras e elas estão contidas no arquivo client_checks
db.
Este arquivo de exceção é assim:
cat /etc/postfix/client_checks
ip.address.123.456 OK
ip.address.789.123 REJECT
Depois de criar o arquivo colunar de texto simples, você precisa emitir o comando postmap
para que o arquivo seja enviado como um arquivo db.
postmap /etc/postfix/client_checks
As regras de encaminhamento para um sistema que tem um ou dois destinatários devem ser fáceis de configurar por meio de aliases.
man aliases
man postaliases
O formato e o procedimento do arquivo são praticamente os mesmos. Digite aliases linha por linha e, em seguida, emita o comando postaliases
para criar o banco de dados.
Para aliases mais complicados, expressões regulares podem ser incluídas em sua tabela de alias:
man regexp_table
...
EXAMPLE SMTPD ACCESS MAP
# Disallow sender-specified routing. This is a must if you relay mail
# for other domains.
/[%!@].*[%!@]/ 550 Sender-specified routing rejected
# Postmaster is OK, that way they can talk to us about how to fix
# their problem.
/^postmaster@/ OK
# Protect your outgoing majordomo exploders
if !/^owner-/
/^(.*)-outgoing@(.*)$/ 550 Use ${1}@${2} instead
endif