● CentOS で postfix に DKIM をインストールする

● CentOS で postfix に DKIM をインストールする

● 1. opendekimがインストール済みか確認し、なければインストールする

 yum list installed | grep dkim

インストールされていない場合は

yum install -y epel-release
yum install -y opendkim

● 2. 鍵の作成

opendkim-genkey -D /etc/opendkim/keys  -d example.com  -s 20190318

オプションの説明は次の通り

opendkim-genkey -D /etc/opendkim/keys  -d <サイト名>  -s <セレクタ名(ファイル名。指定しないときはdefault)>

作成後に鍵ができているか確認します

ls -la /etc/opendkim/keys
-rw------- 1 root     root     1679  1月 1 12:59 default.private
-rw------- 1 root     root      498  1月 1 12:59 default.txt

できています。 default.privateが秘密鍵 、default.txt が公開鍵です。

・所有者の変更

chown -R opendkim:opendkim /etc/opendkim/keys/*

↑ これを行わないとメール送信時に
「can't load key from /etc/opendkim/keys/default.private: Permission denied」
エラーとなります。

● 3. 公開鍵の中身を調べてDNSサーバに登録

DNSサーバに登録するのは次の2レコードです。

・DKIM公開鍵
・ADSPレコード

・1. DKIM公開鍵をDNSサーバに登録

公開鍵の中身を表示

cat /etc/opendkim/keys/default.txt

DKIM公開鍵の登録

Title Type
サブドメイン default._domainkey
対象 TXT
p=MIIBIjANBgkqh....................................

でお使いのDNSサーバに登録します。

・2. ADSPレコードをDNSサーバに登録

ADSPレコードには all , unknown , discardable のどれかを指定します。

設定値の説明は次の通り

unknown DKIM署名していないメールも送信している
all 送信するメールはすべてDKIM署名している
discardable DKIM署名されていないメール・不正な内容のDKIM署名がされているメールが届いたら、すべて破棄してよい

引用 : https://bit.ly/2VV4Yjd

ADSPレコードの登録

Title Type
サブドメイン _adsp._domainkey.
対象 TXT
dkim=unknown

でお使いのDNSサーバに登録します。

● 登録した鍵の確認

dig default._domainkey.<YOUR-SERVER.NAME> TXT

● 3. opendkim の設定を行う

・3-1 opendkim.conf の編集

設定ファイルのバックアップ

cp /etc/opendkim.conf /etc/opendkim.conf.original

opendkim.conf を編集します

vi /etc/opendkim.conf

Mode    v

   ↓

Mode    sv

KeyFile    /etc/opendkim/keys/default.private

   ↓

#KeyFile    /etc/opendkim/keys/default.private

 # KeyTable  /etc/opendkim/KeyTable

   ↓

KeyTable        refile:/etc/opendkim/KeyTable

# SigningTable  refile:/etc/opendkim/SigningTable

   ↓

SigningTable   refile:/etc/opendkim/SigningTable

# ExternalIgnoreList    refile:/etc/opendkim/TrustedHosts

   ↓

ExternalIgnoreList    refile:/etc/opendkim/TrustedHosts

# InternalHosts refile:/etc/opendkim/TrustedHosts

   ↓

InternalHosts refile:/etc/opendkim/TrustedHosts

・3-2 KeyTable の編集

vi /etc/opendkim/KeyTable

次のようなフォーマットでファイルの最後に追記します

<DKIMレコード(サーバ)名>  <ドメイン名>:<セレクタ名>:<秘密鍵ファイル>

YOURSERVER.COM はお使いのドメイン名に読み替えてください

セレクタが default の場合

default._domainkey.YOURSERVER.COM YOURSERVER.COM:default:/etc/opendkim/keys/default.private

・3-3 SigningTable の編集

vi /etc/opendkim/SigningTable

ファイルの最後の追記します

YOURSERVER.COM はお使いのドメイン名に読み替えてください

*@YOURSERVER.COM  default._domainkey.YOURSERVER.COM

● opendkimの起動

サーバをリスタートした時の自動起動の設定

chkconfig opendkim on

opendkimの起動

systemctl enable opendkim
service opendkim start

起動の確認

netstat -lntp | grep opendkim
systemctl status opendkim

● postfixの設定にdkimを追加

vi /etc/postfix/main.cf

最終行に以下を追記

# dkim
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept

postfixの再起動

service postfix check
service postfix reload
postconf | grep smtpd_milters
No.1491
04/19 14:57

edit