Você precisaria de algum teste de limitação antes de permit_sasl_authenticated
. Um pré-requisito para isso seria ter o smtpd separado na porta 25
para mensagens recebidas e outro smtpd para envio na porta 587
. Caso contrário, essa limitação faria com que as mensagens recebidas fossem rejeitadas, pois não passariam no teste. Em seguida, remova o permit_sasl_authenticated
da porta 25
e adicione o teste à sua configuração de envio em master.cf
.
-
Para responder à sua pergunta literalmente,
check_sender_access
seria um teste adequado, colocando todos os domínios na lista de permissões listado emsender_dependent_relayhost_maps
e rejeitando o email para o resto.check_sender_access type:table
Search the specified access(5) database for the
MAIL FROM
address, domain, parent domains, orlocalpart@
, and execute the corresponding action.Isso pode ser adicionado a
smtpd_sender_restrictions
ousmtpd_recipient_restrictions
. -
O que faria o mesmo, mas impedisse ainda mais que os usuários usassem os endereços um do outro, usando
reject_sender_login_mismatch
. Isso precisa de uma tabela adicionalsmtpd_sender_login_maps
, mas se suas entradasvirtual_alias_maps
já estiverem formadas como[email protected] username
, você pode usar o mesmo arquivo e os endereços de remetente permitidos são atualizados automaticamente sempre que você atualizar seu banco de dados de aliases virtuais compostmap
. Um exemplo dessa configuração de envio nomaster.cf
:submission inet n - - - - smtpd # Other parameters -o smtpd_sender_login_maps=hash:/etc/postfix/virtual -o smtpd_sender_restrictions=reject_sender_login_mismatch -o smtpd_client_restrictions=permit_sasl_authenticated,reject # Other parameters