Ativar somente o SRS ao encaminhar para ativar o DMARC

3

Estou configurando um servidor de e-mail no meu VPS e, a fim de evitar spam e ser marcado como spam, ativei o SPF, o DKIM e o DMARC. No entanto, eu não quero hospedar minha própria caixa de correio, então eu encaminhar o e-mail recebido para contas de e-mail externas, por exemplo, Gmail. O problema com o encaminhamento é que ele quebra a verificação do SPF. Isso pode ser corrigido usando o SRS, que reescreve o endereço dos remetentes para corresponder ao servidor de e-mail.

Ao enviar e-mails, configurei o Gmail para enviar as mensagens pelo meu servidor de e-mail. Nesse caso, SPF, DKIM e DMARC passarão, mas somente se o SRS estiver desativado, caso contrário, o SRS fará com que o domínio de endereço de envio não corresponda mais ao domínio de cabeçalho FROM, que é um requisito para DMARC passar.

Então, minha pergunta é, como posso habilitar o SRS ao encaminhar, mas impedir que ele seja habilitado ao enviar?

Aqui está mais algum contexto. O servidor de e-mail está executando o Ubuntu 12.04 LTS e está usando o seguinte software:

  • Postfix 2.9.6
  • OpenDKIM 2.6.8
  • OpenDMARC 1.3.1
  • PostSRSD (último mestre do GitHub)

Como eu entendi, existem clientes de email que exigem o PTR, MX, EHLO e banner de email para se referir ao mesmo domínio . E como eu uso meu VPS para mais do que apenas um servidor de email, escolhi configurá-los para o hostname do meu VPS, digamos vps.tld.

Para ativar o PostSRSD, você precisa adicionar as seguintes linhas a /etc/postfix/main.cf :

sender_canonical_maps = tcp:127.0.0.1:10001
sender_canonical_classes = envelope_sender
recipient_canonical_maps = tcp:127.0.0.1:10002
recipient_canonical_classes = envelope_recipient, header_recipient

Mas isso habilitaria o SRS no caso geral, não apenas no encaminhamento. Parece que este é um caso de uso comum de um servidor de e-mail, então espero que haja uma solução para isso.

EDITAR:

Aqui está a saída de postconf -n conforme solicitado:

alias_maps = hash:/etc/postfix/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
milter_default_action = accept
mydestination = vps.tld, localhost
mydomain = vps.tld
myhostname = vps.tld
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
non_smtpd_milters = $smtpd_milters
recipient_canonical_classes = envelope_recipient, header_recipient
recipient_canonical_maps = tcp:127.0.0.1:10002
recipient_delimiter = +
sender_canonical_classes = envelope_sender
sender_canonical_maps = tcp:127.0.0.1:10001
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_loglevel = 1
smtp_tls_security_level = may
smtpd_milters = inet:127.0.0.1:8891, inet:127.0.0.1:8893
virtual_alias_domains = domain1.tld domain2.tld domain3.tld
virtual_alias_maps = hash:/etc/postfix/virtual
    
por Matthijs Steen 16.07.2015 / 15:11

2 respostas

4

Uma solução para o meu problema é que a configuração SRS_EXCLUDE_DOMAINS do PostSRSD contenha todos os domínios dos quais eu envio e-mails. Eu já tentei isso antes, antes mesmo de postar essa pergunta, mas depois de ter definido essa configuração, o PostSRSD não iniciava mais, então eu esperava que houvesse uma solução diferente. Aparentemente, o PostSRSD tem um bug relacionado a essa configuração porque o comentário acima afirma claramente que os domínios podem ser separados usando espaços: Separe vários domínios por espaço ou vírgula. Mas isso fará com que ele não comece. Substituir os espaços por vírgulas corrige isso.

Deixo esta questão não resolvida, porque estou muito interessado em outras soluções.

    
por 17.07.2015 / 15:56
1

Em vez de (ou além de) SRS_EXCLUDE_DOMAINS , você pode excluir dinamicamente domínios, se você for dessa maneira:

sender_canonical_maps = mysql:/etc/postfix/no-srs.cf,tcp:127.0.0.1:10001
recipient_canonical_maps = mysql:/etc/postfix/no-srs.cf, tcp:127.0.0.1:10002

Encontrei esta informação muito útil com mais detalhes e exemplos aqui: link

    
por 01.06.2016 / 20:42