モーグルとカバとパウダーの日記 - スパムが出されやすいIPアドレスを判定するスパムフィルタ
で書いたNNIPFについて、いくつか改良案を考えました。
ポリシーデーモン化
Postfixから利用しやすくして、また呼び出し時のオーバーヘッドを避けるため、デーモン化してポリシーサーバにするのがよいのでは、と思います。
こうしてしまえば、現在はIPのファイルベースで管理しているのをdbmやデータベース使って動かすように変更しても問題ないと思います。
SpamAssassinと組み合わせて自動学習
NNIPFではスパムの判定を学習させる必要があり、そのためにWebインターフェイスも準備されていますが、めんどくさいのでなるべく自動学習させられればなあ、と思います。
そこで、コンテンツフィルタ、具体的にはSpamAssassinの結果を使って、spamやhamを教えてやれば良いだろう、と思いました。
ブラックリスト/ホワイトリストのIPをデータベースで管理してれば、その辺も簡単に実装できると思います。
パッチで書くとメンテが必要になってしまうので、spampdへのラッパーのようなものを作れば良いかな?
Rgrey/taRgreyでホワイトリストとしての利用
taRgreyなどで、S25Rの代りにNNIPFでの判定を使う、という利用方法も考えられますが、それよりもホワイトリストとしてNNIPFを使うというのが有効かな?と思っています。
- S25Rで怪しくないと判定→OK
- NNIPFで怪しくないと判定→OK
- tarpitting
- greylisting
- SpamAssassinの判定でNNIPFへ学習
という感じに掛けるわけです。
NNIPFをS25Rのオートホワイトリストとして使う、というようなイメージでしょうか。
まあでも、tarpittingもgreylistingも抜けられなかった場合にはSAまでも到達できないから、そういうものに対してはオートホワイトリストで救済することは出来ないのですが…