Postfix + OpenDKIMで送信元ドメイン認証を実装するメモ
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[CentOS7]]
*Postfix + OpenDKIMで送信元ドメイン認証を実装するメモ [#y...
**DKIMとは [#e6ec3d77]
-DKIM(Domain Keys Identified Mail)
-送信元ドメインを認証するための技術
**OpenDKIMの導入 [#a8592295]
標準のレポジトリにはないので、EPELから取ってくる
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# yum install -y epel-release|
|[root@localhost ~]# yum install -y opendkim|
**鍵ペア作成 [#y7a9e410]
opendkim-genkeyを利用
|BGCOLOR(black):COLOR(white):|c
|opendkim-genkey -D [出力先ディレクトリ] -b [鍵の長さ] -d...
|&color(lime){(例)};|
|[root@localhost ~]# opendkim-genkey -D /etc/opendkim/key...
|[root@localhost ~]# ls -l /etc/opendkim/keys/|
|20170309.private &br; 20170309.txt|
|[root@localhost ~]# chown -R opendkim:opendkim /etc/open...
→ ''セレクタ名.private''と''セレクタ名.txt''が出来ている
→ ''xxx.private''が秘密鍵、''xxx.txt''が''DNS''の''DKIM''...
→ &color(red){秘密鍵は漏洩しないように留意};
**KeyTable、SigningTableの更新 [#jdcbfc55]
''KeyTable''を更新する
※ ''DKIM''レコードと秘密鍵の関連付け
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi /etc/opendkim/KeyTable|
以下の書式に従う
|BGCOLOR(black):COLOR(white):|c
|DKIMレコード名 ドメイン名:セレクタ名:秘密鍵ファイル|
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi /etc/opendkim/KeyTable|
|20170309._domainkey.example.com example.com:20170309:/et...
**SigningTableを更新する [#a11c0664]
※ どの''DKIM''レコードに対応する秘密鍵で署名するか決定す...
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi /etc/opendkim/SigningTable|
以下の書式に従う
|BGCOLOR(black):COLOR(white):|c
|対象のメールアカウント DKIMレコード名|
なお、ドメインの全てのアカウントを一括指定も可能
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi /etc/opendkim/SigningTable|
|&color(lime){# アカウントを指定する書き方};|
|hoge@examle.com 20170309._domainkey.example.com|
|&color(lime){# ワイルドカードを利用する書き方};|
|*@example.com 20170309._domainkey.example.com|
|&color(lime){# ワイルドカードを利用しない書き方};|
|@example.com 20170309._domainkey.example.com|
**opendkim.confの設定 [#k67e46df]
設定ファイルをバックアップして編集
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# cp -p /etc/opendkim.conf /tmp/opendk...
|[root@localhost ~]# vi /etc/opendkim.conf|
''編集結果''
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi /etc/opendkim.conf|
|Mode sv &br; &color(lime){#};Selector default &br;...
**OpenDKIM起動 [#r8acbee7]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# systemctl start opendkim|
|[root@localhost ~]# systemctl enable opendkim|
|[root@localhost ~]# netstat -lntp | grep opendkim|
|tcp 0 0 127.0.0.1:8891 0.0.0.0:* ...
**Postfixの設定を変更 [#a4033168]
''OpenDKIMはmilterとして動作するので、Postfixにmilterの設...
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi /etc/postfix/main.cf|
''末尾に以下を追記''
|BGCOLOR(black):COLOR(white):|c
|/etc/postfix/main.cf|
|...|
|&color(lime){# smtpdプロセスが利用するmilterの定義};|
|smtpd_milters = inet:localhost:8891|
|&color(lime){# smtpdプロセス以外が利用するmilterの定義};|
|non_smtpd_milters = inet:localhost:8891|
|&color(lime){# milterがメールを受け取ったときの既定の動...
|milter_default_action = accept|
**Postfixの設定確認&再起動 [#t4bfa16b]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# systemctl restart postfix|
|[root@localhost ~]# postconf | egrep "(smtpd_milter...
|milter_default_action = accept &br; non_smtpd_milters = ...
**DNSサーバへのTXTレコード登録 [#u95bf8b8]
''出力されたTXTレコードをコピー''
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# cat /etc/opendkim/keys/20170309.txt|
''こんな感じのが出力される(鍵ペア作成時の鍵長が長いと結構...
|BGCOLOR(black):COLOR(white):|c
|20170309._domainkey IN TXT ( "v=DKIM1; k=rs...
**zoneファイルに追記 [#vef53ec4]
''zoneファイルにTXTレコードを追加する''
''DKIMレコードとADSPレコードを追加する''
''BINDの場合の例''
|BGCOLOR(black):COLOR(white):|c
|/var/named/example.com.zone|
|20170309._domainkey IN TXT ( "v=DKIM1; k=rs...
| "p=xxxxpubkeyxxxxxx..." "...xxxxxpubkeyxx...
|_adsp._domainkey IN TXT "dkim=unknown" ;...
**名前解決できることを確認 [#yc0b32c1]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# dig 20170309._domainkey.example.com ...
|...|
|;; ANSWER SECTION:|
|20170309._domainkey.example.com. 3600 IN TXT "v=DKIM1\;...
|[root@localhost ~]# dig _adsp._domainkey.example.com txt|
|...|
|;; ANSWER SECTION:|
|_adsp._domainkey.example.com. 3600 IN TXT "dkim=un...
|&color(lime){→ ANSWER SECTIONに想定通りの値が返ってくる...
**メールを送信してみる [#h402cec5]
自分のGmailアカウント宛にメールを投げてみる
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# echo "テストメールですよ" | mai...
''maillogを確認してDKIM-Signatureフィールドが追加されてい...
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# tail /var/log/maillog|
|Mar 9 14:34:44 ns-test opendkim[23066]: 78A3B101059: DK...
**受信結果の確認 [#va7adf27]
***Gmailで受信したメールを確認してみる [#f4f3059e]
Authentication-Resultsヘッダが"dkim=pass"となっていること...
|BGCOLOR(black):COLOR(white):|c
|Authentication-Results: mx.google.com;|
| dkim=pass header.i=@example.com;|
| ...|
***DKIM CHECKへ空メールを送信 [#ceb9bd43]
dkim-verify@dkim.jp へ空メールを送信する。
直ぐにチェック結果の内容が返信されてくるので以下を確認す...
''[DKIM VERIFY RESULT]''~
pass &color(red){←passになっていること};
''[DKIM VERIFY DETAILED RESULT]''~
pass &color(red){←passになっていること};
終了行:
[[CentOS7]]
*Postfix + OpenDKIMで送信元ドメイン認証を実装するメモ [#y...
**DKIMとは [#e6ec3d77]
-DKIM(Domain Keys Identified Mail)
-送信元ドメインを認証するための技術
**OpenDKIMの導入 [#a8592295]
標準のレポジトリにはないので、EPELから取ってくる
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# yum install -y epel-release|
|[root@localhost ~]# yum install -y opendkim|
**鍵ペア作成 [#y7a9e410]
opendkim-genkeyを利用
|BGCOLOR(black):COLOR(white):|c
|opendkim-genkey -D [出力先ディレクトリ] -b [鍵の長さ] -d...
|&color(lime){(例)};|
|[root@localhost ~]# opendkim-genkey -D /etc/opendkim/key...
|[root@localhost ~]# ls -l /etc/opendkim/keys/|
|20170309.private &br; 20170309.txt|
|[root@localhost ~]# chown -R opendkim:opendkim /etc/open...
→ ''セレクタ名.private''と''セレクタ名.txt''が出来ている
→ ''xxx.private''が秘密鍵、''xxx.txt''が''DNS''の''DKIM''...
→ &color(red){秘密鍵は漏洩しないように留意};
**KeyTable、SigningTableの更新 [#jdcbfc55]
''KeyTable''を更新する
※ ''DKIM''レコードと秘密鍵の関連付け
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi /etc/opendkim/KeyTable|
以下の書式に従う
|BGCOLOR(black):COLOR(white):|c
|DKIMレコード名 ドメイン名:セレクタ名:秘密鍵ファイル|
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi /etc/opendkim/KeyTable|
|20170309._domainkey.example.com example.com:20170309:/et...
**SigningTableを更新する [#a11c0664]
※ どの''DKIM''レコードに対応する秘密鍵で署名するか決定す...
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi /etc/opendkim/SigningTable|
以下の書式に従う
|BGCOLOR(black):COLOR(white):|c
|対象のメールアカウント DKIMレコード名|
なお、ドメインの全てのアカウントを一括指定も可能
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi /etc/opendkim/SigningTable|
|&color(lime){# アカウントを指定する書き方};|
|hoge@examle.com 20170309._domainkey.example.com|
|&color(lime){# ワイルドカードを利用する書き方};|
|*@example.com 20170309._domainkey.example.com|
|&color(lime){# ワイルドカードを利用しない書き方};|
|@example.com 20170309._domainkey.example.com|
**opendkim.confの設定 [#k67e46df]
設定ファイルをバックアップして編集
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# cp -p /etc/opendkim.conf /tmp/opendk...
|[root@localhost ~]# vi /etc/opendkim.conf|
''編集結果''
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi /etc/opendkim.conf|
|Mode sv &br; &color(lime){#};Selector default &br;...
**OpenDKIM起動 [#r8acbee7]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# systemctl start opendkim|
|[root@localhost ~]# systemctl enable opendkim|
|[root@localhost ~]# netstat -lntp | grep opendkim|
|tcp 0 0 127.0.0.1:8891 0.0.0.0:* ...
**Postfixの設定を変更 [#a4033168]
''OpenDKIMはmilterとして動作するので、Postfixにmilterの設...
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# vi /etc/postfix/main.cf|
''末尾に以下を追記''
|BGCOLOR(black):COLOR(white):|c
|/etc/postfix/main.cf|
|...|
|&color(lime){# smtpdプロセスが利用するmilterの定義};|
|smtpd_milters = inet:localhost:8891|
|&color(lime){# smtpdプロセス以外が利用するmilterの定義};|
|non_smtpd_milters = inet:localhost:8891|
|&color(lime){# milterがメールを受け取ったときの既定の動...
|milter_default_action = accept|
**Postfixの設定確認&再起動 [#t4bfa16b]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# systemctl restart postfix|
|[root@localhost ~]# postconf | egrep "(smtpd_milter...
|milter_default_action = accept &br; non_smtpd_milters = ...
**DNSサーバへのTXTレコード登録 [#u95bf8b8]
''出力されたTXTレコードをコピー''
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# cat /etc/opendkim/keys/20170309.txt|
''こんな感じのが出力される(鍵ペア作成時の鍵長が長いと結構...
|BGCOLOR(black):COLOR(white):|c
|20170309._domainkey IN TXT ( "v=DKIM1; k=rs...
**zoneファイルに追記 [#vef53ec4]
''zoneファイルにTXTレコードを追加する''
''DKIMレコードとADSPレコードを追加する''
''BINDの場合の例''
|BGCOLOR(black):COLOR(white):|c
|/var/named/example.com.zone|
|20170309._domainkey IN TXT ( "v=DKIM1; k=rs...
| "p=xxxxpubkeyxxxxxx..." "...xxxxxpubkeyxx...
|_adsp._domainkey IN TXT "dkim=unknown" ;...
**名前解決できることを確認 [#yc0b32c1]
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# dig 20170309._domainkey.example.com ...
|...|
|;; ANSWER SECTION:|
|20170309._domainkey.example.com. 3600 IN TXT "v=DKIM1\;...
|[root@localhost ~]# dig _adsp._domainkey.example.com txt|
|...|
|;; ANSWER SECTION:|
|_adsp._domainkey.example.com. 3600 IN TXT "dkim=un...
|&color(lime){→ ANSWER SECTIONに想定通りの値が返ってくる...
**メールを送信してみる [#h402cec5]
自分のGmailアカウント宛にメールを投げてみる
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# echo "テストメールですよ" | mai...
''maillogを確認してDKIM-Signatureフィールドが追加されてい...
|BGCOLOR(black):COLOR(white):|c
|[root@localhost ~]# tail /var/log/maillog|
|Mar 9 14:34:44 ns-test opendkim[23066]: 78A3B101059: DK...
**受信結果の確認 [#va7adf27]
***Gmailで受信したメールを確認してみる [#f4f3059e]
Authentication-Resultsヘッダが"dkim=pass"となっていること...
|BGCOLOR(black):COLOR(white):|c
|Authentication-Results: mx.google.com;|
| dkim=pass header.i=@example.com;|
| ...|
***DKIM CHECKへ空メールを送信 [#ceb9bd43]
dkim-verify@dkim.jp へ空メールを送信する。
直ぐにチェック結果の内容が返信されてくるので以下を確認す...
''[DKIM VERIFY RESULT]''~
pass &color(red){←passになっていること};
''[DKIM VERIFY DETAILED RESULT]''~
pass &color(red){←passになっていること};
ページ名: