サクラでスパムの一次フィルタリングしてみるテスツ。
サクラのスタンダードプラン使ってます。(http://www.sakura.ne.jp/)
長年使ってるメールアドレスだと、毎日来るスパムの数も半端じゃないわけです。
メールソフトは秀丸メールを使っています。今まで秀丸メールのスパムフィルタを
使っていましたが、 誤認識も結構あるので調べるのが大変です。
サクラ自体にも「SpamAssassin」が入っていますが、結局は誤認識もあるわけです。
また、どうなってるのかWEBメールで確認しに行かなければならないのもおっくうです。
とりあえずPOPFileをいれてみたのですが、検出率もなかなかでそれはそれでいいのですが
結局問題は、来るスパムの数が多すぎて誤検出されたメールを目視でチェックするのが大変ということです。
じゃーどうにかしてあらかじめスパムと思われるメールを受け取らないようにしてしまえばいいのではないか?
でも、そんなことできるの?
最初はSpanassassinのlocal.cfを書いてどうにかできないかと思ったのですが、どうにも上手くいかないので挫折
SpamAssassinでの振り分けの制御やメールの転送など、なんか設定ファイルで制御してるんじゃないかと
思って、自分のホームディレクトリ内をsshで覗いてみるとMailBox配下に色々あることがわかりました。
.mailfilterってファイルの中にいかにもっていうスプリクトが書いてあったのでこれでなんとなできんじゃねー?
と思って
で、色々調べてみると「サクラの非公式FAQ 」を見つけました。
▼サクラの非公式FAQ
http://faq.sakura.ne.jp/wiki/wiki.cgi?FrontPage
サクラのレンタルサーバーではmaildropでメール配信を行っていて
.mailfilterで細かい制御が出来るとの事。
やっぱりこいつを使えば何とかできそうです。
if ( ! ( /^From: *!.*/ && lookup( $MATCH2, ".whitelist"
) ) ) { xfilter "/usr/local/bin/spamc" } if ( /^X-Spam-Flag:.*YES/ ) { to "maildir/.spam/" } |
if ( ! ( /^From: *!.*/ && lookup( $MATCH2, ".whitelist"
) ) ) { xfilter "/usr/local/bin/spamc" } if ( /^X-Spam-Flag:.*YES/ ) { exit } |
if ( ! ( /^From: *!.*/ && lookup( $MATCH2, ".whitelist"
) ) ) { xfilter "/usr/local/bin/spamc" } |
xfilterのところにフィルタを指定すればフィルターできるようなのでここに自作のフィルターをつくって指定してやることを考えました。
フィルターのポリシーはこんな感じです。
・SpamAssassin等でも利用されているDNSBLやURIBLを利用してスパムかどうか判定する。
・当然多少の誤判定や巻き添えはありえるが、DNSBLやURIBLに登録されているところから送られてくるメールは届かなくてもしょうがない。
・当然多少の誤判定や巻き添えはありえるが、DNSBLやURIBLに登録されているところから送られてくるメールは多分おいらには関係ないメール。
・DNSBLやURIBLに引っかかったメールにはヘッダを追加する。
・おいら個人としてはそのままメールを捨てる(これで受け取るスパムを減らすことが出来るはず)
で、ごにょごにょしてそれなりに形になりました。
●解説&設置方法
▼前に自前のサーバ向けに書いたものを流用
ソース中ログをsyslogにはいてるところがそのなごり
ソースを見ればわかると思いますがたいしたことはやってません。メールの中からIPとドメインを取り出してDNSBLやURIBLを正引きしているだけです。
▼参照DNSBL
all.rbl.jp
sbl-xbl.spamhaus.org
追加設定するとかなり有効なDSNBL 具体的にはすり抜けてきたスパムのヘッダをみてIPアドレスからどこの国から来たスパムか調べてから追加するのが吉。 注意、国ごと拒否する場合は注意してください。拒否されると困るメールはホワイトリストに入れて置けばOKです。 2006.10.18修正、 ・ blackholes.usの正引き時のドメインの指定方法が変わっているようなので、新しい指定の方法に修正。 ・ソースにあらかじめスパムを送って来る国の定義を追加 |
|
|
|
cn.countries.blackholes.us | 中国 |
kr.countries.blackholes.us | 韓国 |
br.countries.blackholes.us | ブラジル |
ru.countries.blackholes.us | ロシア |
ar.countries.blackholes.us | アルゼンチン |
th.countries.blackholes.us | タイ |
tw.countries.blackholes.us | 台湾 |
pl.countries.blackholes.us | ポーランド |
ph.countries.blackholes.us | フィリピン |
fr.countries.blackholes.us | フランス |
▼参照URIBL
url.rbl.jp
sc.surbl.org
ab.surbl.org
と無難なところをチョイス。
参照するところは追加や削除が簡単にできる様にしてあるので、Spamcopとかも簡単に追加できます。
▼設置方法
spamdel | 700 | フォルダ |
spamdel.pl | 700 | フィルタープログラム |
spamdel.log | 600 | ログファイル |
if ( ! ( /^From: *!.*/ && lookup( $MATCH2, ".whitelist"
) ) && (1) ) { xfilter "/home/kumacchi/tools/spamdel.pl" } if ( /^X-Dnsbl-Status: Yes/ ) { to "maildir/.Trash" } |
フィルタだけしたい場合(メールのヘッダに「X-Dnsbl-Status: Yes」が追加されます。)下記の部分を削除してください。 if ( /^X-Dnsbl-Status: Yes/ ) |
▼現状
とりあえずは、しばらくはゴミ箱に送って確認してました。
scan3.ztv.ne.jpがRBL.JPに登録されてメーリングリストのメールが1個引っかかったことが有りますが
RBL.JPは2日ほどで解除される仕組みですのでこの後は無問題です。
受け取るスパムメールの数が1日当たり200個>10個程度にまで減少して良い感じです。
その上でPOPFileで判定するようにしているので随分楽になりました。
▼ダウンロード
※このスプリクトを利用した場合に生じたいかなる損害にも責任を負いかねますのでご利用は自己責任でおながいします。(*゚д゚)
※sshでunixのコマンドがある程度理解できている人向けです。
上記をご了承いただける場合のみダウンロードしてご利用いただけます。
ダウンロード
2006年10月03日 作成
2006年10月18日
・ソースに国毎に拒否する定義の追加。
・上記についてホームページにも反映。
(スパムが減ってかなり快適)