メールサーバを起ち上げるのならば、 知っておかなくてはならない SPAM メールと 第三者不正中継について説明します。
不特定多数に一度に送りつける大量のメールのことを SPAM メールといいます。SPAM メールの問題点は、が挙げられます。特に、2番目の不正中継は、
- 迷惑であること
- 第三者に不正中継を行わせていること
- 有限なネットワーク資源を無駄に使用していること
などが発生し、事態は深刻です。 不正中継をするサイトからのメールは 受け取らないようにしているサイトもあり[1]、 必要なメールすら届ける事ができなくなります。 メールサーバを起ち上げるときは不正中継を行わないように 注意して設定しなければなりません。
- 中継させられているホストに負荷がかかること
- 不正中継したホストおよびサイトに対する信用がなくなること
[1] 例えば、 ORBS (Open Relay Behaviour-modification System) という組織があり、第三者不正中継を許しているメールサーバを リストアップしています。ここにリストアップされたサーバからの メールは一切受け取らない、という設定も可能です。 自分のメールサーバがリストアップされているかどうかは、 http://www.orbs.org/verify.php3?address="your-server's-IPaddress" に行けば分かります。
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 での基本方針は、次の通りです。
- sendmail の場合
- qmail の場合
- inetd + tcp wrapper で許可を与える
- tcpserver で許可を与える
- 基本的には、自分のホストまたはサイトに関係のない 宛名(TO:)メールは受け取らない
- 例外として、中継を許可するホストについては 上の方法で許可を与える
設定した SMTP サーバが不正中継をするかどうか、 テストするためのサイトを紹介します。 [2010/11/02]以下はサイトがなくなってしまいました。どちらのサイトも、あなぽこ(長崎ネットワークサービスのは下のあなぽこ) に IP アドレスを入れてスイッチ押すだけです。
MAPS によるテストについて
テストしたいホストのターミナルから、と打ってもテストができます。
# telnet mail-abuse.org
しかし、このテストは(少なくとも) 次の2つの要素をテストしてしています。
"なりすまし"テストとは、そのホストのユーザになりすまして 送りつけられるメールを受け取るかどうか、というテストです。 sendmail では sendmail.cf の設定でそれをはねることができます が qmail は受け取ってしまいます。
- 不正中継テスト
- "なりすまし"テスト
これは、qmail ではユーザが自由にメールアドレスの エイリアス(別名)を設定できることの代償と言えます。 システムが許されるメールアドレスを監視するかしないか の差が出ているのではないでしょうか。
しかしここでの問題は、不正中継を行うか否かであって、 ゴミメールを受け取る分には他に迷惑はかけません。 また、qmail でも ゴミメールを拒否する方法 や、 受け取ってしまったゴミメールを捨てる方法 が用意されています。