自宅サーバーのPostfixからGMAIL宛てにメールを送信するとスパムメール判定されてしまうことがあるので、DKIMとSPFを導入してスパムメール判定されないようにする。
※事前にEPELリポジトリを導入しておく
●opendkimインストール
# yum -y install opendkim
●キーペアファイルの保存場所作成
# mkdir /etc/opendkim/keys/sample.com
●キーペア(公開鍵・秘密鍵)作成
# opendkim-genkey -D /etc/opendkim/keys/sample.com/ -d sample.com -s 191001
※-s はセレクタ名(日付等、自分が分かれば何でも可)
●キーペアファイルの所有者変更
# chown -R opendkim:opendkim /etc/opendkim/keys/sample.com/
●公開鍵の確認
・公開鍵(/etc/opendkim/keys/sample.com/191001.txt)をFTP等でDLして中身を確認
191001.txtの内容(例)
———————————————————————————————————-
191001._domainkey IN TXT ( “v=DKIM1; k=rsa; “
“p=******************************************************************************
*********************************************************************************
**************************************” ) ; —– DKIM key 191001 for sample.com
———————————————————————————————————-
●DNSサーバーへのDKIM登録
例:ValueDomainの場合
ホスト名: 191001._domainkey
ターゲット:v=DKIM1; k=rsa; p=**************************************
タイプ:TXT
●DNSサーバーへのSPF登録
例:Valuedomainの場合
ホスト名:@
ターゲット:v=spf1 a:sample.com ~all
タイプ:TXT
※SPFの設定はこのDNSサーバーへの登録だけです。
●KeyTableの設定
# vi /etc/opendkim/KeyTable
下記を追記
191001._domainkey.sample.com sample.com:191001:/etc/opendkim/keys/sample.com/191001.private
●SigningTableの設定
# vi /etc/opendkim/SigningTable
下記を追記
*@sample.com 191001._domainkey.sample.com
●opendkimの設定
# vi /etc/opendkim.conf
下記部分を変更
Mode v
↓sを追記
Mode sv
KeyFile /etc/opendkim/keys/default.private
↓コメントアウト
#KeyFile /etc/opendkim/keys/default.private
# KeyTable /etc/opendkim/KeyTable
↓コメント削除
KeyTable /etc/opendkim/KeyTable
# SigningTable refile:/etc/opendkim/SigningTable
↓コメント削除
SigningTable refile:/etc/opendkim/SigningTable
# ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
↓コメント削除
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
# InternalHosts refile:/etc/opendkim/TrustedHosts
↓コメント削除
InternalHosts refile:/etc/opendkim/TrustedHosts
●opendkim再起動
# systemctl restart opendkim
# systemctl enable opendkim
●postfixの設定
# vi /etc/postfix/main.cf
最下行に下記を追記
# DKIM
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
●設定反映
# systemctl restart postfix
●動作確認
GMAIL宛てにメールを送信し、受信メールのヘッダー部分にdkim=pass, spf=passの記述があれば正常に動作している。
———————————————————————————————————
Authentication-Results
mx.google.com; dkim=pass header.i=@sample.com header.s=191001 header.b=aAbBcCdD; spf=pass (google.com: domain of user@sample.com designates “サーバーIPアドレス” as permitted sender) smtp.mailfrom=user@sample.com
———————————————————————————————————