Eu acho que você precisa usar restrições smtpd.
Snippet da minha configuração:
smtpd_helo_restrictions =
permit_mynetworks,
reject_unauth_pipelining,
permit_sasl_authenticated,
reject_invalid_helo_hostname,
reject_non_fqdn_hostname,
reject_rbl_client zombie.dnsbl.sorbs.net,
reject_rbl_client zen.spamhaus.org,
reject_rbl_client bl.spamcop.net
smtpd_recipient_restrictions =
permit_mynetworks,
reject_unauth_pipelining,
reject_non_fqdn_recipient,
permit_sasl_authenticated,
reject_unauth_destination,
check_policy_service inet:[127.0.0.1]:2501,
permit
smtpd_sender_restrictions =
permit_mynetworks,
reject_unauth_pipelining,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
permit_sasl_authenticated,
permit_tls_clientcerts,
check_sender_access regexp:$config_directory/tag_as_foreign.re,
permit
smtpd_data_restrictions =
reject_unauth_pipelining,
reject_multi_recipient_bounce,
permit
Existe uma grande variedade de verificações que você pode fazer dependendo da sua configuração. Existe um conjunto de restrições para cada fase do fluxo de trabalho SMTP. Verifique mais em link .
Você deve definir restrições para todas as fases, que são smtpd_helo_restrictions
, smtpd_data_restrictions
, smtpd_sender_restrictions
, smtpd_recipient_restrictions
e smtpd_client_restrictions
. No Postfix 2.10+ existe uma nova opção smtpd_relay_restrictions
que pode ser perfeitamente adequada para você.
Observe que, se você quiser que seu próprio e-mail seja retransmitido por meio de seu servidor SMTP, será necessário identificá-lo de alguma forma. estar em $mynetworks
, você usa autenticação.
A configuração da mina também usa listas de blackhost, greylisting e autenticação.
Basicamente, suas restrições de SMTP devem permitir:
- suas redes (localhost, intranet etc .; consulte
permit_mynetworks
),
- usuários autenticados (usuários conectados usando login SMTP, você pode retransmitir mensagens para eles para servidores externos; consulte
permit_sasl_authenticated
),
- e-mails entregues a você (= você é o "destino final" para eles; consulte
reject_unauth_destination
).
- opcionalmente todos os outros domínios de e-mail para os quais você está enviando e-mails; por exemplo. quando o seu servidor não é o destino final de algum domínio, mas é, por exemplo, proxy de front-end, você deve verificar o destinatário em uma lista de desbloqueio e transportá-lo para o próximo destino.
Todos os outros e-mails, enviados por usuários não autorizados de qualquer lugar para servidores externos, significam relé aberto.