SPAM メールと不正中継について

メールサーバを起ち上げるのならば、 知っておかなくてはならない SPAM メールと 第三者不正中継について説明します。


SPAM メールとは

不特定多数に一度に送りつける大量のメールのことを SPAM メールといいます。SPAM メールの問題点は、
  1. 迷惑であること
  2. 第三者に不正中継を行わせていること
  3. 有限なネットワーク資源を無駄に使用していること
が挙げられます。特に、2番目の不正中継は、 などが発生し、事態は深刻です。 不正中継をするサイトからのメールは 受け取らないようにしているサイトもあり[1]、 必要なメールすら届ける事ができなくなります。 メールサーバを起ち上げるときは不正中継を行わないように 注意して設定しなければなりません。

[1] 例えば、 ORBS (Open Relay Behaviour-modification System) という組織があり、第三者不正中継を許しているメールサーバを リストアップしています。ここにリストアップされたサーバからの メールは一切受け取らない、という設定も可能です。 自分のメールサーバがリストアップされているかどうかは、 http://www.orbs.org/verify.php3?address="your-server's-IPaddress" に行けば分かります。

参考 URL
http://www.ayamura.org/interop98/ (SPAM の現状と対策)

第三者不正中継とは

SPAM メールを送る者は、送り手受け手の双方とも関係のない ホストを使ってメールをばらまきます。 これは、インターネットが「迷子のメールは送ってあげよう」 という性善説に支えられていた頃の仕様を利用しています。

メールを送る一連の作業は、SMTP (Simple Mail Transfer Protocol) のデーモンである smtpd に SMTP 接続要求をして、 送り手と受け手とメッセージ内容を知らせて配送してもらう、 という手順になります。 smtpd は自前のローカルホスト(下図の sender)でもいいですし、 他のリモートホストでも構いません。 ここに、SPAM のつけいる隙があります。

   hoge@sender.org                               foo@receiver.org
   ++++++++++++                                  ++++++++++++++
   +  sender  +                                  +  receiver  +
   ++++++++++++                                  ++++++++++++++
       |                                              |
       |                    myhost.mydomain           |
       |  SMTP Connetction  ++++++++++++    Forward   |
       |____________________+  myhost  +______________|
                      smtpd ++++++++++++


    図中の四角の上はメールアドレス、もしくはホストのフルネーム、
    四角の中はホストの名前
  
    メールの表書き(郵便封筒の宛名のようなもの)

    FROM: <適当にごまかしができます>
    TO: <foo@receiver.org>
  

上の図では、hoge@sender.org が foo@reciever.org に向けて 発信したメールを、自分のホスト sender ではなくて 他人のホスト myhost に 発信依頼をしています。 つまり、myhost がメール発信の踏台にされているわけです。

不正中継の防止

不正中継を防止するには、特に TO を見て、 自分(myhost.mydomain)もしくは 自分が属するドメイン (mydomain)に関係ないメールは 受け取りを拒否してしまいます。

正規な中継は?

では、上の絵で sender と書いてあるところが、 SPAMer ホストではなく、 正規な(許可を与えたい)ホストの場合はどうするのでしょう? などの方法があります。 qmail での基本方針は、次の通りです。

不正中継テストをするサイト

設定した SMTP サーバが不正中継をするかどうか、 テストするためのサイトを紹介します。 [2010/11/02]以下はサイトがなくなってしまいました。

どちらのサイトも、あなぽこ(長崎ネットワークサービスのは下のあなぽこ) に IP アドレスを入れてスイッチ押すだけです。

MAPS によるテストについて

テストしたいホストのターミナルから、
# telnet mail-abuse.org
と打ってもテストができます。

しかし、このテストは(少なくとも) 次の2つの要素をテストしてしています。

  1. 不正中継テスト
  2. "なりすまし"テスト
"なりすまし"テストとは、そのホストのユーザになりすまして 送りつけられるメールを受け取るかどうか、というテストです。 sendmail では sendmail.cf の設定でそれをはねることができます が qmail は受け取ってしまいます。

これは、qmail ではユーザが自由にメールアドレスの エイリアス(別名)を設定できることの代償と言えます。 システムが許されるメールアドレスを監視するかしないか の差が出ているのではないでしょうか。

しかしここでの問題は、不正中継を行うか否かであって、 ゴミメールを受け取る分には他に迷惑はかけません。 また、qmail でも ゴミメールを拒否する方法 や、 受け取ってしまったゴミメールを捨てる方法 が用意されています。

参考サイト


FreeBSD の部屋


Sep. 11, 2000