*1  taRgrey - S25R + tarpitting + greylisting

以前 postfix + Rgrey での spam 対策 で参考にさせてもらった Rgreystealthinu さんが、postgrey の greylist に tarpitting を追加した物を公開したと、以前メールで教えていただいた。
taRgreyとは、メールサーバ上でスパムやウイルスメールを排除するためのフィルタの手法で、 S25Rとtarpittingとgreylistingというスパム判定手法を組み合わせて使うというものです。
S25Rにより、動的IPっぽいFQDNからの接続からは怪しいと判断し、tarpitting(応答の遅延)を行います。tarpittingを待ちきれずに送信元が接続を切った後、再度送ってきた場合にはgreylisting(再送のチェック)により救済します。S25Rとtarpittingとgreylistingと、全てのフィルタを抜けれなかったものだけがスパムとして排除されます。taRgrey - S25R + tarpitting + greylisting

大分前に導入しているのだが、しばらく利用しての効果をまとめておく。

Debian には postgrey パッケージがあるのでこちらの導入は簡単なのだが、targrey を使うためには postgrey に patch を当て、設定を変更する必要がある。導入手順は元サイトを参照してほしいが、流れは概ね以下の通り。
  1. postgrey に patch を当てる
  2. /etc/default/postgrey の POSTGREY_OPTS に tarpit, targrey 等の設定を追加
  3. /etc/postfix/permit_client_nots25r を追加
  4. /etc/postfix/main.cf を編集
以前 Rgrey を導入するために設定変更している状態に更に手を入れることになったので、状況を把握するのが多少手間取った。ロジックとしては smtpd_recipient_restrictions で S25R をチェックし tarpitting を適用、tarpitting で失敗した後に再送してきた相手は smtpd_data_restrictions の方で greylisting のチェックをかけている。postgrey はその辺りを db に保存して、状態遷移を管理しているようだ。

taRgrey では tarpit で失敗した分を greylist で救う形 (tarpitting || greylist) になるため、greylist や tarpitting 単体よりは条件が多少緩くなる。その分 false positive は経るだろうが false negative が増えるかもしれない。逆に厳しくしたいのならば、条件を (tarpitting && greylist) にすればよい。

*2  taRgrey の効果

1月16〜31日の約2週間の効果を以下に記す。postgrey のオプションは taRgrey で推奨されている --tarpit=65 --targrey --delay=1200 --retry-count=2 をそのまま用いている。
処理処理数残通数
SMTP総コネクション数79,86379,863
header_checks での添付(.pif .scr)DISCARD4,02675,837
HELO Blacklist/Rule によるREJECT5,98870,349
S25RにマッチしてのWARN63,9405,909
 → RCPT Blacklist によるREJECT15
 → その他ルールによるREJECT10,046
 → tarpitting での lost connection16,511
 → Gleylisted による REJECT32,882
taRgrey通過通数8,109
数字が合わない部分があるが、ログをラフに解析した結果なので大目に見てほしい。taRgrey 以外のルールで意外に効いたのがhelo blacklist による reject と、smtpd_recipient_restrictions の reject_unknown_sender_domain (5,234) 。user unknown での reject も 3,384 と結構多いので、virtmap や alias での catch all ( *@domain を特定アドレスに転送 ) は無い方がよさそうだ。

当サーバでは、taRgrey を抜けたメールはその後、Amavis-new + ClamAV によるフィルタを通過する。
AmavisでのBAN/BADH2,144
Amavis通過通数5,965
ちなみに Rgrey も適用していない去年6月の場合、amavis に到達したメール数が68,231、amavis で落ちたメール数は 24,320 、通過数が 43,911 と、どれも 10倍近い。メール本文スキャンによるサーバの負荷を考えると、かなりの負荷軽減になっていると考えられる。

最終的に各ユーザに落ちる際に、更に Procmail、SpamAssassin によるフィルタが適用される。
MAILER-DAEMONなど定型フィルタ1,355
SpamAssassinでのフィルタ3,787
最終的なメール数823
最終的な spam スルー数(false negative)は2週間で5通、誤判定(false positive) はメールマガジン1通だった。false positive が低いのは、単に whitelist をきちんと書いているからかもしれない。非 spam メールのうちでは、「Virus 判定された」と From アドレス宛に返信してきているメールが結構多い。

単純に効果のほどを考えると、Debian では patch などがいらない postgrey での Rgrey だけでも十分かもしれない。もちろん taRgrey (tarpit || greylist) で false positive を減らしたい場合や、(tarpit && greylist) として厳しく受け付けたい場合などには、この組み合わせは有効だろう。

( Permalink | Comments (1) | tags: mail  spam  )
[SMTPレベルでのspam送信機能改善] 数年前から MTA レベルの spam フィルタ技術として tarpitting + greylist 等を適用しているが、最近どうも効きが悪い感じがしたので、すり抜けてくる spam について少し調査をしてみた。結論としては spam 送信ソフトの実装レベルがかなり上がってきた事が伺える。SMTP的な挙動が正.....
Comments
1. オカムラ at 2010-03-24 17:22
「taRgrey の効果」はどのように算出しているのでしょうか?
導入後の効果を算出したいと思いますので、情報を公開してもらえるとありがたいです。

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