
スパムメール対策
最近はスパムメールが大量に届く毎日です。 以前は変な日本語で書かれたメールでしたが、AIの進化で最近は怪しい日本語ではなくなり、判別も難しくなってきました。
スパムメールもフィッシング、なりすましメールが大半でうっかりすると個人情報を盗られてしまったり、詐欺に引っかかる可能性もでてきました。 例えば自分がショッピングサイトなどで何かを注文していた時とたまたま日にちが重なって、運送会社から不在届みたいなメールが来ているとうっかりすると引っかかってしまう可能性があります。
このための対策として自宅サーバーには、ウィルス除去、スパムメール除去、そしてなりすましメール対策としてDKIMを入れて対策してきました。(この2015年にDKIM導入時の対策は自分のサーバーから送り先に対しての対策でした。つまりDKIMをチェックしているかもしれない相手サーバーに安心してもらうという方向だけでした。)
しかし上記のようにスパムメールが増え、即ゴミ箱に入るものの、その数が1日に100通という膨大な数になり、絶対見ないメールに自宅サーバーのパワーや光回線の容量を使うのは無駄、いい加減にしてほしいという思いで、自宅サーバーで受信する方向に対しても対策をとり、怪しいメールは受信する前に遮断するようにしてみました。
この仕組みがSPF (Sender Policy Framework)、DKIM (DomainKeys Identified Mail)、そしてDMARC (Domain-based Message Authentication, Reporting and Conformance)です。
それぞれの機能をまとめると
- SPF:送信元メールサーバーのIPアドレスを見て正当かどうかを確認
- DKIM:メールヘッダーに付けられている署名を見てメールに改ざんがないかを確認
- DMARC:SPFとDKIMの結果を受けて怪しいメールを受信する前に拒否
- ClamAV:ウィルス除去
- Spam Assassin:スパムメールの内容を受信の度に学習し、スパムと判断されたメールを廃棄
ということでメールを受信する前にSPF→DKIM→DMARCと判断・処理することで、怪しい送信元や改ざんした送り主のメールを受信する前に拒否してしまう形です。
このSPF+DKIM+DMARCでやっているのはメールの送り主の正当性の判断で、偽装ドメインとか送信サーバーの署名がないとか、なりすましなどがあると受信を拒否するもので、そのメールがスパムかどうかとか、ウィルスメールかどうかという、メールの内容までは判断していません。 中には正々堂々と送ってくる「正当なスパム?」があるのでこれはSPF+DKIM+DMARCをすり抜けてきますが、これはその後に続いて処理するウィルス除去やスパムのフィルターで廃棄されるという形になります。
ほとんどのスパムメール発信者は偽装したり、なりすましているので、これでスパムメールの数は激減し、1日100通ほど来ていたスパムメールは1日10通以下までになりました。 そして、そのすり抜けてきた「正当なスパム」もSpam Assassinフィルターで100%廃棄されています。
これはこの対策をするまで、1日100通もスパムを受信していたため、大量に学習させていただいたおかげでもあります(笑)

