#contents();
*** インストール [#rcb352f5]
- &ref(bsfilter-1.0.15.tgz); を /root/Download の下に展開し、/root/Downloads/bsfilter-1.0.15/bsfilter を /usr/local の下にコピー
- 更に /usr/local/bsfiler/bsfilter を /usr/local/bin にシンボリックリンクする
- ruby は元々インストール済みだったので、これで bsfiler が起動可能になった

 [root@spirit bin]# ls -l bsfilter
 lrwxrwxrwx  1 root root 28 10月 22 13:00 bsfilter -> /usr/local/bsfilter/bsfilter

*** インストール (追加 ・・・ 環境変数などの設定) [#bab97562]
- アカウント間で SPAM データーベース、ロックファイルなどを共有させるため /etc/bsfilter を利用する

 [root@spirit ~]# mkdir /etc/bsfiler
 
 [root@spirit ~]# vi /etc/profile
 export BSFILTERHOME=/etc/bsfilter ・・・・ を追加
 
 [root@spirit ~]#  source /etc/profile   ・・・・  環境変数を反映する
- /etc/bsfilter に bsfilter.conf を作成する

 [root@spirit ~]# cat /etc/bsfilter/bsfilter.conf
 homedir /usr/local/bsfilter
 pipe
 header-prefix BSFILTER
 insert-revision
 insert-probability
- &color(red){学習処理を行うと /usr/local/bsfilter の下に共通データベースファイルが生成された};

 [root@spirit ~]# ls -al /usr/local/bsfilter/
 合計 4480
 drwxr-xr-x   2 root root    4096 11月  4 12:18 .
 drwxr-xr-x  23 root root    4096 10月 22 12:58 ..
 -rw-------   1 root root    4096 11月  4 12:17 C.clean.sdbm.dir
 -rw-r--r--   1 root root       0 11月  4 12:18 C.clean.sdbm.lock
 -rw-------   1 root root   32768 11月  4 12:17 C.clean.sdbm.pag
 -rw-------   1 root root    4096 11月  4 12:18 C.prob.sdbm.dir
 -rw-r--r--   1 root root       0 11月  4 12:18 C.prob.sdbm.lock
 -rw-------   1 root root  521216 11月  4 12:18 C.prob.sdbm.pag
 -rw-------   1 root root    4096 11月  4 12:17 C.spam.sdbm.dir
 -rw-r--r--   1 root root       0 11月  4 12:18 C.spam.sdbm.lock
 -rw-------   1 root root  259072 11月  4 12:17 C.spam.sdbm.pag
 -rwxrwxrwx   1 root root  103434 10月 22 12:58 bsfilter
 -rwxrwxrwx   1 root root 1347584 10月 22 12:58 bsfilter.exe
 -rwxrwxrwx   1 root root    3019 10月 22 12:58 bsfilter.exr
 -rwxrwxrwx   1 root root 1347584 10月 22 12:58 bsfilterw.exe
 -rw-------   1 root root    4096 11月  4 12:17 ja.clean.sdbm.dir
 -rw-r--r--   1 root root       0 11月  4 12:18 ja.clean.sdbm.lock
 -rw-------   1 root root  506880 11月  4 12:17 ja.clean.sdbm.pag
 -rw-------   1 root root    4096 11月  4 12:18 ja.prob.sdbm.dir
 -rw-r--r--   1 root root       0 11月  4 12:18 ja.prob.sdbm.lock
 -rw-------   1 root root 1045504 11月  4 12:18 ja.prob.sdbm.pag
 -rw-------   1 root root    4096 11月  4 12:17 ja.spam.sdbm.dir
 -rw-r--r--   1 root root       0 11月  4 12:18 ja.spam.sdbm.lock
 -rw-------   1 root root   57344 11月  4 12:17 ja.spam.sdbm.pag
- &color(red){データーベースを共通に利用することにしたので、Other に対してアクセス権を付与しないとスキャン時にエラーになる。 一度ファイルができたら ファイルのパーミションを変更しておく};

 [root@spirit ~]# cd /usr/local/bsfilter/
 [root@spirit bsfilter]# chmod 666 C.*
 [root@spirit bsfilter]# chmod 666 ja.*
 [root@spirit bsfilter]# ls -l
 合計 4468
 -rw-rw-rw-  1 root root    4096 11月  4 12:17 C.clean.sdbm.dir
 -rw-rw-rw-  1 root root       0 11月  4 12:18 C.clean.sdbm.lock
 -rw-rw-rw-  1 root root   32768 11月  4 12:17 C.clean.sdbm.pag
 -rw-rw-rw-  1 root root    4096 11月  4 12:18 C.prob.sdbm.dir
 -rw-rw-rw-  1 root root       0 11月  5 10:53 C.prob.sdbm.lock
 -rw-rw-rw-  1 root root  521216 11月  4 12:18 C.prob.sdbm.pag
 -rw-rw-rw-  1 root root    4096 11月  4 12:17 C.spam.sdbm.dir
 -rw-rw-rw-  1 root root       0 11月  4 12:18 C.spam.sdbm.lock
 -rw-rw-rw-  1 root root  259072 11月  4 12:17 C.spam.sdbm.pag
 -rwxrwxrwx  1 root root  103434 10月 22 12:58 bsfilter
 -rwxrwxrwx  1 root root 1347584 10月 22 12:58 bsfilter.exe
 -rwxrwxrwx  1 root root    3019 10月 22 12:58 bsfilter.exr
 -rwxrwxrwx  1 root root 1347584 10月 22 12:58 bsfilterw.exe
 -rw-rw-rw-  1 root root    4096 11月  4 12:17 ja.clean.sdbm.dir
 -rw-rw-rw-  1 root root       0 11月  4 12:18 ja.clean.sdbm.lock
 -rw-rw-rw-  1 root root  506880 11月  4 12:17 ja.clean.sdbm.pag
 -rw-rw-rw-  1 root root    4096 11月  4 12:18 ja.prob.sdbm.dir
 -rw-rw-rw-  1 root root       0 11月  5 10:53 ja.prob.sdbm.lock
 -rw-rw-rw-  1 root root 1045504 11月  4 12:18 ja.prob.sdbm.pag
 -rw-rw-rw-  1 root root    4096 11月  4 12:17 ja.spam.sdbm.dir
 -rw-rw-rw-  1 root root       0 11月  4 12:18 ja.spam.sdbm.lock
 -rw-rw-rw-  1 root root   57344 11月  4 12:17 ja.spam.sdbm.pag

- &color(red){その後 .procmail 内のフィルター処理で --update をつけてデータベースの更新をさせた場合に procmail のレシピの中で明示的に /usr/loca/bsfilter の場所を指定しないと ($BSFILTERHOME に bsfilter.conf を設定していても) 各ユーザーディレクトリ下に .bsfilter が作られてしまうことが判った};
*** 初期設定(学習) [#m13db0ad]

 [root@spirit ~]#  bsfilter --add-spam  /home/munakata/Maildir/.INBOX.spam/cur/*
 [root@spirit ~]#  bsfilter --add-spam  /home/public_mail/Maildir/.INBOX.spam/cur/*
 [root@spirit ~]#  bsfilter --add-clean  /home/munakata/Maildir/cur/*
 [root@spirit ~]#  bsfilter --add-clean  /home/public_mail/Maildir/cur/*
 [root@spirit ~]#  bsfilter --update

*** /home/munakata/.procmailrc に bsfilter 実行と結果判定文を追加 [#gd6139e6]

 [root@spirit ~]# cat /home/munakata/.procmailrc
 PATH=/bin:/usr/bin:/usr/local/bin
 MAILDIR=$HOME/Maildir
 DEFAULT=$MAILDIR/
 LOGFILE=/home/munakata/log/procmaillog
 #LOCKFILE=$HOME/.lockmail
 SPAM=$HOME/Maildir/.INBOX.spam/
 VERBOSE=OFF
 
 ## scan 2nd SPAM filter ( bsfilter )
 :0 fw
 * ! ^Subject:.*SPAM [#c3864d17]
 | /usr/local/bin/bsfilter --homedir /usr/local/bsfilter --pipe --insert-revision --insert-flag --insert-probability --header-prefix BSFLTR --mark-spam-subject --spam-subject-prefix '*** BSFLTR *** :'
 
 # Reject [SPAM] marked mail
 :0:
 * ! ^From: .*@(renesas|hsdv|hmuna).com [#n88eee63]
 * ^Subject:.*SPAM [#tf049ecd]
 $MAILDIR/.INBOX.spam/cur
 
 # 2ndery SPAM collection by BSFILTER probability
 :0
 * ! ^From: .*@(renesas|hsdv|hmuna).com [#p4c85bb5]
 * ^X-BSFLTR-Probability: *(1|0\.[789]) [#l11e8a40]
 $MAILDIR/.INBOX.spam/cur
 
 # Reject [SPAM] doubtful mail
 :0:
 * ! ^From: .*@(renesas|hsdv|hmuna).com [#uf026dc6]
 * ^X-Spam-Level: [******* ******** ********* ********* **********] [#p7ea80e3]
 $MAILDIR/.INBOX.spam.doubt/cur
 
 :0
 * ! ^From: .*@(renesas|hsdv|hmuna).com [#j4b54d48]
 * ^X-BSFLTR-Probability: *(0\.[67]) [#pc65c98e]
 $MAILDIR/.INBOX.spam.doubt/cur
 
 ## Copy SH-Linux CVS patch
 #:0:
 #* ^To: .*linuxsh-cvs@lists.sourceforge.net
 #$MAILDIR/.INBOX.&MOowyjDDMK8wuQ- &laKQIw-.SH-Linux &laKQI207UtU-.Linux-SH ML/
 
 
 ## create C/C to headline account
 # except over 5000 and/or SPAM signed
 :0 c:
 * < 5000 [#l1e25260]
 * ! ^Subject:.*SPAM [#ee9643b2]
 ! headline@hmuna.com
 
- &color(red){(デバッグ中)--insert-flag を付けずに --insert-probability だけ付けた時には確立がゼロ固定になってしまう?};
*** 自動学習 [#rbec5593]
- Spamassasin が誤判定した内容を bsfilter に SPAM として学習させる
- amavsdnew が見逃した SPAM を学習用に保存した内容も SPAM として学習させる
- カレントフォルダーの既読メールは ham(clean) とし学習させる
- この処理を Spamassasin の学習処理にリンクさせて cron で実行する
-- /crontab -e -u public_mail

 # SPAM Assassin study
 30 */12 * * * /usr/bin/sa-learn --spam /home/public_mail/Maidir/.INBOX.spam.spam/cur > /dev/null 2>&1
 33 */12 * * * /usr/bin/sa-learn --ham /home/public_mail/Maildir/.INBOX.spam.ham/cur > /dev/null 2>&1
 
 34 */12 * * * /usr/loacl/bin/bsfilter --add-spam /home/public_mail/Maildir/.INBOX.spam.spam/cur/* > /dev/null 2>&1
 35 */12 * * * /usr/loacl/bin/bsfilter --add-spam /home/public_mail/Maildir/.INBOX.spam/cur/* > /dev/null 2>&1
 36 */12 * * * /usr/local/bin/bsfilter --add-clean /home/public_mail/Maildir/cur/* > /dev/null 2>&1
 37 */12 * * * /usr/local/bin/bsfilter --update > /dev/null 2>&1
 
 38 */12 * * * /bin/rm -f /home/public_mail/Maildir/.INBOX.spam.spam/cur/*
 39 */12 * * * /bin/rm -f /home/public_mail/Maildir/.INBOX.spam.ham/cur/*

-- crontab -e -u munakata

 # SPAM Assassin / bsfilter SPAM database automatic study
 40 */12 * * * /usr/bin/sa-learn --spam /home/munakata/Maidir/.INBOX.spam.spam/cur > /dev/null 2>&1
 42 */12 * * * /usr/bin/sa-learn --ham /home/munakata/Maildir/.INBOX.spam.ham/cur > /dev/null 2>&1
 
 # bsfilter SPAM / CLEAN trainig
 43 */12 * * * /usr/loacl/bin/bsfilter --add-spam  /home/munakata/Maildir/.INBOX.spam.spam/cur/* > /dev/null 2>&1
 44 */12 * * * /usr/loacl/bin/bsfilter --add-spam  /home/munakata/Maildir/.INBOX.spam/cur/* > /dev/null 2>&1
 45 */12 * * * /usr/local/bin/bsfilter --add-clean --verbose /home/munakata/Maildir/cur/* > /dev/null 2>&1
 46 */12 * * * /usr/local/bin/bsfilter --update > /dev/null 2>&1
 
 # delete informative message
 48 */12 * * * /bin/rm -f /home/munakata/Maildir/.INBOX.spam.spam/cur/*
 49 */12 * * * /bin/rm -f /home/munakata/Maildir/.INBOX.spam.ham/cur/*

*** データーベースへの登録状況を確認(--show-db-status) [#z93fb593]

 [root@spirit cur]# bsfilter --show-db-status
 db C 972 5 14291 240 14760
 db ja 8450 34 1955 45 9708

*** 学習成果の確認(--export-probability) [#l43854e7]
-  学習した token 毎の確率を確認できる ・・・ 学習成果の検証

 [root@spirit cur]# bsfilter --export-probability
  (snip)
 ja subject 約成 0.999149
 ja cc 憲正 0.000147663
 ja body 目標 5.91219e-06
 ja body 以外 0.0642792
 ja body Site 7.38684e-05
 ja body 相手 0.907543
 ja body 任感 7.38684e-05
 ja body 記憶 0.000147663
 ja body 超音 0.000147663
 ja body on 1.23165e-05
 ja body 値観 0.000147663
 ja body リニューアルキャンペーン 7.38684e-05
 ja body 8.906 0.000147663
 ja body Parker 2.11128e-05
 ja from COM 0.999574
 ja from cn 0.999787
 ja tag name 0.401758
 ja return-path po 0.000147663
 ja body jffs2 0.000147663
 ja body ポケモンバトルレボリューション 4.92538e-05
 ja body ID 0.430239
 ja body 飾皿 7.38684e-05
 ja body Fred 7.38684e-05
 ja body ターゲット 2.11128e-05
 ja body 有難 0.999149
  (snip)

*** spamassin ではすり抜けた SAPM を bsfilter が検出した例 (すばらしい!) [#ab16010c]

&ref(bsf_001.JPG);~
- &color(red){spamassin が見逃した SPAM を bsfilter が検出した時には 件名に "*** BFFLTR ***" を挿入するようにした (有効に効いているのが判る)};~

&ref(bsf_002.JPG);

*** SPAM メールの検証 ( bsfilter -d = デバッグモード) [#v053c9f1]
- トークン分解と単語毎のスコア、メール全体のスコアを確認することができる) 

 [root@spirit cur]# bsfilter -d 1162067028.8265_1.spirit.hmuna.com:2,Sd
 lang ja header char_ja
 tokenizer content-transfer-encoding 7bit
 tokenizer reply-to WEWEWEW
 tokenizer reply-to HOTMAIL
 tokenizer reply-to COM
 tokenizer return-path WEWEWEW
 tokenizer return-path hsdv
 tokenizer return-path com
 tokenizer content-type text
 tokenizer content-type plain
 tokenizer from WEWEWEW
 tokenizer from WEWEWEW
 tokenizer from HOTMAIL
 tokenizer from COM
 tokenizer charset iso
 tokenizer charset 2022
 tokenizer charset jp
 tokenizer subject !!
 tokenizer subject 本気
 tokenizer subject 貴方
 tokenizer subject 逢
 tokenizer to munakata
 tokenizer to hsdv
 tokenizer to com
 tokenizer received from
 tokenizer received unknown
 tokenizer received HELO
 tokenizer received pc36
 tokenizer received 222.160.111.154
 tokenizer received by
 tokenizer received 115.8.221.202
 tokenizer received ts
 tokenizer received 2iij
 tokenizer received net
 tokenizer received with
 tokenizer received SMTP
 lang ja jis
 tokenizer C body 10
 tokenizer C body !
 tokenizer url http
 tokenizer url sonice
 tokenizer url info
 tokenizer url h
 tokenizer ja body 情報
 tokenizer ja body 月号
 tokenizer ja body 号寂
 tokenizer ja body 屋
 tokenizer ja body 彼女
 tokenizer ja body 貴方
 tokenizer ja body 待
 tokenizer ja body エクスプレス
 word probability reply-to COM 1 0.999574
 word probability reply-to HOTMAIL 1 0.999574
 word probability reply-to WEWEWEW 1 0.147811
 word probability return-path com 1 0.225163
 word probability return-path WEWEWEW 1 0.147811
 word probability return-path hsdv 1 0.000007
 word probability body 彼女 1 0.147811
 word probability body 貴方 1 0.999943
 word probability body 屋 1 0.147811
 word probability body エクスプレス 1 0.147811
 word probability body 月号 1 0.000011
 word probability body 情報 1 0.042556
 word probability body 10 1 0.081634
 word probability body 号寂 1 0.147811
 word probability from COM 1 0.999574
 word probability from HOTMAIL 1 0.999574
 word probability from WEWEWEW 2 0.147811
 word probability url info 1 0.274151
 word probability url sonice 1 0.147811
 word probability url h 1 0.147811
 word probability subject 本気 1 0.147811
 word probability subject !! 1 0.999716
 word probability subject 貴方 1 0.999149
 word probability subject 逢 1 0.147811
 word probability to hsdv 1 0.786942
 word probability to munakata 1 0.624364
 word probability received SMTP 1 0.830812
 word probability received HELO 1 0.886437
 word probability received 115.8.221.202 1 0.999973
 word probability received 2iij 1 0.999973
 word probability received pc36 1 0.147811
 word probability received net 1 0.964517
 word probability received ts 1 0.999973
 word probability received 222.160.111.154 1 0.147811
 word probability received unknown 1 0.808030
 combined probability 1162067028.8265_1.spirit.hmuna.com:2,Sd 1 0.500192 

*** 参考 URL [#a0e3c138]
- [[bsfilter 本家:http://bsfilter.org/]]

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