毎日(特に週末に)死ぬほど来るSPAM対策をメイルサーバ側で行います。

新しいbsfilter-1.04はruby1.8じゃないと動かないみたいです。以前に書いた
http://w3.itoh.net/bsfilter.html を書き直しました。

FreeBSD 4.10-RELEASE

rootになってportsでrubyをインストール

cd /usr/ports/lang/ruby18
make install

opensslが古いとダメって言われることがあるのでそのときは

cd /usr/ports/security/openssl
make deinstall
make reinstall

とかする。(エラーメッセージをよく読むべし)

以下メールアカウントユーザになり

http://bsfilter.org/
から
http://osdn.dl.sourceforge.jp/bsfilter/10876/bsfilter-1.0.4.tgz
をホームディレクトリに持ってきて

tar zxvf bsfilter-1.0.4.tgz
cd bsfilter-1.0.4/bsfilter
cp -p bsfilter ~/

次に当面のスパムメイルパターン・クリーンメイルパターンを学習させておきます。

事前準備としてSPAMと言うフォルダをimap4サーバに作っておいて、日頃からメンテナンスしている事を前提としています。(inboxはクリーンな状態であること。)

~/Maildir/cur/*
にあるクリーンメイル(非スパム)を

./bsfilter -c ~/Maildir/cur/*

と学習させ

スパムメイル学習は

./bsfilter -s Maildir/.SPAM/cur/*

とします。curと言うぐらいだからとりあえず全て既読にしておくこと。

他に

http://www.flcl.org/~yoh/spam9xxxx.tar.gz
spamをかき集めたデータもあるので

cd ~
mkdir spamexamples
cd spamexamples
fetch http://www.flcl.org/~yoh/spam9xxxx.tar.gz
tar zxvf spam9xxxx.tar.gz

./bsfilter -s spamexamples/*
とやって勉強をさらにしてもらいます。

次に

./bsfilter -u
でデータベースをアップデートして、さしあたっての準備は完了。

方針として
・クリーンなメールは通常通り ./Maildir/以下に格納
・SPAMの疑いのあるものは SPAMディレクトリに押し込める。(~/Maildir/.SPAM/以下)
・誤認逮捕されたメイルは ./Maildir/cur/以下に手動で移してあげて再度
 クリーンDBに学習させる。
・捕捉できなかったものは ./Maildir/.SPAM/cur/以下に移動しておいて
 さらに学習させる。

と言うようにします。

~/.qmailに

| /var/qmail/bin/condredirect アカウント名-spam /home/アカウント名/bsfilter
./Maildir/

~/.qmail-spam に
./Maildir/.SPAM/

と書いておいけば作業終了です。

あとは学習の日々(メンテ)となるのですが、

./bsfilter -c Maildir/cur/*
./bsfilter -s Maildir/.SPAM/cur/*
./bsfilter -u

をcronで回せば良いような気もしますが、とてもお利口なフィルタなので上記を手動でやらせるだけで満足しています。