メール受信不良発生 – cloudflare
cloudflare導入後、一部のメールで受信不良が発生しました。発覚までに時間がかかってしまいました。しかし、対処は比較的簡単でした。以下に対処内容を備忘録として残します。
何故か楽天銀行からのログイン制限一時解除メール受信不良発生
cloudflare導入直後、IMAPとSMTP接続ができない状況でした。しかし、これはメールサーバをキャッシュしないようにすることで対処できました。そして、どうやら一部のメールの取りこぼしがあったようです。これは、楽天銀行にアクセスしたことで発覚しました。
楽天銀行は、ログイン制限解除キーをメールで送ってくる
楽天銀行は、他の多くの銀行とは異なり、OTPトークンを使用していません。しかし、その代わりに、ログインの都度、解除キーを登録したメールアドレス宛に送ってきます。そして、今回発生した現象は、この解除キーを受信できないという現象です。しかし、他のメールは普通に受信出来ています。つまり、楽天銀行は何らかの方法で、メールプロキシの有無を確認しているのでしょう。
メール受信不良の原因を探る
メール受信不良発生の際に、真っ先に確認しなければならないのは、MXレコードです。このMXレコードはcloudflareが自動的に生成します。この時のMXレコードの参照結果はこのようになっていました。
MXレコードに書かれたメールサーバーは_dc-mx.xxxxxxxxxx.pooq.bizとなっていました。これは、プロキシサーバーがメール受信をする設定ではないかと思います。しかし、大半のメールは受信出来ていますので、通常はこのままで大丈夫です。しかし、何故か楽天銀行のメールだけは受信できません。
障害時のcloudflare側のDNSの設定です。MXはpooq.bizを指しています。ステータスは、”DNS only”となっています。したがって、普通に考えればプロキシにはつながらないはずです。
しかし、なぜプロキシに接続されてしまったのでしょうか? その答えがこれです。↓ ポイント先のpooq.bizが”Proxied”になっていました。したがって、MXを”DNS only”にしても、プロキシに接続されていたわけです。これで、原因がはっきりしました。早速対処です。
何となく仕組みが想像ついたので、対策をしてみます
どうやら、楽天銀行はメール送信先にプロキシの存在を確認しているようです。そこで、cloudflareのDNSを書き換えて、対策をしてみることにしました。
DNSのレコードを見たところ、Aレコードにmx.pooq.bizというレコードがありました。この、ポイント先はpooq.bizサーバーのアドレスです。先ずは、mx.pooq.bizを”Proxied”から”DNS only”に変更しました。
次に、MXレコードの書き換えです。書き換え前はpooq.bizにポイントしていました。これをmx.pooq.bizに変更しました。
ここまでの作業で、MXは本来のメールサーバに置き換わるはずです。では、確認をしてみます。
意外な盲点でした
今回の障害は、ちょっとした見落としが原因でした。MXレコード自体が”DNS only”になっていました。しかし、そのポイント先が”Proxied”になっていました。このため、メールはプロキシ経由になってしまいました。ただし、一般的なメールであれば、プロキシ経由でも受信できました。しかし、楽天銀行は恐らくプロキシの有無を確認しているのでしょう。そして、プロキシが介在していた場合には、メールを送出しないのだと思います。これは、セキュリティ確保の観点からは正しい動作だと思います。ショボいと思っていた楽天銀行の本人確認は、思っていたより良くできていました。