Como obtenho o opendkim para assinar e-mails?

1

Estou usando um Ubuntu VPS 14.04 e estou tendo problemas para obter o opendkim para assinar e-mails enviados.

Além disso, eu não entendo os resultados do dig -x, e não tenho certeza se o meu provedor de VPS entrou no registro do rDNS PTR corretamente. Aqui estão os resultados retornados:

$  dig -x 84.200.17.129

; <<>> DiG 9.9.5-9+deb8u5-Debian <<>> -x 84.200.17.129
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38970
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;129.17.200.84.in-addr.arpa.    IN  PTR

;; ANSWER SECTION:
129.17.200.84.in-addr.arpa. 10799 IN    CNAME   129.0-255.17.200.84.in-addr.arpa.
129.0-255.17.200.84.in-addr.arpa. 10799 IN PTR  ozarksneighborlyexchange.com.

;; Query time: 273 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Mar 25 07:13:48 CDT 2016
;; MSG SIZE  rcvd: 121

Eu sei, por exemplo, que CNAME é um alias. Eu esperava um PTR para meu domínio e IP, mas eles parecem ter adicionado apenas um registro CNAME. O registro PTR refere-se ao intervalo de IPs completos do provedor. Pelo que li, os registros CNAME não têm muito peso para fins de verificação. A pontuação no mail-tester.com melhorou de 3/10 para 4,5 / 10 depois que o CNAME foi adicionado.

Quanto ao problema de assinatura do opendkim, segui este guia: link e ativamos o log estendido com :

# Log to syslog
Syslog                  yes
LogWhy                  yes
SyslogSuccess           yes
MilterDebug             3

Eu vejo o seguinte nos registros de um simples email para mail-tester.com:

Mar 25 11:49:35 seed05 opendkim[10983]: D05F140793: no signing domain match for 'seed05.ozarksneighborlyexchange.com'
Mar 25 11:49:35 seed05 opendkim[10983]: D05F140793: no signing subdomain match for 'seed05.ozarksneighborlyexchange.com'
Mar 25 11:49:35 seed05 opendkim[10983]: D05F140793: no signature data

Eu também estou um pouco confuso sobre o papel que os subdomínios desempenham nisso. Eu configurei meu host VPS para seed05 e adicionei esta linha ao meu arquivo / etc / hosts: 84.200.17.129 seed05.ozarksneighborlyexchange.com seed05

Não sei se algo precisa ser adicionado ao meu DNS relacionado a um subdomínio. Atualmente tenho 2 registros "A" e 2 registros "TXT" definidos: UMA @ Um www TXT @ v = spf1 a inclui: _spf.ozarksneig ..... (para SPF, o que parece OK) TXT mail._domainkey v = DKIM1; p = MIGfMA0GCS ...... (ferramentas parecem dizer isso OK)

Eu adicionei o postfix ao grupo opendkim. Vejo muitas referências a inet, mas inetd está obsoleto e não consigo encontrar informações sobre como a substituição para ele está configurada (por exemplo, onde a porta 8891 está definida para smtp / postfix).

Então, como você pode ver, eu tenho vários pontos de confusão, apesar de passar o dia todo tentando enviar e-mails para serem enviados de forma mais confiável. Gostaria muito de receber qualquer entrada / respostas para isso. Thx!

    
por motech man 25.03.2016 / 13:52

1 resposta

1

Para o registro PTR no espaço de mapeamento reverso, o que eles possuem é bom. Está seguindo o RFC2317 , que é uma prática recomendada atual para delegar o controle de registros DNS para redes menores que / 24. Apenas o que eles parecem ser um pouco desnecessário já que a notação "range" é 0-255 o que implica um tamanho de rede / 24 (mas há uma delegação para outro servidor - dig ns 0-255.17.200.84.in-addr.arpa )

Portanto, essa parte está bem, desde que o seu servidor de e-mail esteja afirmando ser ozarksneighborlyexchange.com na troca EHLO. Mas ele realmente precisa ser seed05.ozarksneighborlyexchange.com de acordo com o resto do seu post, ou seja, ele precisa ser o que seu servidor de email sabe ser (declaração myhostname no seu arquivo Postfix main.cf)

Fazer o OpenDKIM funcionar é tão simples quanto configurar as chaves de assinatura, e dizer ao Postfix para usá-lo como um "milter" no correio de saída. A parte inet está confundindo você, que está se referindo ao mecanismo de transporte, não ao antigo daemon.

Aqui está o meu arquivo conf do OpenDKIM, modificado para você: /etc/opendkim.conf

(a parte que estou supondo que está errada é a linha do domínio ... você quer usar a parte do domínio dos seus endereços de e-mail, [email protected], por isso, se a parte do domínio for ozarksneighborlyexchange.com para você, o que acontece na configuração do DKIM e determina o que entra no DNS ...)

# This is a basic configuration that can easily be adapted to suit a standard
# installation. For more advanced options, see opendkim.conf(5) and/or
# /usr/share/doc/opendkim/examples/opendkim.conf.sample.

# Log to syslog
Syslog                  yes
# Required to use local socket with MTAs that access the socket as a non-
# privileged user (e.g. Postfix)
UMask                   002

# Sign for example.com with key in /etc/mail/dkim.key using
# selector '2007' (e.g. 2007._domainkey.example.com)
Domain                 ozarksneighborlyexchange.com
KeyFile                 /etc/postfix/dkim.key
Selector                general

# Commonly-used options; the commented-out versions show the defaults.
#Canonicalization       simple
#Mode                   sv
#SubDomains             no
#ADSPDiscard            no

Isto supõe que você gerou a chave DKIM chamada 'dkim', então você tem um arquivo dkim.key e um dkim.pub em seu diretório / etc / postfix. Ajuste conforme necessário.

A próxima parte é dizer ao OpenDKIM onde escutar. Eu uso um socket tipo Internet (inet) na mesma máquina que o Postfix, então eu tenho isso em / etc / default / opendkim:

# Command-line options specified here will override the contents of
# /etc/opendkim.conf. See opendkim(8) for a complete list of options.
#DAEMON_OPTS=""
#
# Uncomment to specify an alternate socket
# Note that setting this will override any Socket value in opendkim.conf
#SOCKET="local:/var/run/opendkim/opendkim.sock" # default
SOCKET="inet:60001@localhost"

Depois, na configuração do Postfix, diga onde encontrá-lo e use-o como um "milter".

Em /etc/postfix/main.cf:

smtpd_milters = inet:localhost:60001
milter_default_action = accept

E a última parte é colocar sua chave pública no DNS para que outras pessoas possam validar suas assinaturas. No meu caso, meu endereço de email é [email protected], então eu tenho acmeps.com como o domínio no arquivo opendkim.conf, então no DNS, eu tenho:

general._domainkey      TXT     "v=DKIM1\; k=rsa\; " "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsnvxDB629MQXlcEMxgJIj18oH0BP5i02+v" "e3acN7yJ+n+smkMHUtaXSnSU2KN0ObySjkafUD93L1dL4KtafAKwE5gWSRbxrMBwWjwcmNgiCmtELbzt" "azlK8N6bbm2R1e7csUfHaFScSC5Lu+UD8JrFeovWfNCSpmV/kyrIlTTArNLK3R7mad4MmOZo/Agj9JRg" "0fa+cKCEl8Uo8RqY4xHX9fAlJTGT4MSvH3KEo9aL/tr7qZvcROA8dBaCLfdDnOqrBpfjFfZZSoCcYi6V" "bTKswYiAHABljoq5qhR7k+EdKv2Z+DRD2e2knld5kYXeMJXUENrZ2hYn4q25JEdET1TwIDAQAB"

Você pode ver isso com dig txt general._domainkey.acmeps.com .

Aqui você percebe que general apareceu. Esse é o DKIM selector e precisa corresponder no arquivo opendkim.conf e no que você coloca no DNS. Você não listou o que seu seletor está definido, mas essa é a outra coisa que vai te morder.

Isso deve te deixar em cima da corcova!

    
por 26.03.2016 / 22:05