メールが送れない未来がやって来る?!
イプリオの中の人3号です。主にサーバの面倒を見ています。
今回は最近潮流が変わりつつあるメール周りについて話をしたいと思います。
メールが送れない!
昨今、大手メールプロバイダ(Gmail, Outlook, iCloud, Yahoo, …)はメール送信者に対する規制を強化してきており、これらのサービスに対してメール送信できなくなることが度々発生しています。
規制の内容は大まかにしかわかりませんがGmailでは下記のようなメール送信者のガイドラインを出しており、メールサービスを提供する側としてはこのガイドラインに従う必要に迫られています。
送信者はSPFまたはDKIMメール認証を設定する
送信元のドメイン、IPには正しい正引き、逆引きDNSレコードが設定されている
メール送信にTLS接続を使用する
送信されるメールのスパム率を一定以下に保つ
インターネット標準(RFC5322)に従ったメールを送信する
FromヘッダーにGmailのメールアドレスを使ったなりすましを行わない
メーリングリストや転送メールではARCヘッダーを追加し、転送者自身が送信者となってメールを送信する
このガイドラインが導入された背景にはスパムの流量増加があり、正規の方法で送信していないスパムを効率良く弾き(1~3、5、6)、正規のメールであってもスパム判定されやすいものについては救済できる(7)ような条件となっています。
残る項目(4)についてはメールサービスを提供する側としてスパムを送信しない対策が重要となります。
スパムの送信を放置するとどうなるの?
前述の通り、大手メールプロバイダからメールの受信を拒否されるようになります。
通常、大手メールプロバイダはスパムの受信だけを拒否していますが、送信されるメールのスパム率が一定を越えるとIP単位でbanされて一切のメールが送れなくなります。
また、複数箇所のメールサーバでスパム率の高いメールサーバを検知するとIPレピュテーションの評価が下がり、同じIPレピュテーションを使用しているメールサーバがメール受信を拒否するようになります。
一度IPがbanされたりIPレピュテーションの評価が下がると、スパム送信対策をしてもある程度の時間が経過するまでそのIPからのメール送信ができない状態となり、メール配送を見直す必要が出てきます。
スパム送信者の特徴
初期のスパム送信では特定のメールサーバから大量のスパムを送信する形を取っていましたが、大量のスパム送信を検知してIPの評価を下げるIPレピュテーションが普及するとクラックされたメールアカウントを使って正規のメールサービス提供者のメールサーバからメールを送信することが増えました。
メールサービス提供者側も大量送信を検知してアカウントの利用停止をするようになったため、最近のスパム送信はボットから行われることが多く、特定IPからの大量送信を検知して止めるようなことが難しくなっています。
ボットでの送信では以下のような特徴があります。
大量のボットから送られてくるため、送信元のIPが複数に分散される
各IPから送られてくるメール数は大量となる場合もあるが、ある程度送信すると送信を止めてしまうことが多い
特定IPからの大量送信とならないため、IPレピュテーションが効きにくい
基本的にIPがバラバラなのでSPFは設定されていないが、送信者のアドレスをなりすましている場合エンベロープfromに自前のドメインを使ってSPFを設定してメール認証を通るようにすることもある
送信者のアドレスが自前のドメインとなっている場合、DKIM署名がされている場合もある
この場合、表示名は他の組織を騙っている (メーラーでは表示名だけを表示することが多いため、受信者は騙されやすい)
ボットはPC上で動いていることが多く再送機能を持ったメールサーバが用意されていないため、一時拒否されるとメールを再送しない実装が多い
最近は再送機能のあるメールサーバを含んだ仮想マシンを入れられて、そこからスパムを送信するようなものも現われている
メールサーバの運用はどうすべき?
自分のメールサービスを健全に運用するためにはメールサーバを監視するだけでなく、他者の動向に目を向ける必要があります。
特にスパム関連では様々な対策が打たれているため、今日は問題ない設定でも近日中に使えなくなる可能性があります。
まずは自分の所のユーザーがスパムを送信しないようにしてください。
アカウントがクラックされてスパマーに利用されると一度に大量のメールが送信されます。
ログなどでアカウントごとの単位時間あたりのメール送信数を数え、一定の閾値を越えたらアカウントを利用停止にするといった対策を取りましょう。
その上で転送を行っている場合はスパムを転送しないようにしてください。
スパムチェックを導入しスパム判定されたメールは隔離して転送させないようにしましょう。
スパムチェックの導入が難しい場合は初見のIPからのSMTP接続を一時拒否し、再送されたものは受信するグレイリスティング(後述)の導入をお勧めします。 グレイリスティングを導入するだけでも従来型のボット送信によるスパムの流入がかなり減り結果としてスパムの転送を減らすことができます。
また、転送では一般的に送られてきたメールの送信者(エンベロープfrom)をそのまま転送先にも通知していますが、この方法はメール認証(SPF)との相性が悪く問題のないメールであってもスパム判定されてしまいます。
転送するメールの送信者(エンベロープfrom)は転送者のメールアドレスになるように設定を変えて下さい。
また自身が転送する場合は、転送前のメール認証の結果をARCヘッダーに付けて通知できるようにしましょう。
自分の送ったメールが途中の転送によってスパム判定されないようにするためにも、DKIMの導入は欠かせません。
なりすまし送信者に自分の持っているドメインを使用させないためにDMARCの導入も重要です。 DMARCではなりすまし送信者のメールを隔離(p=quarantine)や拒否(p=reject)するように受信側に指示できるので、なりすまし送信者のメールで自分のドメインの評価が下がる事態を防ぐことができます。
グレイリスティングって?
ホワイトリスト/ブラックリストを使うことで確実に受け取る/受け取らないを実現できますが、この方法では既知のものにしか対応できません。
未知の接続が来た場合にまずは白でも黒でもないグレイとみなしてグレイリストに登録して受け取りを保留し、次の接続があれば受け取る方式をグレイリスティングと言います。
通常のメールはメールサーバが再送するためグレイリスティングを行っても配送が遅延するだけで済みますが、ボットによるスパムの送信では再送されないことが多いため一時拒否を行うことでスパムの流入を減らす効果があります。
グレイリストは時間経過で登録内容を消していくため、あまりメールを送信してこないメールサーバからのメールは毎回配送遅延が発生してしまいます。
これを防ぐためには定期的にグレイリスティングにひっかかったIPを確認して、問題ないメールを送っていることがわかればホワイトリストに登録するメンテナンスを行う必要があります。
最後に
スパム対策をしないとメールを受け取ってもらえない世界が刻一刻と迫ってきています。
メールサーバを運用するにはSPF、DKIM、正引き、逆引きの設定がもちろん必須ですが、スパム対策の入口としてグレイリスティングだけでも導入してみてはどうでしょうか。
弊社で展開予定の新メールサービスではグレイリスティングやDKIM、DMARC、ARCといった機能を既存のメールサーバに後付けすることができます。
もし大手メールプロバイダへの送信でお困りの場合はぜひご相談下さい。