Gostaria de configurar o postfix para retransmitir mensagens apenas de determinados endereços de remetentes. O Postfix deve retransmitir mensagens para diferentes relayhosts(/smarthosts) (Gmail, AOL, ...) dependendo do endereço do remetente ("MAIL FROM:").
Até agora, minha configuração atual funciona da seguinte forma:
Os usuários autenticam no postfix para retransmissão de correio em geral. Se eles não puderem autenticar, nenhuma retransmissão será possível. Observe que esta autenticação é diferente da autenticação para os relayhosts.
Dependendo do endereço do remetente ("MAIL FROM:"), um determinado relayhost é selecionado (
smtp_sender_dependent_authentication
,sender_dependent_relayhost_maps
,smtp_sasl_password_maps
). Isso também funciona bem.No entanto, se o usuário puder autenticar e tiver um endereço de remetente não coberto
sender_dependent_relayhost_maps
, o postfix tentará retransmitir diretamente o e-mail - o que geralmente não funciona devido a restrições de endereço IP (listas negras).
Minha pergunta agora é: como rejeitar mensagens que teriam sido retransmitidas diretamente (sem smarthost), ou seja, onde o endereço do remetente não está listado sender_dependent_relayhost_maps
? Alguma dica de como conseguir isso?
Responder1
Você precisaria de algum teste limitanteantes permit_sasl_authenticated
. Um pré-requisito para isso seria ter o smtpd separado na porta 25
para mensagens recebidas e outro smtpd parasubmissãono porto 587
. Caso contrário, esta limitação faria com que o correio recebido fosse rejeitado, pois não passaria no teste. Em seguida, remova completamente o permit_sasl_authenticated
da porta 25
e adicione o teste à sua configuração de envio no formato master.cf
.
Para responder sua pergunta literalmente,
check_sender_access
seria um teste adequado, colocando todos os domínios listados na lista de permissõessender_dependent_relayhost_maps
e rejeitando o restante dos e-mails.check_sender_access type:table
Pesquise o especificadoacesso(5)banco de dados para o
MAIL FROM
endereço, domínio, domínios pai oulocalpart@
e execute a ação correspondente.Isto pode ser adicionado a qualquer
smtpd_sender_restrictions
ousmtpd_recipient_restrictions
.O que faria o mesmo, mas impediria ainda mais que os usuários usassem os endereços uns dos outros, é usar
reject_sender_login_mismatch
. Isto precisa de um adicionalsmtpd_sender_login_maps
tabela, mas se suasvirtual_alias_maps
entradas já estiverem formadas como[email protected] username
, você poderá usar o mesmo arquivo e os endereços de remetentes permitidos serão atualizados automaticamente sempre que você atualizar seu banco de dados de aliases virtuais compostmap
. Um exemplo dessa configuração de envio emmaster.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