Mail サーバー : DKIM の設定2024/07/18 |
Postfix に DKIM (Domain Keys Identified Mail) を設定します。 生成した公開鍵を DNS に登録するため、DNS サーバー が必要となります。 |
|
[1] | OpenDKIM をインストールして設定します。 |
root@mail:~ #
pkg install -y opendkim # DKIM を設定するドメイン用のディレクトリ作成 root@mail:~ # mkdir -p /usr/local/etc/mail/keys/srv.world
# 鍵ペアを生成 # -D (鍵を格納するディレクトリ) # -d (ドメイン名) # -s (セレクター名) ⇒ 任意の名称で OK root@mail:~ # opendkim-genkey -D /usr/local/etc/mail/keys/srv.world -d srv.world -s $(date "+%Y%m") root@mail:~ # chown -R mailnull:mailnull /usr/local/etc/mail/keys/srv.world root@mail:~ # ls -l /usr/local/etc/mail/keys/srv.world total 9 -rw------- 1 mailnull mailnull 920 Jul 18 14:22 202407.private -rw------- 1 mailnull mailnull 311 Jul 18 14:22 202407.txt
root@mail:~ #
mv /usr/local/etc/mail/opendkim.conf /usr/local/etc/mail/opendkim.conf.org root@mail:~ # vi /usr/local/etc/mail/opendkim.conf # 新規作成 # Mode : s = sign # Mode : v = verify Mode sv Socket inet:8891@localhost Syslog Yes # 公開鍵を登録するネームサーバー # 複数指定する場合はカンマ (,) 区切り Nameservers 10.0.0.30 KeyTable /usr/local/etc/mail/keys/KeyTable SigningTable refile:/usr/local/etc/mail/keys/SigningTable ExternalIgnoreList refile:/usr/local/etc/mail/keys/TrustedHosts InternalHosts refile:/usr/local/etc/mail/keys/TrustedHosts
root@mail:~ #
vi /usr/local/etc/mail/keys/KeyTable # 新規作成 # # (セレクター名)._domainkey.(ドメイン名) (ドメイン名):(セレクター名):(プライベートキーのパス) # # 複数のドメインを扱う場合は 改行して同様に登録する 202407._domainkey.srv.world srv.world:202407:/usr/local/etc/mail/keys/srv.world/202407.private
root@mail:~ #
vi /usr/local/etc/mail/keys/SigningTable # 新規作成 # # *@(ドメイン名) (セレクター名)._domainkey.(ドメイン名) # # 複数のドメインを扱う場合は 改行して同様に登録する *@srv.world 202407._domainkey.srv.world
root@mail:~ #
vi /usr/local/etc/mail/keys/TrustedHosts # 新規作成 # 信頼するホストを登録 127.0.0.1 ::1root@mail:~ # chown mailnull:mailnull /usr/local/etc/mail/keys/KeyTable \ /usr/local/etc/mail/keys/SigningTable \ /usr/local/etc/mail/keys/TrustedHosts root@mail:~ # chmod 600 /usr/local/etc/mail/keys/KeyTable \ /usr/local/etc/mail/keys/SigningTable \ /usr/local/etc/mail/keys/TrustedHosts root@mail:~ # service milter-opendkim enable milteropendkim enabled in /etc/rc.conf root@mail:~ # service milter-opendkim start Starting milteropendkim. |
[2] | Postfix の設定です。 |
root@mail:~ #
vi /usr/local/etc/postfix/main.cf # 最終行に追記 smtpd_milters = inet:127.0.0.1:8891 non_smtpd_milters = $smtpd_milters milter_default_action = acceptroot@mail:~ # pw groupmod mailnull -m postfix root@mail:~ # service postfix reload |
[3] | DNS サーバー登録用の公開鍵を確認します。 |
# 公開鍵の内容 root@mail:~ # cat /usr/local/etc/mail/keys/srv.world/202407.txt 202407._domainkey IN TXT ( "v=DKIM1; k=rsa; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFeK91Tel9nVcbMfltqWJNIm907AcXBVm/kf+zFE5LDES5wjJTdOB2CEaIuyvLq3xUzVb6FXnEjJBOOy9uAvBABe6dI96DEilFZB8U7LubRmIz4LZ+bTEffp4+ma+txtdjLYA1kdRO6KYFtxDK96aK/P1rJEm6IVnHL+JaBMs5OQIDAQAB" ) ; ----- DKIM key 202407 for srv.world # ゾーンファイルへの登録は不要な文字を除いて 1 行にする root@mail:~ # sed "s/^\t *//g" /usr/local/etc/mail/keys/srv.world/202407.txt | perl -pe 's/\n//g' | sed "s/( //g" | cut -d')' -f1 202407._domainkey IN TXT "v=DKIM1; k=rsa; ""p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFeK91Tel9nVcbMfltqWJNIm907AcXBVm/kf+zFE5LDES5wjJTdOB2CEaIuyvLq3xUzVb6FXnEjJBOOy9uAvBABe6dI96DEilFZB8U7LubRmIz4LZ+bTEffp4+ma+txtdjLYA1kdRO6KYFtxDK96aK/P1rJEm6IVnHL+JaBMs5OQIDAQAB" |
[4] | DNS サーバーへ公開鍵を登録します。 BIND のゾーンファイル へ登録する場合を例にします。 |
root@dns:~ #
vi /usr/local/etc/namedb/primary/srv.world.wan ..... ..... # 最終行に追記 202407._domainkey IN TXT "v=DKIM1; k=rsa; ""p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFeK91Tel9nVcbMfltqWJNIm907AcXBVm/kf+zFE5LDES5wjJTdOB2CEaIuyvLq3xUzVb6FXnEjJBOOy9uAvBABe6dI96DEilFZB8U7LubRmIz4LZ+bTEffp4+ma+txtdjLYA1kdRO6KYFtxDK96aK/P1rJEm6IVnHL+JaBMs5OQIDAQAB"root@dns:~ # rndc reload
|
[5] | メールサーバー側で確認します。 |
root@mail:~ # dig 202407._domainkey.srv.world. txt
.....
.....
# 登録した内容の応答があれば OK
;; ANSWER SECTION:
202407._domainkey.srv.world. 86400 IN TXT "v=DKIM1; k=rsa; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFeK91Tel9nVcbMfltqWJNIm907AcXBVm/kf+zFE5LDES5wjJTdOB2CEaIuyvLq3xUzVb6FXnEjJBOOy9uAvBABe6dI96DEilFZB8U7LubRmIz4LZ+bTEffp4+ma+txtdjLYA1kdRO6KYFtxDK96aK/P1rJEm6IVnHL+JaBMs5OQIDAQAB"
.....
.....
root@mail:~ # opendkim-testkey -d srv.world -s 202407 -x /usr/local/etc/mail/opendkim.conf -vvv
opendkim-testkey: checking key '202407._domainkey.srv.world'
opendkim-testkey: key not secure
opendkim-testkey: key OK
# [key OK] であれば OK
# * [key not secure] は DNSSEC に関するメッセージ
|
[6] |
最後に Gmail にでもメール送信して、受信メールのヘッダーに [DKIM: 'PASS'(Domain: srv.world)] と表示されていれば OK です。 |
Sponsored Link |