見出し画像

インシデントから学ぶメールが到達しないときに確認するところ

最初に

多分きっとおそらくMaybe新米情シスなっちです
年明けからメールのトラブルに奔走していました
日々コミュニティで情報をヒソヒソ見ていましたので、領域外のトラブルも対応&解決に至りました
この場をかりてお礼申し上げます。
また状況を見ての結論なため、間違っていれば教えていただけると嬉しいです。

本題

どのようなトラブルだったか?

ある一定を堺に自社ドメインからのメールが一部取引先に
到達しない

当時の把握していた環境

SPF→設定済み
DKIM→サーバー会社側で対応予定
DMARC→設定なし
メールのドメインはサブドメイン(例sub.example.co.jp)

使うと便利だったサイト

GoogleAdminToolBox
→ヘッダーを見やすくしてくれることやドメインのチェックができるスグレモノ
MSChecker
→送ったメールにSPF DKIM DMARCの設定がされてるか確認できるサイト

やったこと

①なぜメールが届かないかという原因を探る
 ・各種ツールを使用して自社が正常か確認
 ・メールのソースをチェック
②解決策の提示
 ・Google検索 GPTと対話
③疑問点の消化
 ・Google検索 GPTと対話

①〜②調査から復旧まで

【現状把握①】メールチェッカーで自社から送るメールをチェック

MSCheckerでメールの状態をチェック

設定してあるはずのSPFが不正でした。

【現状把握②】エラー箇所をメールソースから詳細確認

SPFがエラーであることがわかりました。
どのようなエラーか気になるので、まずメールソースを入手します。
ソース内の”ARC-Authentication-Results”をみるとだいたい分かるらしいです。

#実際のソース
ARC-Authentication-Results: i=1; mx.google.com;
spf=permerror (google.com: permanent error in processing during lookup of test@sub.example.co.jp: server.test.jp not found) smtp.mailfrom=test@sub.example.co.jp;
dmarc=fail (p=REJECT sp=REJECT dis=REJECT) header.from=example.co.jp

自分は
spf=permerror:SPFがエラーだよ
server.test.jp not found:理由はSPFに記述されている”server.test.jp”が見つからないよ
と解読しました。

【現状把握③】nslookupで自社ドメインの設定状況を確認

nslookupというサイトで自社ドメインを入力しSPFのレコードを確認

入力例SPFの記述が2つある

SPFの記述が二行あることと、先日クローズした旧サーバーであるserver.test.jpが記述されていた。というのがわかりました。
SPFの記述が二行だめな理由はこちら(間違いから学ぶSPFレコードの正しい書き方)を御覧ください。

あとから知ったAdminToolBox

GoogleAdminToolBoxというものがあり、大体これで原因がわかります。nslookup後判明したので自分の記述ミスという考えを補強するために使用しました。超便利でした。。。

【修正】SPFレコードを修正

現状把握で分かったエラー内容を上長にエスカレートし修正
修正後
①MSCheckerで再度治っているかチェック
②GoogleAdminToolBoxでエラー確認
③再度メール送信を行いソースチェック
をおこないました。
確認後、全社に告知を行い一旦復旧は完了です。

③疑問点をとことん潰す

一旦復旧したのであとは自分の中の疑問点好奇心を潰していくフェーズです。
時間はあるので腹落ちするまで探索します。
■疑問点
なぜ全くメールが届かなかったのか?
以上を調べていくことにしました。

疑問点の仮説:知らない間にDMARCが設定されており、すべて削除されていたのでは?

結論:設定されていました。
当初はsub.example.co.jpに対してDmarcが設定されていると思いこんでいましたがソースを見返すと、example.co.jpになってました。
ここでDMARCはサブドメインにも適用されることを知りました。成長です。
サブドメインに適用するにはSp=を設定しないといけないらしいですが、この辺がイマイチ理解しきれておりません
タスケテ有識者の方々…..

dmarc=fail (p=REJECT sp=REJECT dis=REJECT) header.from=example.co.jp

そんなこんなで報告をし無事対応完了となりました。

最後に

知識0かつ領域外の対応でしたがコミュニティのちからもあり、原因追及まで非常にスムーズに行けたと思います。
インシデント対応は非常にしんどいですが、やってみると新たな発見があり非常に面白いと感じています。

この記事が気に入ったらサポートをしてみませんか?