最近スパムが多くて、良いスパム対策はないかと物色。
で、なんか売り文句によると99%のスパムメール撲滅できるというものが。
基本的なコンセプトはこちらに詳しく書いてある。
なるほどね。
エンドユーザ回線を拒絶するのはでかそうだ。
この方式をS25R(Selective SMTP Rejection)方式というそうだ。
そして、この方式とは別にGreylistingという方式がある。
Greylistingは簡単に言えば、再送要求を一旦返して、ちゃんと再送してきたものを受け取る方式。
S25RとGreylistingを組み合わせた方式がRgrey方式として紹介されている。
また、意図的な応答遅延を行うことで配送タイムアウトが通常のMTAよりも速いものを切り落とすtarpittingという方式もある。
これは、通常、スパム業者は大量のメールを配送する関係から、応答の遅いMTAには配送を早々とあきらめるよう設定されていることが多いことを利用したもの。
S25R+tarpittingによる、Starpitという手法も紹介されている。
そして、全部ごった煮のパターン、S25R + tarpiptting + Greylistingを組み合わせたtaRgrey方式が紹介されていた。
taRgrey方式の簡単な説明は以下の通り。
taRgreyとは、メールサーバ上でスパムやウイルスメールを排除するためのフィルタの手法で、 S25Rとtarpittingとgreylistingというスパム判定手法を組み合わせて使うというものです。
S25Rにより、動的IPっぽいFQDNからの接続からは怪しいと判断し、tarpitting(応答の遅延)を行います。tarpittingを待ちき れずに送信元が接続を切った後、再度送ってきた場合にはgreylisting(再送のチェック)により救済します。S25Rとtarpittingと greylistingと、全てのフィルタを抜けれなかったものだけがスパムとして排除されます。
さて、じゃあtaRgrey方式で、といきたいところだが、ここにかかれている方法はパッチを当てなければならない。
aptでパッケージ管理している関係上、できるだけdebian非公式パッチは当てたくない。
なので、パッチを使わないで実装する方向とする。
ということでどこでチェックしようかpostfixの設定を眺めることしばらく。
smtpd_recipient_restrictionsでやるのがいいかなあ、という結論。
PostfixでのGreylistingはpostgreyを使う。
ホワイトリストは許可して、S25R方式で怪しい奴らにgreylistingをかける。
それを通ったものにはtarpittingをかける。
という流れにする。
postgreyをインストール。
# aptitude install postgrey
/etc/default/postgrey POSTGREY_OPTS="--inet=127.0.0.1:10023"
127.0.0.1をつけないとipv6でbindしてた。
いや別にいいんだけど。
main.cf smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_client_access regexp:$config_directory/white-list.txt, check_client_access regexp:$config_directory/permit_client_nots25r, check_policy_service inet:127.0.0.1:10023, check_client_access regexp:$config_directory/tarpitting, permit
white-list.txt http://www.gabacho-net.jp/anti-spam/white-list.txtのものを使用
permit_client_nots25r
/\.(internetdsl|adsl|sdi)\.tpnet\.pl$/ WARN
/^user.+\.mindspring\.com$/ WARN
/^[0-9a-f]{8}\.(.+\.)?virtua\.com\.br$/ WARN
/\.catv\.broadband\.hu$/ WARN
/[0-9a-f]{4}\.[a-z]+\.pppool\.de$/ WARN
/\.dip[0-9]+\.t-ipconnect\.de$/ WARN
/\.dip\.t-dialin\.net$/ WARN
/\.dyn\.optonline\.net$/ WARN
/\.(adsl|cable)\.wanadoo\.nl$/ WARN
/\.ipt\.aol\.com$/ WARN
!/(^unknown$)|(^[^.]*[0-9][^0-9.]+[0-9].*\.)|(^[^.]*[0-9]{5})|(^([^.]+\.)?[0-9][^.]*\.[^.]+\..+\.[a-z])|(^[^.]*[0-9]\.[^.]*[0-9]-[0-9])|(^[^.]*[0-9]\.[^.]*[0-9]\.[^.]+\..+\.)|(^(dhcp|dialup|ppp|[achrsvx]?dsl)[^.]*[0-9])/ OK
/./ WARN
tarpitting /./ sleep 65
main.cfでのsmtpd_recipient_restrictionsで基本的な認可のあとに
ホワイトリストによる認証(check_client_access regexp:$config_directory/white-list.txt)
S25RでOKなものの認可(check_client_access regexp:$config_directory/permit_client_nots25r)
微妙なやつらをpostgreyでgreylistチェック(check_policy_service inet:127.0.0.1:10023)
それも抜けたのはtarpitting(check_client_access regexp:$config_directory/tarpitting)
という感じ。
設定してからしばらくログ眺めてたけど良い感じでスパムをブロックしてくれている。
SPFの設定もしようかと思ったけど、あっちは転送時にfailしたりしちゃうことがあるみたいだから、とりあえず今回はやめておいた。
postfix-policyd-spfパッケージ入れてちょいちょいいじれば使えそうなんだけどね。

Categories
Tag Cloud
Blog RSS
Comments RSS
Last 50 Posts
Back
Void « Default
Life
Earth
Wind
Water
Fire
Light 