postfix + Rgrey での spam 対策

Posted by yoosee on Debian at 2006-06-29 23:42 JST

*1  Rgrey - S25R + greylisting

postfix に Rgrey の方法で smtp spam filtering を入れた。ささださんの真似。1日動かした時点での効果としては、amavis の bannedmail フォルダに落ちるメールが、約 1/10 に減少している。spam filter で spam フォルダに落ちるメールは 1/3〜1/4程度になった。これだけで spam を遮断することにはならないが、後段の amavis や spamassassin に比べて処理がかなり軽いので負荷軽減にもなる。

*2  Greylisting + S25R

基本的な発想は Greylisting と言う方法。

一定時間が経過するまで一時拒否(4xx)して、それでも接続してきたら、たぶんopen proxyじゃないと思われるので受け取ることにしよう。

つまり「smtp 接続に 450 (一時的な拒否) を返して再送要求すると、まともな MTA なら再送するけど spam tool や virus は再送しないから spam を遮断できる」というもの。一度再送が行われた IPアドレスと From, To の組合わせは記録され、1ヶ月間は再度の再送要求無く処理される。

しかしこれだと「でもそれってまともな MTA にも余計な負担をかけるよね」と言われるのももっともな話。「じゃあ怪しげな接続元だけにこの手を使おう」と言うことにして、S25R にあるような

有効なスパム対策は、メール中継サーバからのSMTPアクセスを受け入れる一方で、エンドユーザー用回線からのSMTPアクセスを拒絶することである。それらは、IPアドレスの逆引き名の特徴に基づいて識別できる。

に基づき、「逆引き出来ないか、逆引き結果がいかにも回線系サービス」のものに Greylisting を適用する。

こうした接続元逆引きパターンによる判別は、postfix の場合は main.cf の設定のみで対応出来る。設定内容は rgrey そのままだが、一応書いておくと

/etc/postfix/main.cf
 smtpd_recipient_restrictions = ... , regexp:/etc/postfix/check_client_fqdn
 smtpd_restriction_classes = check_greylist
 check_greylist = check_policy_service inet:60000 
/etc/postfix/check_client_fqdn
 /^unknown$/                                  check_greylist
 /^[^\.]*[0-9][^0-9\.]+[0-9]/                 check_greylist
 /^[^\.]*[0-9]{5}/                            check_greylist
 /^([^\.]+\.)?[0-9][^\.]*\.[^\.]+\..+\.[a-z]/ check_greylist
 /^[^\.]*[0-9]\.[^\.]*[0-9]-[0-9]/            check_greylist
 /^[^\.]*[0-9]\.[^\.]*[0-9]\.[^\.]+\..+\./    check_greylist
 /^(dhcp|dialup|ppp|adsl)[^\.]*[0-9]/         check_greylist
postgrey は Debian なら公式パッケージが用意されているので apt 一発。と言うことで導入は容易だ。check_client_fqdn の正規表現は色々試してみるのが良さそうか。

*3  導入雑感

結局これは逆引き名が「怪しい」サーバに負担を強いることになるが、実際の効果がそれなりにあるのと 1度再送してもらえば当分はスルーするので許容できるレベルではなかろうか。将来的には OP25B で解決される部分ではあるが、全ての ISP がそれを行うわけでもなかろう。ちなみに現在うちの MTA では Rgrey の他にも NS による Reject や 添付ファイル(.scr|.pif)の拒否もしている。MTA での総合的な spam 対策は spam対策まとめ が詳しい。

( Permalink | Comments (4) | tags: mail  spam  server  )
Comments
1. stealthinu at 2006-07-10 13:39
Rgrey提案させていただいてますさとうです。
ちょうど、Rgreyでのgreylisitingの代りにtarpittingを使う手法、Starpitについての提案を書いたところでした。

Starpitでほぼ誤検出無く98%のスパムを排除
http://d.hatena.ne.jp/ste ... lthinu/20060706

Postfixのバージョンを上げないといけないという問題があるのですが、もしよろしければお試し下さい。
2. yoosee at 2006-07-19 13:17
レスポンスに遅延を入れる方法も幾つかあるようですね。今度試してみようかと思いますが、postfix を debian package で入れているのでちょっと面倒かな。
あとこれは毎回遅延を挟むんですよね? 要は postgrey のように、一度通ったアドレスを一定期間素通しするというアクションは無しで。
3. stealthinu at 2006-08-08 10:55
そうなんですよ。S25Rに引っかかったところは毎回遅延されてしまいます。そこが問題点の一つですね。
解決策として、postgreyにパッチ当てる形でtarpittingも利用できるようにしたいと考えています。
そして設定によっては、tarpitting and greylisting とか tarpitting or greylisting の構成に出来るようにもできればと。
4. yoosee at 2006-08-08 15:50
こういうのは一極的にフィルタが出来るとかなり便利そうですね。

Please write your comment. email address won't appear. Cannot use any HTML tags in comment.
コメントをお書き下さい。メールアドレスは公開されません。 またHTMLタグは利用できません。
Name   E-mail   URL
Comment

About W.W.Walker

World Wide Walker は yoosee による blog です。PDA, Web・サーバ技術, 美味しい食べ物などの話題を取り上げています... read more

このエントリーのブックマーク

Monthly Archives

Select Month to read