##1.はじめに
運営しているサイトからのメールが届かないという事象の調査と対応を記載する。
###環境構成(AWS)
- Route53(DNSサーバー)
- CloudFront→ELB→EC2(メールサーバー兼WEBサーバー)
##2.どう調査したか
###①ログの調査
まずメールの送信ログを調査。ブラックリストで弾かれているという内容が記載されていた。
###②ブラックリストの確認
以下のブラックリストを確認すると、SPAMHAUSのブラックリストにメールサーバーのIPが載っていた。
・SPAMHAUS
・proofpoint
###③解除申請
一時的な対応としてSPAMHAUSにブラックリスト解除申請を出し、数分後解除されたことを確認。
###④原因調査
ブラックリストに載った原因を調査開始したが、SPFレコードとPostfixの設定に問題はなさそうだった。
・Route53のSPFレコード:以下で設定されていたため、問題なし
v=spf1 +ip4:XXX.XXX.XXX.XXX/32 +ip4:YYY.YYY.YYY.YYY/32 +ip4:ZZZ.ZZZ.ZZZ.ZZZ/32 ~all
・メールサーバのPostfix設定(/etc/postfix/main.cf):$myhostnameと$mydomainが一致しているため問題なし
###⑤追加調査
さらに調査を進めると、以下の3つで整合性がとれていないとブラックリストに載る可能性がある模様。
1.メールサーバーのIPから検索したドメイン(nslookup の逆引き)
2.↑でヒットしたドメインから検索したメールサーバーのIP(nslookup の正引き)
3.メールの送信元アドレスに設定されているドメイン
※1のドメインは、3のドメインもしくはサブドメインである必要がある
###⑥IPでドメインを検索(逆引き)
メールサーバーのIPでドメインを検索(逆引き)すると、EC2自体のデフォルトドメインが返ってきた。
###⑦ドメインでIPを検索(正引き)
上述した⑥のドメインでIPを検索(正引き)すると、メールサーバーのIPが返ってきた。
###⑧メールの送信元アドレスを確認
メールの送信元アドレスに設定されているドメインと逆引きの結果が異なっており、不整合が発生していた。
##3.どう対応したか
送信元メールアドレスのドメインはサイトのドメインとなっており、正引きの結果はCloudFrontのIPが返ってくる。そのため新しくサブドメインを作りメールサーバーのIPを割り当てて、逆引きでこのサブドメインを返す。
これにより、正引き/逆引きで送信元メールアドレスのドメインのサブドメインに解決されるようになり、上述した⑤の条件を満たすようにする。
正引きはRoute53のみで対応できるが、逆引きはAWSに申請する必要がある。
###①正引きを設定
正引きをRoute53で設定。
###②逆引きの申請
逆引きのためAWSにメール制限解除申請フォームから申請。
###③設定完了
翌日AWSが設定完了のメールが来たため、nslookupで正引きと逆引きを確認。
数日経過観察したが、再度SPAMHAUSに乗ることはなかった。
##4.まとめ
・ブラックリストに載る理由は、Postfixの設定やTXTレコードだけではない。
・メールドメインの正引き/逆引きを設定しないといけない。
・メールサーバーを追加/入替するときには、上記の事を忘れてはいけない。