毎日(特に週末に)死ぬほど来る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で回せば良いような気もしますが、とてもお利口なフィルタなので上記を手動で
やらせるだけで満足しています。