DKIM設定

一つ上へ

DKIMとは

DKIMとはDomainKeys Identified Mailの略で、メールヘッダーや本文に対して 秘密鍵から生成された署名を付与することによって改ざんから保護し、 受信側ではメールの正当性を検証することが出来るという仕組みです。

OpenDKIMの導入

EPELリポジトリの追加

dnf install epel-release
dnf config-manager –set-enabled crb

Oracle Linux 8の環境で、パッケージが見つからないという現象が発生したため、 以下のようなリポジトリを探して追加する必要がある場合がある。

dnf config-manager --add-repo http://yum.oracle.com/repo/OracleLinux/OL8/developer/EPEL/x86_64

インストール

dnf install opendkim opendkim-tools

キーペアの作成

opendkim-genkey -b 2048 -d example.com -D /etc/opendkim/keys/ -s nk10102020 -v

作成したら、生成されたtxtファイルの内容をDNSへ登録する。

DKIM設定

postfix の設定ファイル main.cf を編集し、以下の内容を追加する。

#DKIM setting
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = $smtpd_milters

次に、/etc/opendkim.conf を編集して以下を設定する。

Mode sv
Socket  inet:8891@localhost
SoftwareHeader  no
Domain  example.com
Selector    nk10102020
KeyFile /etc/opendkim/keys/nk10102020.private
ExternalIgnoreList  refile:/etc/opendkim/TrustedHosts
InternalHosts   refile:/etc/opendkim/TrustedHosts

各設定項目とその意味、設定値は以下の通り。

項目説明
Modeモード選択。
v:verify
s:sign
sv:sign and verify
SocketPostfixなどのMTAと併用する場合に接続を受けるためのポート番号とホストを設定する。
inet:8891@localhost
SoftwareHeaderyes/no
DKIM-Filter の項目を付けるかどうかの設定。セキュリティのためホストを隠す場合はnoを指定する。
Selectorセレクタを指定する。
KeyFile鍵のパスを指定する。
ExternalIgnoreListどの外部ソースからのメールを署名プロセスから除外するかを指定します。このリストに含まれる送信者ドメインのメールには署名が追加されず、検証も実行されません。
InternalHosts独自ドメインからの送信を許可する内部ホストのリストを指定します。このリストに含まれるホストからのメールは署名されます。

/etc/opendkim/TrustedHosts を編集して送信を許可したいホスト、ドメインを指定する。

鍵の所有者をopendkimに設定する。

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