Como impor que o endereço do remetente seja “[email protected]” no Postfix?

13

Eu configurei um servidor Postfix com SMTP AUTH (STARTTLS na porta 587). Todos os meus usuários estão no domínio "example.org". Quero impor que o endereço do remetente seja "[email protected]".

Eu aprendi que isso pode ser alcançado com as opções main.cf

smtpd_sender_restrictions = reject_sender_login_mismatch, ...
smtpd_sender_login_maps = hash:/etc/postfix/smtpd_sender_login_maps

com um arquivo login_maps como:

[email protected] a
[email protected] b
[email protected] c
...

(veja também Bloquear endereço do remetente com spoofing SMPT AUTH ), mas isso significaria que eu teria que editar o arquivo login_maps toda vez que eu tiver um novo usuário. Eu não preciso de um mapeamento tão flexível: ele deve sempre ser "[email protected]". Existe uma opção mais fácil?

    
por Chris Lercher 04.10.2011 / 16:13

3 respostas

13

Primeiro, verifique se a instalação do Postfix suporta o pcre digitando o comando postconf -m e procurando uma linha com pcre . Depois de verificar se você tem suporte para pcre, você pode fazer o seguinte:

/etc/postfix/login_maps.pcre :

/^(.*)@example\.org$/   ${1}

Em main.cf :

smtpd_sender_login_maps = pcre:/etc/postfix/login_maps.pcre

Isso deve funcionar bem.

    
por 04.10.2011 / 19:36
5

O regex mencionado na outra resposta corresponde à parte do usuário do endereço de email ( logged-in-user @ example.org). Aqui estão algumas informações adicionais.

Para usar o endereço de e-mail completo como nome de usuário, use o seguinte regex (por exemplo, em /etc/postfix/login_map ):

/^(.*)$/   ${1}

Isso significa que seu nome de usuário é sempre seu endereço de e-mail completo ( [email protected] ) - nenhum outro nome de usuário existente pode ser enviado desse endereço - e você não tem que atualizar um arquivo de configuração Postfix adicional toda vez que você adicionar um usuário.

Isso pode ser usado em um servidor com vários domínios configurados. O usuário [email protected] só pode enviar esse endereço, mas não de [email protected] (usuário e email diferentes, pessoa diferente). O nome de usuário john.doe seria ambíguo neste caso.

Além disso, dependendo da configuração, a configuração smtpd_sender_login_maps, que precisa apontar para esse arquivo, pode estar no arquivo master.cf (em vez de main.cf). A documentação oficial do Dovecot tem o seguinte exemplo (se você estiver usando o SASL / submissão):

submission inet n - n - - smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_sasl_security_options=noanonymous
  -o smtpd_sasl_local_domain=$myhostname
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o smtpd_sender_login_maps=hash:/etc/postfix/virtual
  -o smtpd_sender_restrictions=reject_sender_login_mismatch
  -o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject

Neste exemplo, a configuração deve ser ajustada para apontar para o arquivo correto e usar regex ou (melhor) pcre como tipo. Especialmente se um arquivo chamado "virtual" já estiver sendo usado para outra finalidade (por exemplo, para virtual_alias_maps, conforme mostrado em um exemplo oficial do Postfix ), outro arquivo deve ser usado para o mapeamento de login.

De:

smtpd_sender_login_maps=hash:/etc/postfix/virtual

Para:

smtpd_sender_login_maps=pcre:/etc/postfix/login_map
    
por 02.08.2015 / 02:32
0

Você pode usar a combinação de regexp no cabeçalho, conforme mostrado aqui: link ? Então você pode combinar com regexp como [*@example.org] para garantir apenas o remetente do exemplo.org.

    
por 04.10.2011 / 16:38