SpamAssassin
■ このスレッドは過去ログ倉庫に格納されています
apache.orgの傘下になって、ますます勢いづくスパムメールの暗殺者 SpamAssassin これでSPAM業者を失業に追い込もう....... とまでには、まだまだ遠い道のりだよ(w 学習しろ!!学習しろ!!学習しろ!! sa-learn --spam --mbox /home/hiroyuki/mail/spam ハムをスパムと間違えないで、一生のお願いだから。 スパム業者の荒らしはスルーってことで。 おまいら、まったりとお願いします。 本家 ttp://spamassassin.apache.org/ 2005-06-06: SpamAssassin 3.0.4 released! キーワード local.cf user_prefs spamassassin ベイズ推定 ベイジアンフィルタ ホワイトリスト AWL bayes_journal auto-whitelist >>24 ハム3000通読ませたら、落ちたyo。ちょっとずつ読み込ませろ。 デーモンとしての動作なら大丈夫らしい。 ハムスパムの読み込ませは、パワーいると思う。 >>26 頼まれて作ったサイトの最初の学習用に、取れ立てspamを一気に 一万ファイル読ませたけど、大じょぶだーたよ。 途中で裏にまわしちゃったので、正確にはわからないけれど 一時間以上はかかったと思う。Debian Sarge/i386でRAM512MB、 SAは3.0.3。Maildir形式。 若干オフトピになるかもしれないけれど、参加者が いるかもしれないので聞いてみる。 RBL.JPのメーリングリストって活発ですか?。流量は?。 一時停止のお知らなどの運用状況『も』流れたりします?。 仕事でも個人でもspammerには頭来てるんで、暇な時は (RBL.JPとは他所のところに)spam報告してるんだけれど、 RBL.JPにも入ってみようかと思っているんだが、どんな様子なのだか、 聞いてみるテスツ。 qmail/qregexにspamassassin使ってます。 7月終わりからのこの一月半くらいで(51日)、 ブロックしたspamメールは 2238通。 うち、rblでブロックしたもの 664通 (30%) helo 時点でブロック 162通 ( 7%) badmailfrom でブロック 1123通 (50%) SpamAssassinブロック 289通 (13%) ですた。 一部あんまり煩い .tw/.kr/.cnは丸ごとパケット 捨ててる場合もあり。 >>29 > ブロックしたspamメールは 2238通。 ブロックしたのにどうやって spam だと判定するのですか? >>31 自分がわかってないのを認めるのが嫌だからって、人がわかっていないという レッテルを張るのはいかがなものか。 キチガイに馬鹿というレッテルを貼ったのは俺の間違いだったヨ。謝るよキチガイ。 >>33 わたしをキチガイ認定するとは浅はかな人ですね. >>38 アップデート対象 ClamAV 0.86.2 to 0.87 ・・・OK Razor2 2.67 to 2.72 ・・・OK SpamAssassin 3.0.1 to 3.1 ・・・NG プラグインエラーが出た use_razor2 1 ok_languages ja en プラグイン有効設定(v310.pre ファイル) Razor2 TextCat spamd 再起動 ・・・OK spamメールテスト ・・・OK SpamAssassin 3.1.0で、spamdではなくspamassassinをprocmailから呼んでます。 RelayCountryを生かしたいのですが、 init.preの loadplugin Mail::SpamAssassin::Plugin::RelayCountry を有効にしてもメールに X-Relay-Countries ヘッダがついてくれません。 何かほかに必要なことがあるのでしょうか? IP::Countryは入っています。 >>41 ttp://www.gossamer-threads.com/lists/spamassassin/users/16555?search_string=relaycountry;#16555 ありがとうございます。 > I don't believe the RelayCountry plugin adds anything visible to the > message. Ok, I didn't get that from the docs (such as they are). I expected the "X-Relay-Countries" header to be added to the message. そのURLの通りspamassassin -tD で実験したらちゃんとチェックしてくれていました。 trusted_networks にプロバイダの(secondaryを含む)メールサーバをちゃんと 書かないとあらゆるメールでJPが入ってしまうので書くべきだけど、 名前じゃなくアドレスで書かないとだめだしプロバイダのネットワーク全体を 許可するのも範囲が広すぎるし、というところがちょっと悩みどころですね。 私の使ってるプロバイダはspammerへの対応をちゃんとしてくれる方らしいので メールサーバなどのアドレスを含むネットワーク全体をtrustしてしまいましたが。 >>43 SAてのは、Emailのメッセージコンテンツで スパムかどうかを判断する、てのがやっぱ恐らく 本筋の使い方、ということなんじゃないすか。 オリジンやリレーで判断するならRBLsあたりで、 ベイジアンフィルタでは結局出現確率しか捉えられないんで、 人間が書いた規則を中心に色んな規則を含めて総合評価できるのがsaじゃないかと。 あとはルールのスコアも自動的に最適値を学習してくれるなら嬉しいんだけど。 マイニングしてルールを自動生成しろとまでは言わないから。 >>45 sa-learn --ham これで学習できるでしょ? cronで自動化はだめなの? 各ルールでのスコアを単純に加算するのではなく、それぞれがマッチした 場合の spam 確率を出し、それをまたベイズの定理で組み合わせるとか。 ベイジアンフィルタからの spam 度: 0.8 URIBL: 0.9 SPF SUCCESS: 0.3 となるメールからは sub mul { $r = 1.0; foreach (@_) { $r *= $_; } $r; } my @probs = (0.8, 0.9, 0.3); my $prod = mul(@probs); $prod / ($prod + mul(map { 1 - $_ } @probs)); => 0.939... と計算する。 んで、スコアが閾値以上・以下なら、それぞれのルールにフィードバック。 環境 redhat9 sendmail8.12.8-4 milter0.3.0-1.0 spamassassin3.10 質問させてください。 spamassassinでベイジアンフィルタを利用しています。 このベイジアンフィルタなのですが、サーバ単位でspam、hamメールを学習させていますが、 各ユーザ毎にham、spamの基準が違い(mailinglist等)、サーバ単位でなく、 各ユーザ単位でベイジアンフィルタの学習を行わせたいと考えています。 ユーザ毎にベイジアンフィルタのデータベースをbayes_seen、bayes_toksをもって、 自分の趣向に合わせてベイジアンフィルタに学習させるイメージです。 user_prefsがユーザ毎に設定できますが、これはヘッダや本文の条件、 ルールを設定できるだけででした。 ご存知の方がいらっしゃいましたら教えて下さい。 よろしく御願いします。 各ユーザが.forwardからspamassassinを呼び出せば済む。 RedHatだとsendmailのMDAがprocmailだったりしそうだから、 .procmailrcに :0fw: spamassassin.lock * < 256000 |/usr/bin/spamc と書くとか。 しっかし、procmailrcはわけわかんね〜。はよmaildropに移行したい… >>50 49です。ありがとうございます。 設定してみます。 procmailでspamassassinの設定する方法はあちらこちらにかいてあるけど qmailでの設定ってほとんど見当たらない。 ユーザごとにいちいち.qmailを編集するのもスマートじゃないし qmail-scannerあたりを書き直せばいいんだろうけど・・・ と思ってたら、vpopmailでの運用をしてたので、案外簡単にできた。 >>52 書き直すまでもなく、使えると思うが。 ttp://qmail-scanner.sourceforge.net/ なるほど!情報ありがとう。 先にSpamAssassinいれといてQmail-Scannerをインストールすれば 良いってことですね。 ところで、Qmail−Scannerにバグがあるみたいです。 添付ファイルを処理する際にカッコがあると、途中でエラーをおこし、 メールが返送されてしまうのです。 一応、修正を行ってみたのですが、旨くいくかどうかは未確認なので 確認してから報告したいのですが、なんかML加入しないとダメみたいですね。 チョットメンドクサイ・・・ procmailで$HOME/.procmailrcを読みに行かなくすることってできるんでしょうか? /etc/procmailrcだけで制御したいのですが、ググって調べてると、 「$HOME/.procmailrcが無いときは/etc/procmailrcが読まれる」 ってなことが書かれてて…。 >添付ファイルを処理する際にカッコがあると はて、どゆこと?>>54 >>55 ユーザプロセスでは ~/.procmailrc を真っ先に読みに行くってのは ソースレベルでの仕様だから、それが嫌ならソースを書き換えてビルドするか、 さもなくば全ユーザのホームディレクトリ上で ln -s /etc/procmailrc ~/.procmailrc するしかないんじゃない? >>56 わかりにくい表現ですいません。 ログにこんなエラーがありました。 Unmatched ( in regex; marked by <-- HERE in m/^ESC$bfc dj8&5f7w2hESC( <-- HERE b.doc$/ at /var/qmail/bin/qmail-scanner-queue.pl line 22 12, <STDIN> line 3221. ESCの部分は端末上反転していたので、実際は\\と思います。 添付されていたのは日本語の入ったPDFとワード書類です。 で、qmail-scanner-queue.plの該当行のソースがこれ。 push(@uufile_list, $uufile) if(!grep(/^$uufile$/,@uufile_list)); 多分$uufileが正しくクオートされておらず、添付ファイル内の「(」が、 正規表現の一部とみなされているようです。 この推測が当たっていれば$uufile --> \Q$uufile\E とすればOKなはずです。(未確認) で、一応は自己解決をみたわけですが、SpamAssassinのコミュニティに報告するのが メンドクサイ仕組みなので、なんかどうでもいいやっていう気になってます。 >>58 添付ファイル名やその中身に括弧文字が 入っていて起こる鰓てのは初耳す。 qmail-scannerの versionと、そのメールを作った ソフトは何ですか(Winのoutlookとか thuderbirdとか、 **xのmewとか。。。?) お話の感じだと、これ、SAの問題ではないと思う。 >>59 qmail-scanner-queue.pl 1.25です。 メールを作ったソフトの方は折り返し戻っていってしまったので、 すぐには確認できませんが、送信者からの以前の話からすると Macのソフトらしいです。たぶんEudora? それはともかく、該当行の変数名からしてuuencodeされたファイルと思うのですが、 それが正しければSAの問題じゃないでしょうか・・・ >>60 エラーが起きてるのは、qmail-scanner-queue.pl の、sub check_and_grab_attachments の中ですよね。 uuencode/binhexしたファイル名をいろいろいじったやつ を添付して試してみてるんだけど、症状再現しないす。 うちも qmail-scanner 1.2.5、んで、SA 3.1。 >>61 あ・・・qmail-scannerの問題であってSAの問題じゃないのかな? 症状の再現性については、良くわからないけど 他の添付ファイルでいままで問題が起こったことがないので、 特殊な例かもしれません。 問題を起こす添付ファイルは手元に届いていないし、 届いたとしてもそのまま丸投げするわけに行かないので、 もうちょっと掘り下げてみます。 bsfilter と共用してる人いる? それって意味ある? (片方だけ使うよりも、spam と判断する 確率あがる?) bsfilter、spamassassin はどちらも、 ベイズ推定に基づいてるので、あまり意味がないように感じてるんだけど、効果があるか気になった。 >>63 ほとんど意味無いと思う。 SpamAssassinのベイジアンフィルタだけを使わないで、bsfilterを多段にかける とかだったらまだわかるが。 >>64 SA のベイジアンってそのまま使うと日本語考慮してくれなくね? >>65 あーなるほど。 bsfilterって最初から日本語化されてたっけ? bsfilterをnkfとkakasiで日本語化して使うなら、SpamAssassinも そうやって使うというのはどうだろ。 ちなみに、ベイジアンフィルタ使わなくても、設定でほとんど排除出来るよ。>>63 中国語やらのspamもとんでくるしcharsetの指定とかがめちゃくちゃなのも多いので、 日本語だけ対応していても仕方がない。 実際spamassassinだけで日本語も中国語もほぼ全て弾けてるよ(カスタムルール有)。 たまに英語のspamが抜けてくるけど、一日一通以下(受け取るSPAMは100超/日)。 false alarmは登録したサイトの広告的なメールマガジンみたいなものだけ経験がある。 これは受け取り望んでることがわからなければどこからどうみてもSPAMだよなあ、 と思ったので学習は諦めてwhitelistに入れた。 sa-learn --hamとか--spamって何を学習させているんですか? メールの内容を見ているの?ヘッダ部分だけ? >>69 ありがと。 でもその割には、同じ内容のスパムが、何度も来るんだよね。 >>70 そりゃBAYES_99になっても、他のスコアが低ければ通っちゃう罠 >>63 全く無駄ではないと思う。 ごく稀にSAが取りこぼすspamを捕捉するときがある。 多少の取りこぼしが気にならないなら、入れる必要はないけど。 精度はDNSBLやRazor2とか使えて自動学習してくれる分、SAの方に 分があるように思う。 あと、bsfilterはhamの学習がうまくいかないことがたまにある。 false alarmの可能性も同様に増えるから、そのリスクの見積もりと SAのみの場合にどれだけ不満かの兼ね合いだろうね。 >>71 そなのですか?あちゃあ。 BAYES_99は絶対にアウトにする方法ってありますか? これするとまずい事もあるのですかね。 >>74 BAYES_99 のスコアをやたら大きな値にしておけばいいんじゃない? まずい事っていうか、ベイズを 100% 信じる!という運用ポリシーだと 自分を納得さることが出来るの? (俺には出来ない) いろんなスコアの積み重ねで spam 判定を行うという仕組みは良く 出来てて、納得して利用しているけどなあ。 >>74 推測が必要ない確定的なものはprocmailで捨てれば? >>75-76 サンクス!! (もともと>>68 です) sa-learn --spamで学習させるという事は絶対にスパム!!wということですよね。 つまり人為的に学習させているわけだけど、BAYES_99のスコアをめちゃ高くしておくと、自動学習でのエラー、つまりハムをスパムと判定してしまったときに、困りますよね。 これはsa-learn --hamで修正するのでしょうけど。あれ?この場合、どっちが勝つんだろ? 仕組みが複雑すぎる.................. >>77 ベイジアンフィルターの原理わかってる? sa-learn --hamでそのメールをhamと学習させても、それ以前の 学習結果によって同じメールがBAYS_99と判別されることだってあるぞ。 あと、スコアリングについてまるで理解できてなさげだな。 >>80 具体的に述べよ。でも、たぶんできるよwww 各ユーザーがベイジアン学習させるタイミングっていつ? レン鯖で使っているんだけど、なかなか学習効果でないんですよ。 razor2 ほかと組み合わせないと、思ったほどの効果はすぐにでない。 sa-learn --spamの学習は、各自のspamボックスを sa-learn --spam --mbox /home/*/mail/spam でなめさせるから良いと思うけど、 間違ってspamに入ってしまったのを、 訂正学習させるのはおまいらどうやってます? sa-learn --ham --mbox /home/*/mail/notspam とか訂正ボックス作れば良いのかな。 autolearn=spam が付いてる奴は既に学習済み、再学習する必要なし。 autolearn=no のみ sa-learn すべし。 なんか学習させ過ぎるとある時点を境にspam検出率が物凄く落ちるような・・・ いつも参考にしていたサイトがディスク障害でデータ消失だって。 ttp://ssss.jp/~trombik/email/spamassassin.html サルベージしていった方がいいかなぁ。 qmail/vpopmail SpamAssassin3.1.0 qmail-scanner1.25 の環境です。 存在しないメールアドレス宛に着た場合、 ~vpopmail/domain/example.jp/user1/auto-whitelist ~vpopmail/domain/example.jp/user1/auto-whitelist.mutex が自動生成されてしまいます。 その為、ユーザーディレクトリが訳のわからない状況になってしまい、 このファイルの自動生成を停止させることはできますか? 検索してみたら、生成先のパスを変更する解説は多かったんですが、 自動生成停止は見つからなかったので、お願いします。 SPAM判定されたものの行き先フォルダをscoreごとに分けてみた。 5-10: 1 10-20: 3 20-: 10 くらいの割合。 サブジェクトを眺めて誤判定がないか確認するのが楽になった。 scoreに応じて色が変わる(段階的または連続的に)というのも面白いと思ったが wanderlustでそこまでするのは大変そうなので見送り。 sendmail+spamassassin+milter で構築しておりやす 外部MTAへ送信するときもX-Flagが付加されているようで 自分自身が送信したメールがX-Spam-Flag:YESって笑えないことも 対策はないでしょうか? 特定ドメインはチェックしないという設定が逢ったような気が。 milter-spamc を使っていたわけで spamass-milter の方がよさげかな 試してみます Spamassasin+Postfixで2年ぐらい前に利用してたのですが、 当時、1時間に2-3000通ぐらいしかメールできなくてしぶしぶ外した経験があります。 最近はハードのスペックも上がってきたし、また検討しているのだけど、 みなさんの負荷具合ってどうなんですかね。 実際運用してる方どうですか?どれぐらいのペースでメールの送受信できます? なんとなく平均これぐらいは飛ぶよ、ってのがわかればいいんですけど。 当時使ってたマシンのスペックは? それが無いと比較できないよ >>96 以前古い処理能力の低い機械をメールゲートウェイにしていた頃は 並列度を上げるより下げた方が実質の処理能力があがったことはある >>97-98 当時はCeleronの600MHzぐらいのやつで、他のアプリもごりごり動いてたw まぁ今回はP4-3GHzぐらいのやつで専用のメールゲートウェイにしようかと思うのだが、 メルマガが配信されることがあるサーバなので、できれば懐は広くしておきたいわけよ。 1時間で数万通とかは余裕?平均がどんなもんかしらないのでアレだけど > Celeronの600MHz って全然2年前じゃないじゃん、5年以上前じゃない? まあ少なくともパフォーマンスの良いシステムはいくらでも有るわけだから 心配ならそれにしとけば問題ないと思うね 取りあえず2chで使ってるくらいのにしといたら >>100 当時、そのスペック使ってた会社だったのでw あと、何通送れるとかは検証するしかないのか。ちと面倒だな。 最後にSpamassasinのパフォーマンスに関して参考になるサイトがあれば教えて下さいです。 パフォーマンスが落ちるとかなんとか書いているサイトはあるけど具体的な数字で検証しているところが見つからない。 ま、やってみたら、 結局マシンパワーの問題だから最近の高性能マシンならまず問題起きないよ 逆にそれで問題起こるならスンゴイ大量のユーザ抱えてるっと事だからもっと根本から見直した方が良い メールGWを複数設置して並列処理するとかね、 ちなみに1時間に2〜3000通って商売はSPAM屋かい? >>102 SPAM屋だったら単位時間あたり送付量にゼロの数が二つくらい足らないと思われ $USER_HOME/.spamassassin/user_prefs: 各ユーザーがWebベースで、このファイルをメンテできるツールありますでしょうか。 user_prefsをMySQLで管理しているのであれば、すぐにいくつか見つかると思う。 俺はSquirrelmailのプラグインを使っている。 http://www.squirrelmail.org/plugin_view.php?id=167 >>107 ありがとうございました。チャレンジしてみます。 他のツールご利用の方いましたら、よろしければ使用感など教えてください。 >>106 List from SA ttp://wiki.apache.org/spamassassin/WebUserInterfaces →phpsaadmin ttp://www.misak.dk/blog/ →WebUserPrefs ttp://sourceforge.net/projects/webuserprefs/ 06.3.18 SpamAssassinユーザー会発足 ttp://www.spamassassin.jp/ これってサーバーに入ってなくてもユーザーがホームディレクトリにインストールしてつかえるの? cronで、定期的に sa-learn --spam /home/*/Maildir/.Spam/cur とやっているんですが、最新の3.1.1にしてからメールが存在しない時に archive-iterator: readdir found no mail in '/home/hogehoge/Maildir/.Spam/cur' directory というエラーを吐くようになりました。このエラーを出さなくする方法ってないんでしょうか? 面倒だけど、メールが無かったら実行しないようにするスクリプトを組まないといけないのかなぁ。 >>113 そりゃエラーじゃない、「読み込むべき対象がない」と報告したに過ぎない。 >メールが無かったら実行しないようにするスクリプト それが本来の解決方法。 更に言うなら>>88 参照。 mysqlを設置したのですが、AWLはメールアドレスが順位付けられて 見ていて楽しいです。でも、ユーザー毎に設定されるのが無駄な気が。 デフォーで全ユーザー共通のが便利じゃないかなあ。 spamassasinは、スペースで単語を区切っているっぽいので、 日本語の場合はkakasiで分かち書きにして学習させるパッチを作ってみました。 せっかくなので興味のある人は使ってみてください。 http://sea-mew.jp/nox/data/linux/spamassassin.html 自分のやってることが車輪の再発明でないかまず確認してもよかったのではないかと。 いや、努力を否定するつもりはないんだけど……。 >>117 もちろん、こんなことだれかが考えていると思って探したら、 ITmediaに記事が出ていたんだけども、 そのサイトに行ってみたけど、 どこから落として良いのかわからなかったのですよ。。。 と思ったら、 http://mm.apache.jp/pipermail/spamassassin-jp/2006-February/000041.html が見つかりました。 >>116 SpamAssassinほどメジャーなツールで、意外にずっと分かち書き対応パッチ無かったよね。 自分もずっと探してたんだけど、ずっと見つけられなかったもの。 もう一歩遅かった。 そんなの必要? うちだとそんなことしなくても 日本語のSPAMはほぼ完全に蹴ってくれるけど。 パラメータやルールはカスタマイズしてるものの。 >>122 ベイジアンフィルタの性能は低いよ。原理的に考えてもそうだよね。分かち書きしてないんだから。 だからよく誤検出の元になる。蹴らないんじゃなくて蹴りすぎる。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる