web-dev-qa-db-ja.com

opendkimに電子メールに署名させるにはどうすればよいですか?

私はubuntu14.04 VPSで実行していますが、opendkimで送信メールに署名するのに問題があります。

また、Dig -xの結果がわかりません。また、VPSプロバイダーがrDNSPTRレコードを正しく入力したかどうかもわかりません。返される結果は次のとおりです。

$  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

たとえば、CNAMEがエイリアスであることは知っています。ドメインとIPのPTRを期待していましたが、CNAMEレコードしか追加されていないようです。 PTRレコードは、プロバイダーのIP範囲全体に関係します。私が読んだことから、CNAMEレコードは、検証の目的ではあまり重要ではありません。 mail-tester.comのスコアは、CNAMEが追加された後、3/10から4.5/10に向上しました。

Opendkimの署名の問題については、次のガイドに従いました: https://easyengine.io/tutorials/mail/dkim-postfix-ubuntu/ そして拡張ロギングを有効にするには:

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

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

また、これでサブドメインが果たす役割についても少し混乱しています。 VPSホスト名をseed05に設定し、次の行を/ etc/hostsファイルに追加しました:84.200.17.129 seed05.ozarksneighborlyexchange.com seed05

サブドメインに関連するDNSに何かを追加する必要があるかどうかわかりません。現在、2つの「A」レコードと2つの「TXT」レコードが定義されています。A@ A www TXT @ v = spf1 a include:_spf.ozarksneig .....(SPFの場合、 OKのようです)TXT mail._domainkey v = DKIM1; p = MIGfMA0GCS ......(ツールはこれでOKと言っているようです)

Opendkimグループに接尾辞を追加しました。 inetへの参照がたくさんありますが、inetdは非推奨であり、その置換がどのように構成されているかに関する情報が見つかりません(たとえば、ポート8891がsmtp/postfixに対して定義されている場合)。

ご覧のとおり、電子メールをより確実に送信するために1日中費やしているにもかかわらず、私にはいくつかの混乱点があります。これに対する入力/回答をいただければ幸いです。どうも!

1
motech man

逆引きマッピングスペースのPTRレコードの場合、そこにあるものは問題ありません。次のとおりです RFC2317 これは、/ 24よりも小さいネットワークのDNSレコードの制御を委任するための現在のベストプラクティスです。 「範囲」表記は0〜255であり、これは/ 24ネットワークサイズを意味するため、それらが持っているものは少し不必要に思えます(ただし、別のサーバーへの委任があります--Dig ns 0-255.17.200.84.in-addr.arpa

したがって、メールサーバーがEHLO交換でozarksneighborlyexchange.comであると主張している限り、その部分は問題ありません。ただし、投稿の残りの部分によると、実際にはseed05.ozarksneighborlyexchange.comである必要があります。つまり、メールサーバーが認識しているものである必要があります(Postfixmain.cfファイルのmyhostnameステートメント)

OpenDKIMを機能させるには、署名キーを設定し、Postfixに送信メールの「ミルター」として使用するように指示するだけです。 inetの部分は混乱を招きます。つまり、古いintedデーモンではなく、トランスポートメカニズムを参照しています。

これが私のOpenDKIMconfファイルで、あなたのために変更されています:/etc/opendkim.conf

(私が間違っていると思う部分はドメイン行です...あなたはあなたの電子メールアドレスのドメイン部分[email protected]を使いたいので、ドメイン部分があなたにとってozarksneighborlyexchange.comであるなら、それは何ですDKIM構成に入り、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

これは、「dkim」というDKIMキーを生成したことを前提としているため、/ etc/postfixディレクトリにdkim.keyファイルとdkim.pubファイルがあります。必要に応じて調整してください。

次の部分は、OpenDKIMにリッスンする場所を指示することです。 Postfixと同じマシンでインターネットタイプのソケット(inet)を使用しているので、これは/ 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"

次に、Postfix設定で、それを見つける場所を指定し、「ミルター」として使用します。

/etc/postfix/main.cf:

smtpd_milters = inet:localhost:60001
milter_default_action = accept

そして最後の部分は、他の人があなたの署名を検証できるように、あなたの公開鍵をDNSに入れることです。私の場合、私のメールアドレスは[email protected]なので、opendkim.confファイルのドメインとしてacmeps.comがあり、DNSの場合は次のようになります。

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

これはDig txt general._domainkey.acmeps.comで確認できます。

ここで、generalが表示されていることがわかります。これはDKIMselectorであり、opendkim.confファイルとDNSに入力したものと一致する必要があります。セレクターが何に設定されているかをリストしていませんが、それはあなたを噛むもう1つのことです。

これでこぶを乗り越えることができます!

1
milli