メールサーバ †Postfix+procmail でメール受信および転送を行っていましたが、ここ1〜2年スパムが酷く、クライアント側でのスパム対策ではつらくなってきたので、サーバ側でスパムフィルターを実行します。 で、bsfilterを導入 仕掛け †構成的に、procmail から bsfilter を呼ぶようにします。 ダウンロードして展開 ほんでもって配置 †http://sourceforge.jp/projects/bsfilter/files/ よりbsfilterをダウンロードします。 # tar xvfz bsfilter-1.0.16.tgz で展開します。(bsfilter-1.0.16.tgz) パスの通っている場所に「bsfilter/bsfilter」を配置とあるので # cp ./bsfilter-1.0.16/bsfilter/bsfilter /usr/sbin/ とします。 # chmod 777 /usr/sbin/bsfilter 勉強させます。 †mail boxを利用しているユーザになって $ /usr/sbin/bsfilter --add-clean ~/Maildir/cur/* でclean mailを勉強させます。 Maildir形式なので上記のようなフォルダに対して勉強させます。 続いてspamメールを勉強 $ /usr/sbin/bsfilter --add-spam ~/Maildir/.Junk/cur/* -bash: /usr/sbin/bsfilter: /usr/bin/env: bad interpreter: 引数リストが長すぎます ・・・困りました。どうもspmaが多すぎるようです。 $ /usr/sbin/bsfilter --add-spam ~/Maildir/.Junk/cur/* $ /usr/sbin/bsfilter --update これで、とりあえず準備完了。(もちろん --add--spam は後ほどJunkがある程度たまってから再度実行します。) procmail で処理します。 †「~/.procmailrcから呼ぶときのサンプルレシピ」から以下のような設定をします。 :0 fw | /usr/sbin/bsfilter --pipe --insert-flag --insert-probability :0 * ^X-Spam-Probability: *(1|0\.[89]) Maildir/.Junk/cur/. #:0 #* ^X-Spam-Probability: *0\.[67] #gray/. 完全blakの場合のみJunk行き。 結果 †X-Spam-Flag: Yes X-Spam-Probability: 1.000000 ヘッダが更新され、blakレベルだとちゃんとJunkに移動しています。 spam のお勉強をcronで †shellを作ってcronに登録しておきます。 #!/bin/bash echo hoge start su - hoge -c '/usr/sbin/bsfilter --add-spam ~/Maildir/.Junk/cur/*' su - hoge -c '/usr/sbin/bsfilter --update' と思ったらPermission denie ってlogが・・・・cronの実行権限の見直しが必要ですね・・・・ /bin/sh: line 1: /bat/bsfilter.sh: Permission denie 参考 † |