問題解説:メールが届かない

どうも、作問者の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チームには満点を与えました。
どのトラブルもそうですが、ログを確認することを頭に入れておきましょう。