DKIMとはDomainKeys Identified Mailの略で、メールヘッダーや本文に対して 秘密鍵から生成された署名を付与することによって改ざんから保護し、 受信側ではメールの正当性を検証することが出来るという仕組みです。
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へ登録する。
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 |
Socket | PostfixなどのMTAと併用する場合に接続を受けるためのポート番号とホストを設定する。 inet:8891@localhost |
SoftwareHeader | yes/no DKIM-Filter の項目を付けるかどうかの設定。セキュリティのためホストを隠す場合はnoを指定する。 |
Selector | セレクタを指定する。 |
KeyFile | 鍵のパスを指定する。 |
ExternalIgnoreList | どの外部ソースからのメールを署名プロセスから除外するかを指定します。このリストに含まれる送信者ドメインのメールには署名が追加されず、検証も実行されません。 |
InternalHosts | 独自ドメインからの送信を許可する内部ホストのリストを指定します。このリストに含まれるホストからのメールは署名されます。 |
/etc/opendkim/TrustedHosts を編集して送信を許可したいホスト、ドメインを指定する。
鍵の所有者をopendkimに設定する。
chown -R opendkim:opendkim /etc/opendkim/keys/*