はじめに
まず前提として、私はロリポップでサーバーを借りている。そして、ドメインはお名前ドットコムで取得した。なのでネームサーバーはお名前ドットコムのものを使っている。そのためDNSレコードはお名前ドットコム側で設定している。
特別なこともないある日、突然下記のような件名のメールが来た。
Report domain: kwgj9.com Submitter: google.com Report-ID:(数字)
はて?と思って内容を確認するとzipファイル一つ
google.com!kwgj9.com!(数字)!(数字).zip
危険なファイルじゃないかこわごわと確認しながら開く。中にはxmlファイルこれはいったい何なのか?google先生は私に一体何を伝えんとしているのか確認することに。
最初に調べたこと
まず安全を確認するために調べるとどうもDMARC レポートというものらしい。よく知らないので調べた。
自分のドメインから送られたメールが、正常に受信されたかの自動レポートだ。内容は、SPF(Sender Policy Framework)やDKIM(DomainKeys Identified Mail)の認証に成功したかどうかとのこと。
SPFはなりすましを防ぐために事前登録された送信元のIPアドレスと照合する仕組み。
DKIMはメールが改竄されていないことを確認するために署名をつけたりする仕組み。
なるほどなと思い、xmlファイルを確認していくことに。
xmlファイルを読んでみる
まず、下記は実際のxmlファイルを一部マスクしたものだ。
<?xml version="1.0" encoding="UTF-8" ?>
<feedback>
<version>1.0</version>
<report_metadata>
<org_name>google.com</org_name>
<email>noreply-dmarc-support@google.com</email>
<extra_contact_info>https://support.google.com/a/answer/2466580</extra_contact_info>
<report_id>***************</report_id>
<date_range>
<begin>**********</begin>
<end>***********</end>
</date_range>
</report_metadata>
<policy_published>
<domain>kwgj9.com</domain>
<adkim>r</adkim>
<aspf>r</aspf>
<p>reject</p>
<sp>reject</sp>
<pct>100</pct>
<np>reject</np>
</policy_published>
<record>
<row>
<source_ip>xxx.xxx.xxx.xxx</source_ip>
<count>1</count>
<policy_evaluated>
<disposition>reject</disposition>
<dkim>fail</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>kwgj9.com</header_from>
</identifiers>
<auth_results>
<spf>
<domain>kwgj9.com</domain>
<result>fail</result>
</spf>
</auth_results>
</record>
</feedback>
report_metadata:レポートの発行元や期間。
policy_published:ドメイン(kwgj9.com)のDMARCの設定の状態。
record:実際のメールの送信状態。
今回のレポートで重要な情報がありそうなのはrecordなので、細かく確認した。
source_ip:メールを送信したIPアドレス。
count:観測された送信回数 1回。
policy_evaluated:
- disposition:最終的な処理結果
reject(受信拒否) - dkim / spf:それぞれの認証結果 両方
fail(失敗)
identifiers:メールヘッダーに記載されていた送信元。
auth_results:SPF・DKIM認証の結果。
- spf:認証の結果 kwgj9.comが認証を行ってfailしている。
つまりSPF認証に失敗してメールが送信できなかったってことか。…えっとつまり、誰かがなりすまそうとして失敗したってこと?
問い合わせてみた
誰かがなりすまそうとした可能性があるけれど、認証に失敗しているので問題はない。
まあ、大丈夫だろうと思って放置していると何回も届くようになる。
これはまずいのではなかろうか?
「もしや、人様にご迷惑をおかけしているのでは…」
不安になってくる。しかしどうすればよいのか?そこでIPのwhois情報を確認してみると、ロリポップのものらしいことが判明。
「つまり、ロリポップのサーバーを利用している誰かがなりすましメールを送っている?」
もう私にはよくわからないので、問い合わせてみることに。不安に思って待っていると回答が来た。以下実際の文面を一部抜粋し、マスクしたもの。
まず、「xxx.xxx.xxx.xxx」は現在お問合せいただいているアカウントが利用しているサーバー【*******】のIPアドレスです。
【******】のメール送信状況を確認したところ、お客様のWordPressから送信されているメールと見受けられます。
【 kwgj9.com 】のSPFレコードが以下のように設定されておりレコード情報に誤りがございました。
v=spf1 include:lolipop.jp -all
つきましては【 kwgj9.com 】を管理しているサービス側で
レコード情報を以下に修正していただきますようお願いいたします。
・種別:TXT
・内容:v=spf1 include:_spf.lolipop.jp ~all
なりすましの送信元だと思っていたIPアドレスは、借りてるサーバーのものだったのだ!
控えめに言って私が阿呆である。つまるところ、自分が設定を間違え。自分が使っているWordPressが自動で送っているメールがSPF認証ではじかれ。わけもわからず右往左往するばかりで、自分の設定ミスに気が付くこともできず。担当者様に時間を割いてもらったわけである。愚かとはこのことである。
解決方法
回答に書かれていた通りSPFレコードを変更した。
ちなみに、お名前ドットコムのDSNレコードの変更方法を書いておく。
ドメイン>ドメイン機能一覧>DNS設定
と進み。設定したいドメインに対応するドメインDNSと書かれたところをクリック。
DNSレコード設定
から設定できる。(設定しようとすると有料のサービスの選択が挟まるのでご注意を)
v=spf1 include:lolipop.jp -all
から
v=spf1 include:_spf.lolipop.jp ~all
へ変更した。
一応変更点を確認しておく。includeで指定されたドメイン(_spf.lolipop.jp )のSPFレコードを参照して認証に含めるという指示だ。そして、私はそのドメインを間違えた。
-allと~allは、SPFレコードにない送信元からのメールをすべて認証失敗にするが扱いが少し違う。
-all:Failにする。拒否または迷惑メールとして処理される
~all:SoftFailにする。迷惑メール扱いにするかは受信側が判断
[-all]では認証失敗すると、相手に届かないので安全だが迷惑メールにも入らない。
[~all]では認証失敗しても迷惑メールに入るので届きはするが安全性は下がる。
私はまさに今回設定を間違って失敗したわけだ。しばらくは[~all]で問題ないか様子を見て必要であれば[-all]に変更したい。
今回の学びまとめ
では今回のことから学んだことをまとめると
- 自分の借りているサーバーのIPアドレスを把握しておく
- SPFレコードを自分で設定したときは、参照先のドメインが間違っていないか確認する
- メール周辺の設定を変更したら自分で送信のテストをしておく
これによって問い合わせる前に、失敗に気が付く人がいれば幸いである。
わかってみれば単純なミスである。今回の情けない失敗を共有することで、同様の失敗を未然に防いでほしい。また、誰かの問題解決の糸口になり、ご迷惑をおかけした担当者様への償いとなれば幸いである。本当にありがとうございました。



コメント