postfixでメールのお勉強をしてみる spamassassinでスパムを撃退

はい。ということでspamassassinを使ってみたいと思うんですが、全然知識がないので少し調べました。

spamassassinユーザの会: http://spamassassin.jp/

spamassassinはいわゆるオープンソースのパムフィルタリング(スパム判定)アプリケーションです。ベイジアンフィルタと呼ばれる技術を用いて今まで受けたメールからスパムかどうかを学習し、より判定のレベルを上げることができます。(いわゆる学習付きというやつですね。大学の研究室が研究の対象にしていたので私も輪講なんかで触りはやったことがあります。)

ということでたくさんメールを受けてスパムかどうか判定すればする程 (ちょっと嘘があると思うけど)、次に来るメールは正しく判定できるようになるってことですね。

ちなみに、さくらインターネットも導入しているようでホームディレクトリでls -aするとそれらしきものが現れます。

% ls -a

.spamassassin

またスパムフィルタにはオープンソースに限らずアプライアンスなんかもあります。

とかが有名ですかね。

まあうんちくはさておき、spamassassinを入れるとスパムと判定された場合、ヘッダーに「X-Spam-Flag: YES」をつけてくれるみたいです。
なので、procmail(http://www.jaist.ac.jp/~fjt/procmail.html)なんかを用いてspamと判定された場合は他のディレクトリに隔離するという処理を書けば振り分けが出来るようになるといった具合です。

しかし、これだとユーザ毎にスパムを学習させたり振り分けを考えたりしないといけません。そこで、MTAから直接spamassassinを使うためにmilter形式が使えるようです(といった類の記述がみあたらないのですが、たぶんそうだと思います)。Milterを使うとユーザに届ける前に特定ディレクトリに振り分けるといった処理ができるみたいです。誤判定とかあると当然まずいんですが(ユーザの目に触れる前に消えちゃうので)、ここはquarantine(隔離)というものが使えそうです。一旦ゴミ箱にいれておいて、隔離したメールをレポートするという仕組みですね。spamassasinにもあるのかないのかというとこですが、まあその辺は追々ということで。

まずは、procmailで振り分けるとこをやって見ようと思います。