Hatena::ブログ(Diary)

ftshの日記

2008-10-16

SpamAssassin - utf-8なメール

spamassassinに学習をさせている。

本日の誤認:1件

誤認の原因としては、メール本文がutf-8であることでパースに失敗しているのではないかと。

[SpamAssassin 3.2.3の日本語対応パッチ]

http://d.hatena.ne.jp/t-tkzw/20080102/p2

解消・回避方法を探る。

PHPライセンス

要点

  1. 変更部分に関するソースコード開示義務がない等,比較的制約が緩いBSDライクランセンス
  2. GPLは"ソースコードと一緒であること"を制約しているが、PHPライセンスではバイナリコードのみの再配布を許容している。

参考リンク

  1. http://q.hatena.ne.jp/1160981934
  2. http://www.geocities.jp/rui_hirokawa/php/php4/license-faq.html

SpamAssassin - 教育

  1. メーラをつかいつつ、SpamAssassinSpam判定漏れ分を学習させる方法について。
  2. メーラにはEdmaxを使用している。
  3. spam学習には、sa-learnというコマンドを使用する。
  4. 学習方針は、「悪いものと同時に、良いものも教える」とする
  5. メールヘッダに"X-Spam-Flag: YES"と付いているものは、学習対象から除外する。

学習方法

  1. 本来アカウント毎に学習データベースを持つべきらしいが、全体に共通のパターンとして学習させたい。
  2. Edmaxから、unixMailbox形式で、SpamAssassinをかわしたspamエクスポートする。添付ファイルも再構築して含める。
  3. エクスポートしたファイルを、spamassassin稼動サーバ(うちではメールサーバ内)に転送。
  4. spamassassinデーモンを実行しているユーザの権限(当方では`spamd`で、sa-learnを使ってspamを学習させる。(漏れた分だけ学習させる)
 spamd$ sa-learn --spam --mbox spam/spam20081016

※ユーザ:spamdで実行して効果があるのかな....

 ⇒確証はないけど、このスレの流れを信用する

  http://spamassassin.jp/modules/xhnewbb/viewtopic.php?viewmode=flat&order=ASC&topic_id=20&forum=2

※2008.10.17追記:デーモン実行ユーザでのsa-learnで正解だということを、実証的にアレした。











資料

http://www.ksknet.net/spamassassin/spamassassin_1.html

sa-learn コマンドでspamassassinに学習をさせ、スパムの判定精度を向上させることができます。

スパムの場合には
--spam オプションを

スパムでない場合には
--ham オプションを

それぞれつけてください。

また指定する読み込みの対象はファイルや、メールボックス、
ディレクトリ、などでそれぞれ続くオプションが違います。

--mbox <-- メールボックス
--file <-- ファイル
--dir <-- ディレクトリ

[例]
sa-learn --spam --file spam.txt

ちなみにmanページによると、スパムメールだけを覚えさせてもあまり効果はないようで、スパムと間違って判断してしまったメールも学習させる必要があるみたいです。最低スパムメールとそうでないメールを1000通づつ学習する必要があります。ただし、5000通以上になりますと、あまり精度はあがらないとのことです。

http://www.geocities.jp/bashou1000/spamassassin.txt

spamAssassin設定
                            新規作成 2005/02/23
                            最終更新 2005/03/08

●概要
 一日に受信するメールの内、8割をスパムが占めているユーザもいる事から、
 スパムフィルタ導入の運びとなった。
 SpamAssassinが動作するまでの処理内容としては、以下
 
   Postfixがメール受信
       ↓
   Procmailへ中継。ProcmailはSpamAssassinに再中継
       ↓
   SpamAssassinによるSpam判定
       ↓
   適切なユーザフォルダへ格納。スパムメールと判断されたら、指定フォルダに格納。


●日々の運用
 誤認識防止の為、spamアカウントに届くメールや /home/spam ディレクトリは
 毎日チェック。

 SpamAssassinを経由したメールには、メールヘッダー部分にスパム判定スコア
 などが追加されている。
 基本的に SpamAssassin に autolearn=spam と判定されたものは放置。
 autolearn=no となったものは、 sa-learn --spam で学習。

 ---------------------------------------------------------------------
 例:test@yahoo.co.jp宛のスパムメールが、正常と認識されて下記フォルダに
   格納された。
      /home/test/Maildir/cur/1109854125.3112_0.mail.yahoo.co.jp:2,S

      スパム学習させる。
      # sa-learn --spam 1109854125.3112_0.mail.yahoo.co.jp:2,S
      ※特に必要が無ければ、以下の手順は行なわず学習済のメールを削除しても良い。

      権限をspamに直す
   # chown spam 1109854125.3112_0.mail.yahoo.co.jp:2,S
      本来のspamフォルダに移動
      # mv 1109854125.3112_0.mail.yahoo.co.jp:2,S /home/spam/Maildir/new/
 ---------------------------------------------------------------------

 正常なメールがスパムと誤認識したものは sa-learn --ham で学習した後、
 本来のフォルダへ移動。
 ---------------------------------------------------------------------
 例:test@yahoo.co.jp宛のメールが、スパムと誤認識されて下記フォルダに
   格納された。
      /home/spam/Maildir/cur/1109854125.3112_0.mail.yahoo.co.jp:2,S

      スパム学習させる。
      # sa-learn --ham 1109854125.3112_0.mail.yahoo.co.jp:2,S
      権限をtestに直す
   # chown test 1109854125.3112_0.mail.yahoo.co.jp:2,S
      本来のフォルダに移動
      # mv 1109854125.3112_0.mail.yahoo.co.jp:2,S /home/test/Maildir/new/
 ---------------------------------------------------------------------
   
 誤認識していない通常のメイル (ham: SpamAssassin ローカルな slang) 
 でも、 autolearn=no は sa-learn --ham で学習。 


●whitelistへの追加
 スパム学習をしても、誤診が直らない場合、
 各ユーザディレクトリにある user_prefまたは/etc/spamassassin/local.cf内に
 下記のような記述を追加する。
 ---------------------------------------------------------------------
 whitelist_from test@yahoo.co.jp
 whitelist_from test@yahoo.ne.jp
 whitelist_from *@yahoo.co.jp
 ---------------------------------------------------------------------
 設定追加後は、spamassassinに設定を読み込ませる。
 # /etc/init.d/spamassassin reload

 whitelistに追加されたアドレスからのメールは、あらかじめSpam判定のスコアに
 -100されて計算される。判定時のスコアが8以上の場合、スパムと認識するように
 なっているので、まずスパムにはならない。


●ユーザ追加時の手順
 ユーザ追加後、メール格納用のフォルダ(新規、既読、一時)を作成する。
 ※以前の /var/mail/ フォルダは使用出来ない。Spam判定時の取り扱いを考えて
  mbox形式からMaildir形式に、メール保存方法を変更したため。
 ---------------------------------------------------------------------
 例:ユーザ:test

      ユーザ追加。ログインは出来ないように設定
   # useradd -s /bin/nologin test

   メールフォルダの作成
   # mkdir /home/test
   # mkdir /home/test/Maildir
   # mkdir /home/test/Maildir/new
   # mkdir /home/test/Maildir/cur
   # mkdir /home/test/Maildir/tmp

      全てオーナーはtestにしておく。
   # chmod -R test /home/test
 ---------------------------------------------------------------------

●SpamAssassinを有効にするには(受信メールをProcmailに渡す設定)
 各ユーザのホームディレクトリに.forward作成
  .forward の中身に、下記の一文を追加する。
  "|IFS=' ' &&exec /usr/bin/procmail -f- || exit 75 #ユーザ名"
 
 例 /home/test/.forward
  --------------------------------------------------------------------
  "|IFS=' ' &&exec /usr/bin/procmail -f- || exit 75 #test"
  --------------------------------------------------------------------
 ※SpamAssasinの適用を中止する(Procmailに渡さなくする)場合は、
  中身が空の .forward ファイルを配置すればよい。


--------------------------------------------------------------------------------

以下、インストール時の設定
●mbox から Maildir への移行時に既存のメールをmaildir形式に変換する。
 http://untroubled.org/mbox2maildir からmbox2maildirを
 取得しておき、実行可能にしておく
 # wget http://untroubled.org/mbox2maildir
 # chmod 755 mbox2maildir
  スクリプトの実行例
 # ./mbox2maildir /var/mail/test /home/test/Maildir
  ※ rootで実行したせいか、オーナーがrootに代わってしまうので、
   Maildir以下のchmodを忘れずに

●SpamAssassin3.0.2のインストール
 Debian GNU/Linux 3.0r4(woody)のSpamAssassinは2.20とバージョンが
 古いので、/etc/apt/sources.list にbackportを追加しておく。
 以下のような形だと、postfixも2.1.5の比較的新しいバージョンが
 インストール可能になる。
--------------------------------------------------------------------
# spamassassin backport 20050210
deb http://www.backports.org/debian/ woody spamassassin
deb http://www.backports.org/debian/ woody libnet-dns-perl

# postfix backport 20050210
deb http://www.backports.org/debian/ woody postfix
--------------------------------------------------------------------
  ※今回は、SpamAssassinだけをインストールした。

 SpamAssassinインストール
 # apt-get update
  # apt-get install spamassassin
 これだけだとライブラリが足らないので
 # apt-get install libnet-dns-perl

  SpamAssassinのテストは
  #spamassassin -t < /usr/share/doc/spamassassin/sample-spam.txt

 また、/etc/default/spamassassin 内の
 ENABLED=0 → ENABLED=1 にしないとspamassassinが起動出来ないらしい。
 起動は/etc/init.d/spamassassin start

●SpamAssassinの設定
 全体設定は、/etc/spamassassin/local.cf に行なう。
 今回は、下記アドレスから http://tlec.linux.or.jp/docs/user_prefs
 設定サンプルをもらってきて、local.cfとした。


●Maildir形式の受信をサポートするPOPをインストール
 # apt-get update
  # apt-get install courier-pop

●PostfixにMaildirの設定
 /etc/postfix/main.cfに下記設定を施す。
  --------------------------------------------------------------------
 #home_mailbox = Mailbox

 home_mailbox = Maildir/
 mail_spool_directory=/var/mail/
  --------------------------------------------------------------------
 この後、postfixを設定再読み込み又は、再起動すると設定反映
 # /etc/init.d/postfix reload
  又は
 # /etc/init.d/postfix restart

  なお、Debianパッケージpop-before-smtpを利用したい場合には
  下記のようなパラメータ設定をすると良いかも
  --------------------------------------------------------------------
  mynetworks = 127.0.0.0/8 hash:/var/lib/pop-before-smtp/hosts
  
  smtpd_recipient_restrictions = permit_mynetworks,reject_non_fqdn_recipient,
  check_client_access hash:/var/lib/pop-before-smtp/hosts,
  reject_unauth_destination
  --------------------------------------------------------------------
 ※ pop-before-smtp利用時は、/etc/pop-before-smtp/pop-before-smtp.confを修正する
   既存のpat pat2を#でコメントアウトし、下記設定追加
 /etc/pop-before-smtp/pop-before-smtp.conf
  --------------------------------------------------------------------
 # 2005/02/22 addd
  # For Courier-pop
  pat = '^(... .. ..:..:..) \S+ courierpop3login: LOGIN, user=\S+, ip=\[::....:(\d+\.\d+\.\d+\.\d+)\]$
'
  --------------------------------------------------------------------

●ProcmailをSpamAssassinと連携させて使う設定
 /etc/procmailrc
  --------------------------------------------------------------------
 PATH=/bin:/usr/bin:/usr/local/bin
 MAILDIR=$HOME/Maildir
 DEFAULT=$MAILDIR/
 LOGFILE=$HOME/.SPAM/procmail.log
 LOCKFILE=$HOME/.lockmail

 :0fw
 *!^X-Spam.*
 | /usr/bin/spamc

 :0:
 #*^X-Spam-Status: Yes
 * ^X-Spam-Level: \*\*\*\*\*\*\*
 ! spam
  --------------------------------------------------------------------


●Spamの促成学習
  通常、1000通ほど学習させた後にSpam判別が安定するが、
 インストールしたばかりで適当なサンプルがない場合。
  tlec から、Spamメール集を取得し、これを学習させる。
 # wget http://www.flcl.org/~yoh/yoh_spam_050102.tar.bz2
  # apt-get install bzip2
 # bzip2 -dc yoh_spam_050102.tar.bz2 | tar xvf -
 # sa-learn --spam ./home/yoh/spam/spam/

●設定変更(2005/03/04)
 運用をしていく中で、local.cf の最後尾に下記設定を追加した。
 /etc/spamassassin/local.cf
  --------------------------------------------------------------------
 (中略)
 always_add_report 1

 whitelist_from test@yahoo.jp
 whitelist_from test@yahoo.ne.jp
 whitelist_from *@yahoo.co.jp
  --------------------------------------------------------------------
 always_add_report { 0 | 1 } ※デフォルト0 
   スパムと判定した場合に、その条件でこう判定されたかのレポートを
   つけるのが0。不要なら1をセットする

http://pc11.2ch.net/test/read.cgi/unix/1124772932/

SPAM鑑賞シリーズ 〜すっごいレプリカ〜

原文

Received: (qmail 27991 invoked by uid 89); 6 Oct 2008 04:20:51 -0000
Received: from unknown (HELO hgk) (123.99.1.223)
  by ********** with SMTP; 6 Oct 2008 04:20:51 -0000
Reply-To: xox@mail6.dewa.or.jp
From: ブランドショップ<xox@mail6.dewa.or.jp>
Subject: FW:信じられない出来のブランド品スーパーコピー
Date: Mon, 6 Oct 2008 13:20:56 +0900
MIME-Version: 1.0
Content-Type: text/plain;
	charset="shift_jis"
Content-Transfer-Encoding: 7bit
X-Priority: 1
X-MSMail-Priority: High
X-Mailer: Microsoft Outlook Express 6.00.2800.1081
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1081

これほど上質のスーパーコピーを手にとって見たことがありますか?

業界ではトップと呼ばれるアワースタンスが販売するブランド商品は、多くの愛用者を魅了。
スーパーコピー商品は上質素材と職人の腕で品質が決まります。素材は海外から取り寄せ、職人
は実際のブランドOEM職人が製作していますので、出来は言うまでもありません。
バッグ類だけでなく、アパレルもお買い求めになれますよ!

今国内で一番人気の「ボッテガ・ヴェネタ」、「バレンシアガ」などは熱売。特に「ボッテガ・
ヴェネタ」は正規品と同じように上質ラムスキンで製作され、他社の追従を許しません。
ルイ・ヴィトンの最新のダミエ・グラフィがあるのは弊社だけでございます。またルイ・ヴィト
ン商品はどれもが他社より優れていますので、正規品に限りなく近い商品をお探しのお客様には
強くお勧め致します。
エルメスのバーキングも他社でよくある問題のロゴが入っていないことはなく、正規品を完全に
復元しています。弊社ではよく売れる商品で、お客様に好評を頂いております。

弊社商品はすべて星光貿易(スターズクラブ)で製造しており、関連販売ショップではもっとも
合理的な価格と特別な割引サービスを提供しております。腕時計のスーパーコピーも弊社だけが
販売権を取得しています。

ブランドではミュウミュウ、グッチ、シャネル、ジミーチュウ、ヴィトンとすべてのブランドを
網羅。腕時計もお客様のほしいものばかりを用意させていただきました。

http://www.yoursense.net

★★★★★★★★★★★★★★★★★★★★

弊社では商品代金支払を銀行振込みとクレジットカードの2通りで対応しておりますので、気軽
にご利用していただけます。弊社はクレジットカード決済も使用できる正規会社であることをご
理解いただけることだと思います。

クレジットカード決済翌日、銀行振込みの翌日には商品を速達で配送、約5日でお客様の元に届
けます。

商品が万一税関を通過できない場合は、再配送または返金をお選びいただけますので本当に安心
できるサービスだと思います。

お客様サービスではメールは無論、電話でもお受けしていますので、詳しく聞きたいことがあれ
ばこれもご理解いただけるまで実際の対話で説明させていただきます。

http://www.yoursense.net

★★★★★★★★★★★★★★★★★★★★

弊社ではブランドアパレル商品、服、アクセサリー、子供服などもアパレル商品専門ショップで
販売していますので、バッグ類だけでなく着こなしを楽しんでいただけます。

他社とは違う、サービスも断然上回る、我々はお客様に楽しくショッピングしていただけるよう
努力をしております。

アワースタンスの紹介は

http://www.yoursense.net

講評

そんなにすごい品質のもの作れるんだったら、もうちょっと頑張ってオリジナル製品作ったらいいんじゃないかな。