メール受信不良発生 – cloudflare

Spread the love

cloudflare導入後、一部のメールで受信不良が発生しました。発覚までに時間がかかってしまいました。しかし、対処は比較的簡単でした。以下に対処内容を備忘録として残します。

何故か楽天銀行からのログイン制限一時解除メール受信不良発生

cloudflare導入直後、IMAPとSMTP接続ができない状況でした。しかし、これはメールサーバをキャッシュしないようにすることで対処できました。そして、どうやら一部のメールの取りこぼしがあったようです。これは、楽天銀行にアクセスしたことで発覚しました。

楽天銀行は、ログイン制限解除キーをメールで送ってくる

楽天銀行は、他の多くの銀行とは異なり、OTPトークンを使用していません。しかし、その代わりに、ログインの都度、解除キーを登録したメールアドレス宛に送ってきます。そして、今回発生した現象は、この解除キーを受信できないという現象です。しかし、他のメールは普通に受信出来ています。つまり、楽天銀行は何らかの方法で、メールプロキシの有無を確認しているのでしょう。

メール受信不良の原因を探る

メール受信不良発生の際に、真っ先に確認しなければならないのは、MXレコードです。このMXレコードはcloudflareが自動的に生成します。この時のMXレコードの参照結果はこのようになっていました。

メール受信不良発生時のMXレコード参照結果です。ちょっと変です。MXがcloudflareのプロキシを向いています。
障害発生時のMXレコード参照結果

MXレコードに書かれたメールサーバーは_dc-mx.xxxxxxxxxx.pooq.bizとなっていました。これは、プロキシサーバーがメール受信をする設定ではないかと思います。しかし、大半のメールは受信出来ていますので、通常はこのままで大丈夫です。しかし、何故か楽天銀行のメールだけは受信できません。

障害時のcloudflare側のDNSの設定です。MXはpooq.bizを指しています。ステータスは、”DNS only”となっています。したがって、普通に考えればプロキシにはつながらないはずです。

MXレコードはちゃんとDNS onlyにしてありました。これなら、メール受信不良は起きないはずです。
障害発生時のMXレコードです。 DNS onlyにしてありましたが、floudflareのプロキシに向いていました。

しかし、なぜプロキシに接続されてしまったのでしょうか? その答えがこれです。↓ ポイント先のpooq.bizが”Proxied”になっていました。したがって、MXを”DNS only”にしても、プロキシに接続されていたわけです。これで、原因がはっきりしました。早速対処です。

MXのポイント先が"Proxied"になっていました。その関係で、MXの参照先がcloudflareのキャッシュになってしまったのでしょう。
MXのポイント先のルートが”Proxied”になっていました これが原因でメールが受信できませんでした

何となく仕組みが想像ついたので、対策をしてみます

どうやら、楽天銀行はメール送信先にプロキシの存在を確認しているようです。そこで、cloudflareのDNSを書き換えて、対策をしてみることにしました。

DNSのレコードを見たところ、Aレコードにmx.pooq.bizというレコードがありました。この、ポイント先はpooq.bizサーバーのアドレスです。先ずは、mx.pooq.bizを”Proxied”から”DNS only”に変更しました。

MXレコードのポイント先としてお誂え向きのレコードがありました。このレコードは、大元のDNSには存在していませんので、cloudflareが自動的に生成したものです。
MXレコードのポイント先としてお誂え向きのレコードがありました DNS onlyへの切り替えを忘れずに

次に、MXレコードの書き換えです。書き換え前はpooq.bizにポイントしていました。これをmx.pooq.bizに変更しました。

MXレコードを書き換えて、対策は終了です。
MXレコードの書き換え

ここまでの作業で、MXは本来のメールサーバに置き換わるはずです。では、確認をしてみます。

これで、MXが正しく変更されたことを確認できました。メール受信不良は解消されました。
MXはcloudflareのプロキシから、本来のメールサーバーに切り替わりました

意外な盲点でした

今回の障害は、ちょっとした見落としが原因でした。MXレコード自体が”DNS only”になっていました。しかし、そのポイント先が”Proxied”になっていました。このため、メールはプロキシ経由になってしまいました。ただし、一般的なメールであれば、プロキシ経由でも受信できました。しかし、楽天銀行は恐らくプロキシの有無を確認しているのでしょう。そして、プロキシが介在していた場合には、メールを送出しないのだと思います。これは、セキュリティ確保の観点からは正しい動作だと思います。ショボいと思っていた楽天銀行の本人確認は、思っていたより良くできていました。