twadaの日記: NNIPF0.06-releaseを作りました. 10
日記 by
twada
NNIPFのリリース版ができました.
* MTAOBの評価方法を変え,by偽造の影響を受けないようにした.
* マスターBIP,GIPを導入し,ユーザは個人のBIP/GIPが持てるようにした.これで,大規模ユーザを対象とした運用が行なえる筈です.
* MTAOBやBIP,GIPの登録や削除,IPアドレスの弁別度計算,などがWEB上で行なえるようにした.
* WEB経由でメイルの内容を表示する際にMTAOBや識別に用いたIPアドレスが分かるようにした.また,そこからIPアドレスのチェックや,MTAOBの変更などが行なえるようにした.
NNIPFのWEBページにアクセスしたIPアドレスをhttpdのログから拾い,弁別度を計算したところ,少なくとも約4%がほぼ確実にスパマーという結果でした.ある意味で,大変感心しました.
既に使われている人は分かっていると思いますが,このスパムフィルタはちょっとトレーニン
グするだけで,絶大な効果を発揮し,あとは放っておいてもフィルタリングをしながら自動的に
ある程度の学習もします.
ですが,より精度を高めるには1日に1度以上WEB経由でチェックをして下さい.
よろしくお願いします.
追伸:23日の23時以前にダウンロードされた1名の方,Makefileに問題のあるバージョンでした.もう一度ダウンロードして下さい.
レポートなど (スコア:1)
…が、こちらの環境では正常に動作させることができませんでした。当方はpostfix + Courier-IMAPの組み合わせです。
1. chk.cgiでdecode('Guess',$Sfrm{$i})での判別がうまく行かずshiftjis or euc-jpといったメッセージを吐いて止まってしまいます。これは のようなものを付け加え、Guessしているところは全てこれを使うように変更してとりあえず凌ぎました。
2. Maildirはそのユーザからしか読めないため、おそらくhttpdにmod_suexecを組み込まないとパーミッションの関係でうまく動かないものと思われます。あるいは別の方法があるのかもしれませんが、いずれにせよそのあたりの記載がほしいところです。なおsuexecを使う場合chmod go-w . *.cgiなどをしておかないと動きません(makeしたときのumask次第)。
3. .htpasswdはデフォルトのパーミッションのままだとhttpdが読めないものと思われます。chmod 604 .htpasswdが必要です。
4. とりあえず.forwardの設定などは後回しにしてchk.cgiにアクセスしてみると一応正常に表示されました。しかし、そこでAddGIPなどの選択を行って実行ボタンをクリックするとInternal Server Errorとなります。error_logを見ると
/home/username/Maildir/trash/1177386685.11538_0.mail.example.jp:2,S: No such file or dir
ectory at PERL/header.pl line 157., referer: http://mail.example.jp/~username/NNIPF/chk.cgi [example.jp]
といった記録がありました。
このあたりで今日はリタイアしました。
Re:レポートなど (スコア:1)
和田
Re:レポートなど (スコア:1)
最後の点はやはり直っていませんでしたが、若干ソースを眺め、chk.cgiの99行目付近の を に書き換えると一応それらしい動きをするようになった気がします。しかし正しいかわかりません。
Re:レポートなど (スコア:1)
ですが、うちでは
$RCV=HEADER::rvf("$CUR/$name");
に書き換えました。
画面上の、curの処理から来ているようでしたので。
あと、IPv6のIPv4マッピング対応に
PERL/header.pl
の112~113行を
if ($str =~ /.*\[(::ffff:)?([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)\].*/) {
$OIP =$2;
に変えてみました。
正式には、これで良いのかどうかは分かりませんが・・・
本当にIPv6で運用してたらアウトなんでしょうけどウチではこれで動いているようです。
Re:レポートなど (スコア:1)
ありがとうございます.
マスターBIP (スコア:1)
マスターBIP(のみ)に入っているIPアドレスに対してCONSOLEからAddGIPするとエラーが発生します(IpDictAddExclusiveから呼ばれるIpDictRemoveでエラーになっているものと思われます)。マスターGIP/BIPと矛盾する登録でもできるようにするのが理想的かと思われますが、ややこしくなりそうなので、差し当たりマスターBIPに入っているものはcurの一覧に出さず、AddGIPできないようにする等の対処も考えられます。
Re:マスターBIP (スコア:1)
和田
0.08について (スコア:1)
改めて使ってみたところ、以下の点に気づきました。
1. Boundary記載のアドレスがSPAM CONSOLE画面でAddGIP/SPAM選択の対象として検出されてくることがあります。Boundaryに記載されているアドレスは常に弁別度0%と扱った方がいいのではないでしょうか。
2. SPAM CONSOLE画面ではSubject行の漢字が全然うまく表示されないが、SHOW MAIL画面では全部又は先頭部分の一部がうまく表示されるメールがあります。以下のようにMIMEエンコードが文字列の途中から始まっている場合にこうなるようです。 当方では、chk.cgiの436行目などで、Subjectの先頭が=?だった場合にのみMIMEエンコードからの変換を掛けるようにしているif文を削除してみました。ただ、これだけだとSHOW MAIL画面の方ではSubject行が上の例のように複数行になっている場合に先頭行の分しか漢字で表示されないという問題が残ります。
3. SPAM CONSOLE画面は180秒でRefreshするようになっているようですが、私の環境では、当初1000通近くのメールを分類しなければならないので、若干気が焦ります。Refreshがかかったときに、ラジオボタンの状態もリセットされてしまうとは限らないようですが、状態が保存されるのが保証されているというわけでもなかろうかと思いますので、自動ではRefreshしない方がいいかもしれません。
なお、本当は少しずつ分けて登録できるようだといいのですが。
本業の方もお忙しいかと思いますので、あまり負担にならない程度に進めていっていただければと思います。
通りすがり (スコア:0)
releaseはこれから使わせてもらいます。
初めから同梱されてきているCONF/conf.plなのですが
main'T2の設定が恐らくミスっています・・・
T1を2回設定しています。
あと、効果がないという人はBoundaryの設定を
間違っている可能性があるのではないでしょうか。
Boundaryが間違っていると、
OIPが取れなくてGood判定になってしまうことがありました。
procmailとの相性では、
フィルタ動作にして、ヘッダに結果を埋め込めば便利なので
私の所では、filter.plを改造してヘッダに
X-NNIPF-Status: (Bad|Maybe Bad|Unknown|Almost Known|Good)
X-NNIPF-Ratio: 0~100
X-NNIPF-IP: OIP
を埋め込むようにしました。
Re:通りすがり (スコア:1)