問題解説:メールが届かない
どうも、作問者のnasuと言います。
問題文
あるドメイン ict2.local はここ最近なりすまし対策・スパム対策に力を入れている。
そのため、送信ドメイン認証DMARC,SPFとDKIMの両方をpassしないとメールを受信してくれない。
自前に検証用のドメイン( ict1.local )・DNSサーバ・メールサーバを用意し、
送信ドメイン認証を導入して ict2.local にメールが届くように構築をしているのだがエラーが起きてメールが届かないようだ。
諸君にはエラーを解決し、 ict2.local にメールを届くようにしてほしい。
スタート
ict2.local に対してメールが送れない。
ゴール
ict2.local に無事メールが届き自動返信メールの中身を報告出来たらゴール。
情報
参加者が操作出来るサーバとインストールされているパッケージは以下の通りである。
- 参加者側のドメイン情報:
ict1.local
- メールサーバ
- postfix
- mailx
- opendkim
- DNSサーバ
- ssh情報
- bind
- 解答先のドメイン情報:
ict2.local
トラブルの概要
この問題のトラブルは大きく3つあります。
- mxレコードが解決されない
- メールを送るとMXレコードが解決できないというログが/var/log/maillogから確認が出来ます。これはDNSサーバの53番ポートがfirewalldによって閉じられている為です。
- SPF認証に失敗する
- ict1.localのゾーンファイルのSPFレコードの書式が間違っている為失敗します。この問題はオンライン予選にも出ました。勉強してきた方はすぐに分かったのではないでしょうか。正しい書式に直してください。
- dkim認証に失敗する
- ict1.localのゾーンファイルに記載されている公開鍵が間違っているためdkim認証に失敗します。正しい鍵をゾーンファイルに記載してください。
解説
この問題を簡単に解くカギは/var/log/maillog
を読んでいくことです。
メールが届かない原因がmaillogには書かれています。
解答例
- mxレコードが解決されない
dnsサーバ
$firewall-cmd --add-service=dns --permanent
$firewall-cmd --reload
別解はiptablesで開ける方法。
- SPF認証に失敗する
/etc/named/ict1.zone
IN TXT "v=spf1 +ip4:192.168.10.11 ~all"
- dkim認証に失敗する
- 解答方法1 あらかじめmail.ict1.localサーバにおいてある正しいキーをゾーンファイルに記載して更新する
- 解答方法2 新たに公開鍵と秘密鍵を生成してゾーンファイルに記載して更新する
採点基準
- 自動返信の中身を報告 → 基準点
- 中身を報告且つトラブル原因への言及 → 満点
講評
15チーム中4チームから解答があり3チームには基準点、1チームには満点を与えました。
どのトラブルもそうですが、ログ
を確認することを頭に入れておきましょう。