2005/12/13(火)SpamAssassin 3.1.0

 おそらく、もっとも知られている電子メール spam フィルタです。
 だいぶ改良はされてきたようですが、日本語の電子メールに関する spam 認識精度の評価はそんなに良くないようです。

 ですが、実際に実験(18時間ほど経過しています 12/13 22:20)してみると、
 spam な電子メールの7割ほどは確実に spam として認識しています。
 すり抜けはありますが、誤認識(spam でないものを spam と認識する)は今のところ全くありません。
 SpamAssassin は、spamc/spamd のペアで動作する spam チェックデーモンとしての動作が可能なので、
 サーバ負荷(オーバヘッド)を減らすためにこれを採用。
 perl がシステムにインストールされていれば、

perl -MCPAN -e shell

 の後、

install Mail::Spamassassin
install Net::DNS
install Mail::SPF::Query

 で spamassassin 本体と一緒にインストールされます。
 Net::DNS と Mail::SPF::Query は spamd が必要とするようです。
 今回は、サーバ負荷軽減のため、spamd を使います。spamd は、こんな感じで起動。
 バーチャルドメインを扱う場合、このようにするとよいでしょう:

/usr/local/bin/spamd -u spamd -d -c -l -r /var/run/spamd/spamd.pid -x --virtual-config-dir=/var/mail/%d/%l/spamassassin/spamd


 SpamAssassin も完全な spam フィルタ(というか、完全なものはあり得ない)ではないので、
 spam なのに spam でないと判定されたり、その逆もあります。
 そのような場合、多くの Web サイトや blog には、

sa-learn --spam -u user@domain filename (spam でないと誤認識したものを spam だと学習させる)
sa-learn --ham -u user@domain filename  (誤ってspam と認識したものを spamでないと学習させる)

  のような形式で、手動学習させるように man sa-learn には書かれていますが、実際は全く期待通りに機能しません。
 実際は、

spamc -L spam -u user@domain < filename (spam でないと誤認識したものを spam だと学習させる)
spamc -L ham -u user@domain < filename  (誤ってspam と認識したものを spamでないと学習させる)

 のようにします。これで、spam フィルタ機能盛り込みの目処が立ちました。

2005/12/12(月)Courier-Maildrop と バーチャルドメイン運用な Postfix の連携

 基本はここです → Postfix + Maildrop Howto 〔Postfix のぺーじ〕
 ウチでは、FreeBSD 5.4上で稼働させ、LDAPでユーザ管理やっていますが、同じように応用できました。
 Maildrop は procmail 同様、ローカルメールサーバで使うメールフィルタですが、
 バーチャルドメインの扱いなどが、procmail よりやりやすいので、こちらを採用。

 入手は → こちら のページの下の方から。現行最新バージョンは 2.0.1 です。
 Courier シリーズなソフトなので、他のソフト、例えば有名な Courier-IMAP と同様、
 一般ユーザでコンパイルまで行い、インストールを root ユーザで行います。
 こんな感じで作業を行います。必要ないオプションもあるかもしれません(爆)
 
 % setenv CPPFLAGS -I/usr/local/include
 % setenv LDFLAGS '-L/usr/local/lib -L/usr/lib -L/lib'
 % tar xvyf maildrop-2.0.1.tar.bz2
 % cd maildrop-2.0.1
 % ./configure --prefix=/usr/local/courier
                --with-etcdir=/usr/local/courier/etc
                --enable-maildrop-gid=mailuser
                --enable-trusted-users=vmail
                --enable-trusted-groups=mailuser
                --enable-syslog=1
                --disable-tempdir
                MAKE=gmake
 % gmake
 % su
 # gmake install-strip
 # gmake install-man
 # cd /usr/local/courier/bin
 # chmod 4755 maildrop
 # chmod 4755 lockmail

 
※注意:事前に courier-authlib と pcre ライブラリのインストールが必要です。
    ./configure の部分は見やすいように、複数行にて記述しているが、実際は、改行せずに1行で入力。
    ユーザ名・グループ名・ディレクトリは実際のマシンに合わせて適切に変更すること。

 trusted ユーザIDの設定を行わないと、エラーになって配送しません。
 chmod にて setuid しておかないと、エラー 0x06 になり、これも配送されません。
 しかしまぁ、Courier シリーズはそこそこ造りの質は良いのに、日本語な情報が少なくて難儀しています。