Como faço para o opendkim assinar emails?

1

Estou executando um ubuntu 14.04 VPS e estou tendo problemas para que o opendkim assine emails de saída.

Além disso, não entendo os resultados do dig -x e não tenho certeza se meu provedor VPS inseriu o registro 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 o meu domínio e IP, mas eles parecem ter adicionado apenas um registro CNAME. O registro PTR refere-se a todo o intervalo de IPs 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 após a adição do CNAME.

Quanto ao problema de assinatura do opendkim, segui este guia: https://easyengine.io/tutorials/mail/dkim-postfix-ubuntu/ e habilitei o log estendido com:

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

Vejo o seguinte nos logs para um email simples 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

Também estou um pouco confuso sobre o papel dos subdomínios nisso. Defino meu nome de host do VPS como seed05 e adicionei esta linha ao meu arquivo / etc / hosts: 84.200.17.129 seed05.ozarksneighborlyexchange.com seed05

Não sei se é necessário adicionar ao meu DNS algo relacionado a um subdomínio. Atualmente, tenho 2 registros "A" e 2 registros "TXT" definidos: A @ A www TXT @ v = spf1 a inclui: _spf.ozarksneig ..... (para SPF, que parece OK) TXT mail._domainkey v = DKIM1; p = MIGfMA0GCS ...... (as ferramentas parecem dizer que está OK)

Eu adicionei o postfix ao grupo opendkim. Eu vejo muitas referências ao inet, mas o 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, tenho vários pontos de confusão, apesar de passar o dia todo tentando fazer com que o email seja enviado com mais segurança. Agradeceria imensamente qualquer entrada / resposta a isso. Valeu!

homem motech
fonte

Respostas:

1

Para o registro PTR no espaço de mapeamento reverso, o que eles têm lá é bom. Ele segue o RFC2317, que é uma prática recomendada atual para delegar o controle de registros DNS em redes menores que / 24. Só que o que eles parecem ser um pouco desnecessários, já que a notação "intervalo" é de 0 a 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á correta, desde que o servidor de correio esteja reivindicando ser ozarksneighborlyexchange.com na troca EHLO. Mas ele realmente precisa ser seed05.ozarksneighborlyexchange.com de acordo com o restante da sua postagem, ou seja, ele precisa ser o que o servidor de correio sabe que é ( myhostnamedeclaração no arquivo main.cf do Postfix)

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

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

(a parte que acho incorreta é a linha do domínio ... você deseja usar a parte do domínio dos seus endereços de e-mail, [email protected], portanto, se a parte do domínio é ozarksneighborlyexchange.compara você, é isso que ocorre 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

Isso pressupõe que você gerou a chave DKIM chamada 'dkim', portanto, você tem um arquivo dkim.key e dkim.pub no diretório / etc / postfix. Ajuste conforme necessário.

A próxima parte é dizer ao OpenDKIM onde ouvir. Eu uso um soquete do tipo Internet (inet) na mesma máquina que o Postfix, por isso 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"

Em seguida, 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], portanto, eu tenho acmeps.comcomo domínio no arquivo opendkim.conf e, em seguida, no DNS, 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ê notar generalapareceu. Esse é o DKIM selectore precisa corresponder no arquivo opendkim.conf e o que você coloca no DNS. Você não listou como o seu seletor está definido, mas essa é a outra coisa que vai te morder.

Isso deve levá-lo ao longo da corcunda!

mili
fonte