DKIM(ARC)認証¶
SympaでDKIM/ARCを使用する場合の手順(※Postfix側ではなくSympaで使用する)
鍵の準備¶
*鍵を作るようにopenDKIMを導入
dnf install opendkim dnf install opendkim-tools
- 鍵ファイルの配置
mkdir /etc/opendkim/keys/ドメイン名 cd /etc/opendkim/keys/ドメイン名 opendkim-genkey -d ドメイン名 chown -R opendkim.opendkim /etc/opendkim/keys chmod 600 default.private chmod 644 default.txt
- DNSの設定
cat default.txt
- セレクタ名の設定
ここでは例として「default」とする。
セレクタ名は任意だが、定期的にローテーションさせてセキュリティを高めるので実際には連番付与するといいかも。 - 公開鍵のDNSレコードの作成
鍵の長さが256文字を超える場合、複数レコードにわける必要がある場合がある。default._domainkey.[ドメイン名]. IN TXT "v=DKIM1; k=rsa; p=公開鍵"
- 署名に対する対応のレコードを作成する。
_adsp._domainkey.[ドメイン名]. IN TXT "dkim=レコード値" ・レコード値の内容 dkim=unknown DKIM署名していないメールも送信する。 dkim=all 送信するメールはすべてDKIM署名をおこなっている。 dkim=discardable DKIM署名がされていなかったり不正な署名のメールはすべて削除してよい
ARCを使用する場合¶
ARCを使用する場合、OpenDMARCをMTAで判定できるようにしておく必要があります。
つまり、DMARC判定に必要なDKIMとspfも必要ということになります。
「Sympaの機能でDKIMを付与する」のみであれば、この項目は必要ありません。
DKIM/ARCの設定¶
- OpenDKIMの鍵をコピーし、Sympaで読めるようにします。
これは分散管理するか双方が読めるようにパーミッションを変えるか悩ましいが、今回は権限は維持し全社とします。cp -R /etc/opendkim/keys /etc/sympa chown -R sympa.sympa /etc/sympa/keys
- Sympaで扱うためにDKIMモジュールを導入
yum install perl-Mail-DKIM
- そのうえで、次項のsympa.confやrobot.confにグローバル設定を追記し、サービスを再起動します。
systemctl restart sympa wwsympa
- が、下記の条件ではその設定を行って以降作成したリストにしか効果がないので注意!!!!
- グローバル設定の変更が反映されない場合の注意
confを「cache_list_config」でconfig.binにバイナリ化している とキャッシュが悪さして変更が反映されない。
グローバル設定のままのDKIM/ARC設定はリストのconfにもDBにも記載がなく、config.binにグローバル設定と
思われる内容が記録されています。 - 対策
つまり、DKIM/ARC(に限らず、リスト別に影響のある設定は)のグローバル設定を変更したあとに
下記コマンドでバイナリの更新を実行する必要がある。これでWeb画面上でも変更が適用されます。
(リスト数が多いと数分かかることもあります)# sympa.pl --reload_list_config --robot=ドメイン名
これを行わずに設定が適用されていないと思いリスト別に変更すると、リスト個別の設定ファイルに
独自の内容が保存されてしまい、以後設定ファイルの項目をvi等で消すまでグローバル設定が適用
されなくなるため注意すること。
- グローバル設定の変更が反映されない場合の注意
DKIMの場合¶
- sympa.confに以下の値を設定
dkim_feature on dkim_parameters.private_key_path PEMキーのパス dkim_parameters.selector DKIMレコードのsタグ、セレクタ名(ここではdefault) dkim_parameters.signer_domain DKIMレコードのdタグ(リストのドメイン名) dkim_signature_apply_on any(DKIMで署名するもの。any=すべて、none=なにもしないなど)
- 意図的に行わない場合でも後々可能性がある場合、有効化と鍵設定は行って「none」にしてみるのも良いかと思う
- 設定後、sympaとwwsympaを再起動します。
ARCの場合¶
- 注意
ARCを使用するようにする場合、「必ずDKIMが付与され、1個目のARCシールがつく」ため、前述の「dkim_signature_apply_on」
でDKIMの付与を細かく制御している場合はシナリオを自分で描く必要があるかも。これはリファレンスやヘルプにも匂わせてある。
(現状では解決策がよく分からない)
- sympa.confに以下の値を設定
通常はDKIMで設定した鍵やセレクタなどが利用されるため、この有効無効だけ設定すれば動作します。arc_feature on
- DKIMと違う鍵やセレクタなどを使う場合のみ、下記を設定する(通常は設定しなくて良い)
arc_parameters.private_key_path PEMキーのパス(基本DKIMとおなじもの) arc_parameters.selector DKIMレコードのsタグ、セレクタ名(ここではdefault)(基本DKIMとおなじもの) arc_parameters.signer_domain DKIMレコードのdタグ(リストのドメイン名)(基本DKIMとおなじもの)
- DKIMと違う鍵やセレクタなどを使う場合のみ、下記を設定する(通常は設定しなくて良い)
- 設定後、sympaとwwsympaを再起動します。
動作確認¶
上記を設定したsympaのMLにメールを送り、配送されたヘッダに「ARC-Seal:」「ARC-Message-Signature:」
「DKIM-Signature:」といった各種署名が付与されていることを確認します。
注意事項¶
デフォルトではDKIM/ARC設定はリストごとに調整ができるようになっていますが、これを変更するとリスト別の
設定ファイルに個別設定が書かれてしまい、グローバル設定の変更に追従しなくなるため注意!
保存項目は変更した項目のみ(子項目の場合はその親項目ごと)なので、過剰なDMARC対策等でリスト別に緩和
する場合などにはその点を留意すること。