spamよけ

spamは、嫌です…

最近ではspamが来るのは日常的な ことになってしまいました。嫌です、と言ってても来るものは来るので、これ を出来るだけ減らそう、というのがこのページの主旨です。なお、procmailな どを使ってメールを一旦受信してから振り分けるという方法もあり、その方が 細かな設定ができますが、ここではsendmailを使ってspamを減らす方法につい て述べます(メールを受けとらずに拒否するので、回線への負荷が減る)。実際 には両方を組みあわせるのがいいでしょう。

1秒あたりに受信するメッセージの数を制限する

普通、メールサーバに多くのサイトから接続要求があれば、可能な限りそれを 受けようとしますが、このオプションをつけることで、1秒あたりに接続する 数を制限することができます。それからあふれた分については、次の1秒で処 理するよう、待ちます。この値は自分のサイトの規模などから考えるべきです が、目安として小規模サイトなら3くらいで十分かと思われます。

(設定方法)その値を3とするなら、

define(`confConnectionRateThrottle', `3')dnl

です。実際には3のかわりに必要な数値をいれてください。

(注意)
define(`MaxDaemonChildren',`3')としても同じように見えます が、こうすると3を超えた接続要求を拒否する(エラーになる)ため、DoSの原因 となるため、使うべきではありません。

DNSが引けないホストからのメールを拒否する

DNSが引けないようなホストからの接続要求などろくなものでないので、エラー にしてしまって良い場合がほとんどです。実際、最近のsendmailでは、デフォ ルトでそのような挙動をします。もし、そういったホストからも接続できるよ うにするなら、

FEATURE(accept_unresolvable_domains, OFF)

を設定します。

あるサイト、あるユーザからのメールは受信しない

「このサイトから来るメールはすべていらない」「このユーザからのメールは 受け取りたくない」という設定をsendmailで行なうことは、簡単です。 まず、sendmail.cf の方の設定をします。ここでは、設定ファイルとして /etc/mail/access.db を使うものとします。.mcファイルに、

FEATURE(`access_db', `hash -o /etc/mail/access')dnl

の1行を加え、sendmail.cfを作ります。

次に受けとらないアドレスをまとめた「ブラックリスト」を作ります。だいた いこんな感じ:

spam@puni.net	REJECT
mimamima.com	REJECT
good@mimamima.com	OK
relay.example	RELAY
iyadesu.org	ERROR:"550 Iyadesu"
192.168		OK
[192.168.0.1]	REJECT
[1::8]		OK
(ちなみに、このリストの空白はtabにする)
この設定では、spam@puni.netからのメール、mimamima.comからのメールのう ちgood@mimamima.com以外のものを受けとりません。一方、relay.exampleから のメールについては、このメールサーバを経由して別サイトへも転送できます。 iyadesu.orgからのメールも受けとりませんが、その際エラーメッセージとし て「550 Iyadesu」を表示します。192.168.0.0/16からのメールについては、 192.168.0.1だけ拒否、それ以外は受信、またIPv6アドレスの[1::8]も受信す る、という設定です。なお、ここの空白はtabです。これをaccess というファ イルに入れたとすると、次にこれをmakemapします。
makemap hash access.db < access
これにより出来たaccess.dbを /etc/mail に置き、sendmailを再起動する (例えば killall -HUP sendmail)と、この設定が有効になります。

加えて、

FEATURE(`blacklist_recipients')dnl

という設定も行うと、このデータベースに自ホストのローカルなメールアドレ スを書くこともできるようになり、この場合には、その人に対してメールが届 かなくなります。ただ、単にエラーで返すのはしのびないので、ブラックリス トに、
badlocaluser	ERROR:550 Mailbox disabled

のような説明をつけるとよいでしょう。

RBLを利用する

こちらにも書きましたが、 open relayとか3rd party relayとかいうものを許可しているサイトからの接 続を拒否することで、spamを減らすことができるかもしれません。
#私個人としてはあまり好きではありませんが
ここでは、そのうちRBLというデー タベースを使う方法を説明します。

これも実に簡単で、.mcファイルに

FEATURE(dnsbl)

と書くだけです(ただし、使っているsendmailが8.9系であれば、 FEATURE(rbl)となる)。


top
back

Mimori Yuki <s-v@sendmail.cf>
$Id: spam.html,v 1.2 2001/10/31 02:10:41 s-v Exp s-v $