postfix+opendkimでお名前.comにDKIMを設定する

postfix+opendkimでお名前.comにDKIMを設定する

送信側の方で電子メールに電子署名をして、受信側で照合するといったやり方で送信者のドメインの認証を行うDKIMの設定手順となります。ここでは、お名前.comでの手順を例に記述してます。

環境

  • サーバー さくらのクラウド
  • ドメイン お名前.com
  • OS CentOS Linux release 7.7.1908 (Core)
  • Postfix 2.10.1

opendkimインストール

まずはopendkimをインストールします。

 yum install opendkim

インストールするとユーザーが追加されていることが確認できます。

getent passwd

<出力結果>
opendkim:x:993:990:OpenDKIM Milter:/var/run/opendkim:/sbin/nologin

DKIM鍵作成

次に鍵を作成していきます。
ここではドメイン「example.com」を想定して作成していきます。

鍵を作成するためのディレクトリを作成します。

cd /etc/opendkim/keys/
mkdir example.com_keys

鍵を生成します。
セレクタ名は「default」としてます。

opendkim-genkey -D example.com_keys -d example.com -s default

生成された鍵を確認してみます。

ls example.com_keys

<出力結果>
default.private  default.txt

default.private : 秘密鍵
default.txt : 公開鍵
となります。

鍵ファイルの権限を、OpenDKIMサーバから参照できるよう権限の変更を行います。

chown -R opendkim:opendkim ./example.com_keys

DNS登録

鍵が生成できたので、DNSに登録していきます。
まずは生成された公開鍵を確認します。

cat ./example.com_keys/default.txt

<出力結果>
default._domainkey      IN      TXT     ( "v=DKIM1; k=rsa; "
          "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSP3q9bpq/qdmXagKWRHZM3at+yXWxJVvsCRLZaBn9xVRppnYOe6uele4vgXysBhZUP9BF913gppx6lICKiZ9KKrwI20jajepfIMlE5flQVG+jeygUP7k5+Kl7XuRkNOVoAQM1w8mIuM3YgY8DPocnH5WtJbKhi1WvB0++WOUWXXXXXXX" )  ; 
----- DKIM key default for example.com

確認した公開鍵を、お名前.comのDNSにTXTレコードを下記の内容で追加します。

ホスト名:default._domainkey
TYPE:txt
TTL:3600
VALUE:v=DKIM1;k=rsa;p=MIGfMA0GCSqGSIb3DQEB.........

DKIMの認証結果の ポリシー である、ADSPも登録しておきます。
通常は「 dkim=unknown 」なのでunknownで設定します。

  • all 対象ドメインから送信されるメールは、全てのメールに電子署名が付与される
  • unknown 対象ドメインから送信されるメールの一部、またはすべてに、 電子署名が付
  • discardable 対象ドメインから送信されるメールは、全てのメールに電子署名が付与される 。電子署名がない場合は、破棄することが推奨される
ホスト名:_adsp._domainkey
TYPE:txt
TTL:3600
VALUE:dkim=unknown

OpenDKIM署名設定

opendkimの設定を編集していきます。

vim /etc/opendkim.conf

<編集>
## 送信時に署名し受信時は検証
Mode    sv

以下はコメントアウトを外す
KeyFile        /etc/opendkim/keys/default.private
SigningTable    refile:/etc/opendkim/SigningTable
ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
InternalHosts   refile:/etc/opendkim/TrustedHosts

KeyTable編集

vi /etc/opendkim/KeyTable 

<編集>
default._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com_keys/default.private

SigningTable編集

vi /etc/opendkim/SigningTable

<編集>
*@example.com default._domainkey.example.com

TrustedHosts編集

vi /etc/opendkim/TrustedHosts

<編集>
127.0.0.1
::1

OpenDKIM起動

自動起動の設定と起動を行います。

systemctl enable --now opendkim

Postfix設定

最後にpostfixとopendkimを連携させるため、postfixの設定を行います。

vi /etc/postfix/main.cf

<編集>
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept

DKIM確認

こちらのサイトで確認することが可能です。

ドメイン名とセレクタ「default」を入力します。

成功していれば下記の画像が表示されます。