#navi(Linux)
[[Linux/FedoraCore1]]
#contents

* メールサーバ [#wadd9db6]
Postfix+procmail でメール受信および転送を行っていましたが、ここ1〜2年スパムが酷く、クライアント側でのスパム対策ではつらくなってきたので、サーバ側でスパムフィルターを実行します。~

で、[[bsfilter:http://bsfilter.org/]]を導入~

* 仕掛け [#wd4f68e3]
構成的に、procmail から bsfilter を呼ぶようにします。~
bsfilter.org の通りです。

*ダウンロードして展開 ほんでもって配置 [#bad9662e]
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 

* 勉強させます。 [#jae8e9fe]
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が多すぎるようです。~
まぁどうせこれからも山ほどスパムはくるので、rmで全削除しちゃいました。((rm * でも「引数リストが長すぎます」でした。13万ファイル以上あったので・・・))

 $ /usr/sbin/bsfilter --add-spam ~/Maildir/.Junk/cur/*
 $ /usr/sbin/bsfilter --update

これで、とりあえず準備完了。(もちろん --add--spam は後ほどJunkがある程度たまってから再度実行します。)

* procmail で処理します。 [#yab397c6]
「~/.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行き。~
grayは受信箱に残しておきます。


* 結果 [#a3cb23c1]

 X-Spam-Flag: Yes
 X-Spam-Probability: 1.000000

ヘッダが更新され、blakレベルだとちゃんとJunkに移動しています。

* spam のお勉強をcronで [#qf389e19]
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


*参考 [#g5b0c9ca]
-http://bsfilter.org/

-http://centos.oss.sc/mail/bsfilter/

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS