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 シリーズはそこそこ造りの質は良いのに、日本語な情報が少なくて難儀しています。

2005/11/22(火)IE 5.5/6.0 に Javascript の脆弱性

 参照 → http://www.jpcert.or.jp/at/2005/at050010.txt
 「脆弱性」とは何かというと、一言で言えば「貴方のコンピュータが乗っ取られる」ことです。
 実は、最近、拡販目的を視野に入れた、やや高機能なショッピングカートなCGI作ったんですが、
 そのときに Javascript を使うか、サーバサイドで CGI 使うか、で結構悩んでいたのです。
 どちらも一長一短があるので。
 結局、セキュリティ的な問題が小さくなると思われる、CGI 形式にしたのです。
 とりあえずは、良かったですつーか。

2005/07/26(火)Windows 98 と Windows 98SE

 Windows98 にはこのように2つのバージョンが存在します。
 SE は Second Edition の略。見た目ほとんど変わらないですが、周辺機器のドライバーソフトとなると、話がちょっと違います。
 さらに今では、 Windows 98 というと、 Windows98SE のことを指すらしい。仕方なく使っている身にはもの凄く不親切。
 Windows 98 では対応できていたのに、 Windows 98SE だ不具合が出るというものがいくつかありました。
 嵌ったのはLANカード。〔Laneed LD-10/100AL〕

 ドライバに問題があるのが判明するまで3時間ほど。メーカのサイトにその情報は皆無で、2ch で発見した始末。
 しかも5年前のもの。しかも生産終了品のようで、これもいつ完全にサポート打ち切りになるか判りません。
 こんな非効率な作業をいつまで強いられるのでしょうか。。

2005/07/23(土)どうやっても書いてくれない

 BlogPet には、記事を書かせる機能がありますが、当然(?) のことながらこの tDiary は公式には非対応。
 しかしながら、ここ みたいに、成功している方もいらっしゃるようなので、出来ないことはないだろうと、
 いろいろいじってみたんですが。。。
 xmlrpc ライブラリ(?)と、metaWeblog.newPost なるAPI さえあればいいということで、
 google で探しまくってプラグインなんぞ置いてみたですが。。
 blogpet 側からは Request は来て、サーバ側で コード 200 を返す(正常終了)ので、おそらく、tdiary 側の実装か設定の問題。
 しかし、どこにも情報を吐かないので、内部で何が起きているのかさっぱり判りません。
 BlogPet に tdiary に記事や突っ込みを書かせる。
 密かに期待している人多いのでは?
 tdiary 開発コミュニティを見る限り、結構この手の話題は嫌がられてるようで、
 個人的には「要望を出す」という気にもなれないですが(爆)