2006.07.29
Spamメール対策・・・(mail)
メールを良く使う人は誰でも「迷惑メール」に悩まされていることでしょう。
プロバイダーのメールアカウントを使っている方は、最近ではプロバイダーが「迷惑メール」対策サービスを提供しているので、それらを利用されている方も多いと思いますが、自前でメールサーバを立てていると、自分で防ぐ以外に方法はありません。 以下に小生のサーバで行っている対策について記述します。
1. accessファイルで制限
FreeBSDでは/etc/mailにaccessというファイルがあるので、この中に制限したいメールアドレスを書きます。
From:hotmail.co.jp REJECT ・・・・・・・? tw REJECT・・・・・・・・? From:abcdxyz@ REJECT・・・・・・・・? From:xyz@aaa.bbb.com REJECT・・・・・・・?
などですが、上の例の?ではhotmai.co.jpから来るメールを全て拒絶しますし、?ではtw(台湾)からくるメールは全て拒絶します。
?はドメイン名によらず、abcdxydのアカウント名もつメールを拒絶するもので、fuck@とかpussy@などのエッチなアカウント名を拒絶するのに便利です。
?はずばり決め打ちでの拒絶例です。
しかし、知り合いでhotmailを使っている、台湾に友人がいるなどのときは困りますので、知人、友人だけは通すように設定します。 下記は例外を付けた例ですが、chijinn, yuujinをそれぞれの方のアカウント名とします。
chijin@ RELAY yuujin@ RELAY From:hotmail.co.jp REJECT tw REJECT From:abcdxyz@ REJECT From:xyz@aaa.bbb.com REJECT
これで、まずchijinn@, yuujin@が評価され、それ以降の設定によらず受け取れます。
また、REJECTの変わりに 550 User unknownと書けば相手には受け取れない理由として
User unknownとして通知されます。
もちろん、特定アドレス向けを拒絶することもでき、
To:stuv@xxxx.cccc.co.jp REJECT
と書くことも出来ます。
accessのファイルが出来たら、sendmailが参照できるようにするため、access.dbを作成し、sendmailを再起動すれば設定が反映されます。
# makemap hash /etc/mail/access < /etc/mail/access # kill -HUP <PID>
<PID>はsendmailのPIDで cat /var/run/sendmail.pidで番号を調べておきます。
2. Greet Pauseの設定
spamメールの送信者は次々と新しいアドレスで送りつけてくるのでaccessによる制限だけでは、なかなか防げません。
そこで、有効なのがGreet Pauseを入れるという方法です。
Grret Pauseを理解するために、メールの送受信のやり方を知る必要がありますが、例えばabc@xxx.yyyy.comにメールを送信するときは、送信側のサーバが相手側にメールを送信しても良いか問い合わせ、相手側から受け取れる旨の返事を待って実際のメールを送信します。
この相手からの返事をグリーティングメッセージと呼んでいます。
ところが、グリーティングメッセージは相手のメールサーバが忙しいと返事が遅れますので「迷惑メール」の送信者は数を稼ぐために、グリーティングメッセージを待つことなく勝手にメールを送り出します。
そこで、メール送信の問い合わせがあったとき、グリーティングメッセージをわざと少し遅らせ、返事を返していないのに勝手に送りつけてくるメールは「迷惑メール」と判断して捨ててしまうようにします。
通常のメールサーバなら1〜2分程度でも問題なく待ってくれるのですが、小生のところではとりあえず5秒遅らせることにしました。
それでは、設定ですが、簡単です。 sendmailにはGreet Pause機能が用意されています。
/etc/mailにsendmail.mcの名前のファイルがあるので、次の1行を追加します。
FEATURE(`greet_pause',`5000')dnl
mSec単位なので、5000で5秒遅らせることになります。
あとは、以下のようにfreebsd2.mcからfreebsd2.cfを作ってfreebsd2.cfをsendmail.cfにコピーしsendmaiを再起動でお終いです。 /etc/mailディレクトリー内で作業します。
# make freebsd2.cf # cp freebsd2.cf sendmail.cf
効果はテキメンでした。 ほとんと拒否できています。
なお、デフォルト値は5秒ですが、acccessに以下のように書いておくと、特定のアドレスを0にしたり、もっと大きくしたり出来ます。
GreetPause:nakama.yoiserver.co.jp 0 GreetPause:abc.xyz.co.jp 200
はっきりと問題ないと分かっているサーバは0にしておくのもエチケットでしょうか(相手の処理を遅らせるので)。
コメント
コメントフィードを購読する
コメント投稿