迷惑メール対策

2007年12月17日

SpamAssassinでspamメール対策 (20/n) : spamdを別サーバで動かす

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

検証サーバの限界…そして次の一手

メインで使用している「お爺ちゃんサーバ」。
その「お爺ちゃんサーバ」のリソースの大半をspamdが使っている。
自分が使用可能な検証サーバが複数あるので、試しにspamdを外部サーバへ切替えてみた。

spamc(procmail)の設定

procmailのレシピ例
:0fw
| /usr/bin/spamc -u spamd -d spamd.example.com
spamdに-dオプションを指定すると、サーバを指定可能。

spamdの設定

設定の詳細は割愛。分かる人にはわかる設定。
自分はdaemontoolsが好きなのでsuperviseとenvdirでプロセスを管理している。
envdirを使うと、共通項目とサーバ固有の設定を分離出来る点がとても良い。
# cat /service/spamd-shared-ro/run
#!/bin/sh
#
# for spamd-ro (read-only)
#

exec 2>&1
sleep 3

PATH=/sbin:/bin:/usr/sbin:/usr/bin

exec envdir ./env sh -c '
  exec /usr/sbin/spamd \
  --siteconfigpath=${SITECONFIGPATH:-/etc/spamassassin/spamd-ro} \
  --helper-home-dir=${HELPERHOMEDIR:-/var/lib/spamd/ro} \
  --username=${USERNAME:-spamd} \
  --groupname=${GROUPNAME:-spamd} \
  --max-children=${MAXCHILDREN:-2} \
  --debug=${DEBUGAREAS} \
  --syslog=${SYSLOG} \
  --allowed-ips=${ALLOWEDIPS:-127.0.0.1} \
  --listen-ip=${LISTENIP:-127.0.0.1}
'
allowd-ipsには接続を許可する元IPアドレスを指定する。
これにより、論理的でも物理的でもいいけど、spamcとspamdを別サーバで動かせる。

効果

[変更前] 作業をしていてストレスを感じる事がたたあった。
 ↓
[変更後] ストレスを感じなくなった。

共用spamd構想

そこそこのスペックのspamdサーバと、
数台のspamcサーバで検証するのはどうなんだろうか。

社内向けに『spamdだけサービス提供』と言うのも面白い…かな。


半袖 at 11:55|PermalinkComments(0)TrackBack(0)

2007年12月04日

SpamAssassinでspamメール対策 (19/n) : SpamAssassinを二次フィルタとして利用

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

■一次フィルタとしてSpamAssassin

 検証環境での誤判定率: 5%弱

誤判定の99%は「false negative」
受信箱へ入って来るメールにspamが混入する割合が少なくなり、
大分快適なメール生活なのだが、検証環境はおじいちゃんサーバだ。

おじいちゃんサーバでSpamAssassinを動かすのは厳しい。
とにかく、この事実は分かった。



■二次フィルタとしてSpamAssassin

別環境で検証している。
そこでは、「二次フィルタとしてSpamAssassin」。

一次フィルタでspamを95%程度撃退。
残りの5%に大してSpamAssassinによる判定。

その結果は…
 誤判定率: 10%

一次フィルタと比べると、誤判定率は高い。
だがしかし、内容が違う。「hamの割合」が高い。
それを考慮すると、10%と言う数値は低いはずだ。



■SpamAssassinの使い所

二次フィルタとして使い始めてからは考え方が変わった。

 「SpamAssassinは二次以降のフィルタとして使うのが良いのでは」と言う仮説。

最近、この仮説は確信になりつつある。
裏付ける材料が揃ってない。材料が揃い次第書く予定。


半袖 at 22:10|PermalinkComments(0)TrackBack(0)

2007年11月08日

SpamAssassinでspamメール対策 (18/n) : 「/etc/init.d/spamassassin reload」の中身とdaemontoolsとHUPシグナル

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

■本題の前に

▼環境
・Debian GNU/Linux
・spamd(SpamAssassin)をdaemontoolsで管理している。
・設定変更のたびに 「svc -t /service/spamd-ro」をしていた


■「/etc/init.d/spamassassin reload」があるよな

中身を見てみよう
  reload|force-reload)
        echo -n "Reloading $DESC: "
        start-stop-daemon --stop --pidfile $PIDFILE --signal HUP --name $PNAME
        echo "$NAME."
        ;;

なるほど。
HUPシグナルを送っているのか。


■daemontoolsでHUPシグナルを送る

「svc -h」が答え。
# svc -h /service/spamd-ro
これでOK
無駄にTERMを送ってしまっていた。
次回からはTERMではなくHUPだ。


■変更
・[2007/11/08 12:00] タイトルのタイポ修正…ボケボケ


半袖 at 10:30|PermalinkComments(0)TrackBack(0)

2007年11月07日

SpamAssassinでspamメール対策 (17/n) :設定変更「use_bayes 0」

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

■おじいちゃんサーバの血圧が高い

とにかく血圧が高い。そんな状況が続いている。
判定を見ている限り、ベイズDBによる判定があまり意味をなしていない気がした。
そこで試しに設定変更

use_bayes 0


こうしてみた。
するとどうだろう…

おじいちゃんサーバの血圧が正常値に戻った。


■診断結果
・ルールさえしっかり決めておけばベイズDBはあまり要らない
・欲張ってルールを書き過ぎると血圧上昇
・ベイズDBを使わない事により、オーバーヘッドは減り、サーバのリソース確保へ繋がる

おじいちゃんは、まだまだ現役です。


半袖 at 13:15|PermalinkComments(2)TrackBack(0)

2007年09月10日

SpamAssassinでspamメール対策 (16/n) : 統計情報

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

安定している。

そろそろf-nを減らすための何かを考えなければならない段階か。
まずはf-nの傾向を調査かな。


■統計情報
日付総数hamspamf-pf-n誤判定
2007-08-3110267462801242%
2007-09-015222882340254%
2007-09-024161932230215%
2007-09-039016642371192%
2007-09-0410067412650403%
2007-09-059947812130424%
2007-09-067705632070334%
2007-09-078936752180384%
2007-09-084692342350194%
2007-09-095032772260367%


■作業履歴
・whitelist_from追加


■課題
・f-n数を減少
・f-nの傾向調査


半袖 at 11:10|PermalinkComments(0)TrackBack(0)

2007年08月31日

SpamAssassinでspamメール対策 (15/n) : whitelist増加と誤判定率減少

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

凄く安定しているので作業自体があまりない。

■日々の作業
・false positiveからメールアドレス取得し、ドメイン名登録
・メールドメイン名をwhitelist_fromへ登録
・true positiveとなったメールからもドメイン名取得

この程度の作業で済んでいる。


$ egrep ^whitelist_from 20_whitelist_common.cf | wc -l
55

大分whitelistが増えて来た。
これにより、徐々に判定率が良くなって行く。





■統計: 1週間分
日付総数hamspamf-pf-n誤判定
2007-08-24866636230432 4%
2007-08-25485229256221 4%
2007-08-26460253207046 10%
2007-08-27945760185643 5%
2007-08-28885680205345 5%
2007-08-29832603229340 5%
2007-08-30963736227140 4%

もっとf-n数を減らしたい。


半袖 at 19:15|PermalinkComments(0)TrackBack(0)

2007年08月27日

SpamAssassinでspamメール対策 (14/n) : 壊れかけたSpamAssassin

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

今朝のメールチェックでinboxにspamが多い事に気づく。
原因調査と対応の記録。



■原因調査

▼SpamAssassinの動作確認
SpamAssassinのログを調査してみたらrecoveryのメッセージ。
$ tai64nlocal< /service/spamd-ro/log/main/$(tai64nlocal).s | lv
2007-08-27 04:40:28.563005500 [8096] warn: prefork: select returned -1! recovering: Bad file descriptor
2007-08-27 04:40:29.791522500 [8096] warn: prefork: select returned -1! recovering: Bad file descriptor
2007-08-27 04:40:30.793415500 [8096] warn: prefork: select returned -1! recovering: Bad file descriptor
2007-08-27 04:40:31.795259500 [8096] warn: prefork: select returned -1! recovering: Bad file descriptor
2007-08-27 04:40:32.797110500 [8096] warn: prefork: select returned -1! recovering: Bad file descriptor


1. spamdが反応しない
 ↓
2. spam判定をスルーしてしまう
 ↓
3. inboxへメールが入り込む

こう言う経緯。


▼『spamdは起動している?』
$ sudo svstat /service/spamd-ro
/service/spamd-ro: up (pid $(pid)) $(time) seconds


起動している


▼対応優先順位付け
・じっくり原因調査
・一刻も早く復旧

業務に影響が出るので、1秒でも早い復旧を選択。
『spamdを再起動してみて、もしも駄目だったら次を考えよう。』
そう思い、再起動。

$ sudo svc -t /service/spamd-ro
$ sudo svstat /service/spamd-ro


無事、起動して来た。
その後の動作に問題ない。



■メール再判定

inboxに紛れ込んでしまっている。spamが邪魔。
どうにかしたい。さてどうする?


▼対応手順
1. inboxに入っているファイルリスト取得
2. spamcコマンドに-cオプションを付けて実行
3. spam判定された場合、sandboxへ移動

spamcに-cオプションを追加する事で、
終了ステータスコードを利用出来る。


▼spamc -cの終了ステータスコード
$? = 0: ham
$? !=0: spam



▼実行例
$ cd $(HOME)/Mail/inbox
$ mkdir sandbox
$ for i in *; do spamc -c $i || mv $i ./sandbox/; done



▼何故直接spamフォルダへ移動せず、sandboxへ移動するのか
それは、spamフォルダに同ファイル名が存在するケースを避ける為。
一度sandboxへ移動し、sandboxに入ったメールを改めてspamへ移動。
これでファイルが上書きされる事も無く、順番通りにメールが並ぶ。



■独り言
何事も経験


半袖 at 11:20|PermalinkComments(0)TrackBack(0)

2007年08月20日

SpamAssassinでspamメール対策 (13/n) : ストレスフリーなメール生活への道

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

変化したメール生活の話。

自分は一度全てのメールをinboxに取り込み、
inboxから各フォルダへ振り分けている。



▼日々の生活
1. inbox(ham判定メールの振り分け先)のメールを読む
2. inboxに紛れ込んだfalse negativeの振り分け
3. spamフォルダのメール確認
4. 必要に応じてspamフォルダからfales positiveのフォルダへ振り分け
5. false positiveを注意深く観察し、必要に応じてwhitelistを更新





ある程度、判定制度が安定して来ると作業は少なくなる。
現在一番工数が多いのは、inboxのメール読み。



 Q. 以前と同じ?



▼以前と違う事
・inboxフォルダのメール確認時間減少
・inboxフォルダに入っているfalse negativeのメール数減少
・spamフォルダに入っているfalse positiveのメール数減少






▼全体的に業務効率UP

 inboxフォルダのspam汚染度減少によるメール読み作業のストレス軽減


これが一番大きい。
日々快適なメール生活は成長している。


半袖 at 13:05|PermalinkComments(0)TrackBack(0)

2007年08月19日

SpamAssassinでspamメール対策 (12/n) : お知らせメールはMessage-Id不正が多い

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

時々メールマガジンがfalse positiveとなるのでwhitelist_fromに登録している。

今日は2件のfalse positive。
2件ともMessage-Idが大きくspamらしさのスコアを獲得してしまっている。


▼From: info at nicovideo.jp
Message-Id無し

invalidではなく、blank。これはひどい。


▼From: FC2 Information <fc2 at fc2.cc>
Message-Id: 20070818.114720

日付とrandomな数値の組合せ。



ニュースレター、メールマガジンのMessage-Idは大半が変。
こうした方が良いですよ と突っ込みを入れるとキリが無い。
送信者側・管理者側にマナーを良くしてもらいたい。

SpamAssassinでspamメール対策 (7/n) : spam判定され憎くする為の努力を勉強してもらいたい。


半袖 at 16:55|PermalinkComments(0)TrackBack(0)

2007年08月18日

SpamAssassinでspamメール対策 (11/n) : 統計をグラフ化

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

You need to upgrade your Flash Player
amChartsを使ってグラフ化

spamが気い木になっていたけど、グラフ化してみると違う事に気付く。
見える化してみると面白い。


半袖 at 15:15|PermalinkComments(0)TrackBack(0)

2007年08月16日

SpamAssassinでspamメール対策 (10/n) : whitelist_fromを追加したらfalse negative増大…

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

inboxを見て、明らかにfalse negativeが多い事に気づいた。


一昨日、ルールを追加した。

▼追加ルール
whitelist_from *@example.jp


どうもコレが良くなかったようだ。


▼ルール追加の動機
閾値ギリギリとなるtrue positiveが多いので、
false positiveとならない為の予防策のつもりだった。

これが裏目に出た。


▼example.jpの背景
・example.jpではezmlmによって管理されているMLが多数存在している
・example.jpのMLは、業務用として利用されている
・何かの拍子に業務用MLのメールアドレスがspammerに荒らされ始める
・spamが沢山送られて来るようになってしまった

こう言ったメールドメイン名に対して『whitelist_from *@example.jp』
この設定を追加するとfalse negative祭りとなる。


▼08/15の集計結果
#date sum ham spam fp fn miss
2007-08-15 863 677 186 0 129 14%



10%超えてしまった…
さじ加減が難しい。


▼対応策
・『whitelist_from *@example.jp』を削除


戦いは続く


半袖 at 11:10|PermalinkComments(0)TrackBack(0)

2007年08月14日

SpamAssassinでspamメール対策 (9/n) : ここ数日の統計

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

やっと集計方法を見つけ出せた気がする。
独自集計方法により出された結果は下記の通り。


日時総数hamspamf-pf-n誤判定率
2007-08-0379673759000%
2007-08-0437730176000%
2007-08-05321213108000%
2007-08-06890721169000%
2007-08-07849642207000%
2007-08-089356932426233%
2007-08-099487362126536%
2007-08-109527551970313%
2007-08-1149132816305912%
2007-08-124952912040346%
2007-08-138956562390293%

※注意
08/04〜08/07の期間においてfalse-positiveとfalse-negativeが0なのは、
まだfalse-positive,false-negativeの算出方法が確立されていなかったため。


もっとfalse-negativeを減らしたい。


半袖 at 02:15|PermalinkComments(2)TrackBack(0)

2007年08月13日

SpamAssassinでspamメール対策 (8/n) : blacklist_fromは癖があるので要注意

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

info@example.comから送られてくるspamメールが
false negativeになってしまう話。


▼環境
X-Spam-Checker-Version: SpamAssassin 3.1.7-deb (2006-10-05)




■false negative判定されたサンプルメール

▼生Fromフィールド
From: =?iso-2022-jp?Q?=1B=24B!Z=1B=28BSexi!=29Prem?= =?iso-2022-jp?Q?iere!=29=1B
=24B!=5B=255=25=5D!=3C=25HIt=1B=28B?= <info@example.com>

▼デコードされたFromフィールド
From: 【Sexi!)Premiere!)】サポート部 <info@example.com>


黒でしかないので、blaclistに登録していた
blacklist_from info@example.com


しかし、上記メールだとblackであると判定してくれない。


Content preview: 【Sexi】をいつもご利用頂き誠にありがとうございます☆
━━━━━━━━━━━━━━━━━ 8/13は☆大抽選会
━━━━━━━━━━━━━━━━━
    現金プレゼント総額 [...]

Content analysis details: (3.4 points, 10.0 required)

pts rule name description
---- ---------------------- --------------------------------------------------
-0.1 CONTENT_TYPE_PRESENT exists:Content-Type
-0.1 ISO2022JP_CHARSET ISO-2022-JP message
0.7 SARE_SUB_CASH_CHAR Subject has letter then $ then letter
0.1 STAR *
-6.0 USER_IN_WHITELIST_TO User is listed in 'whitelist_to'
4.0 MISSING_HEADERS Missing To: header
1.0 LONG_WORD BODY: Long word more than 40 characters
-0.1 ISO2022JP_BODY BODY: ISO-2022-JP message
0.1 TOUFU1 BODY: Toufu Moji
0.2 MIMEQENC FULL: Quoted-Printable mime definition
0.2 QENCPTR2 FULL: Quoted-Printable mime pattern
0.2 QENCPTR1 FULL: Quoted-Printable mime pattern
3.0 QENCTXT FULL: quoted-printable
0.1 TO_CC_NONE No To: or Cc: header


何故かfalse negative。
もっと詳細にチェック項目が出くれればいいのにね。
出す方法があるのかも知れないけど、今は判らない。

さて困った。


▼仮説
・blacklist_fromは <local-part@domain> である事を期待している
・Fromフィールドが複数となっている場合、blacklist_fromが期待した判定をしてくれない


▼検証
blacklist_from info@exmaple.com
blacklist_from *info@example.com


上記のように、file-glob-styleパターンで"*info@example.com"としてみた。


▼結果
Content preview: 【Sexi】をいつもご利用頂き誠にありがとうございます☆
━━━━━━━━━━━━━━━━━ 8/13は☆大抽選会
━━━━━━━━━━━━━━━━━
    現金プレゼント総額 [...]

Content analysis details: (103.4 points, 10.0 required)

pts rule name description
---- ---------------------- --------------------------------------------------
-0.1 CONTENT_TYPE_PRESENT exists:Content-Type
-0.1 ISO2022JP_CHARSET ISO-2022-JP message
0.7 SARE_SUB_CASH_CHAR Subject has letter then $ then letter
0.1 STAR *
100 From: address is in the user's black-list
-6.0 USER_IN_WHITELIST_TO User is listed in 'whitelist_to'
4.0 MISSING_HEADERS Missing To: header
1.0 LONG_WORD BODY: Long word more than 40 characters
-0.1 ISO2022JP_BODY BODY: ISO-2022-JP message
0.1 TOUFU1 BODY: Toufu Moji
0.2 MIMEQENC FULL: Quoted-Printable mime definition
0.2 QENCPTR2 FULL: Quoted-Printable mime pattern
0.2 QENCPTR1 FULL: Quoted-Printable mime pattern
3.0 QENCTXT FULL: quoted-printable
0.1 TO_CC_NONE No To: or Cc: header


true negative判定。
USER_IN_BLACKLISTが効いている。

要らないメールドメイン名なら *@example.com としてしまう方が良さそう。



▼まとめ
・blacklist_fromは期待する動きをしてくれない時がある



何故blacklist_fromにマッチしなかったかを詳細に出せたらイイのに。
blacklist_fromの癖を判らない人は、とことんはめられそう。


半袖 at 12:50|PermalinkComments(0)TrackBack(0)

2007年08月09日

SpamAssassinでspamメール対策 (7/n) : spam判定され憎くする為の努力

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

SARE等のruleを適用させたSpamAssassinでspam判定の検証中、
false-postiveなメールの判定結果を眺めていたら、共通点を見つけた。



▼false-positiveなメールがspam判定されやすい箇所
・Fromにメールアドレスだけ
・Message-Idが無い
・Message-Idのドメインパートのドメイン名が存在しない

それぞれ具体例は下記の通り。



■Fromにメールアドレスだけ
display-nameを入れるだけで大分違う。

▼spam判定されやすい例

From: local-part@domain


▼ham判定されやすい例

From: "display-name" <local-part@domain>



■Message-Idが無い
メールヘッダーとしては非常に行儀が悪い。
それだけspamメールにはMessage-Idが無い傾向が強いと言う事だろう。


■Message-Idのドメインパートのドメイン名が存在しない
・プライベートネットワークゆえに、ホスト名がFQDNではない
・いい加減なMessage-Idの生成ルール

▼spam判定されやすい例

Message-Id: <$(date +%s).$$@mail.example>


▼ham判定されやすい例

Message-Id: <$(date +%s).$$@mail.example.org>




■メールヘッダーにもマナーを
独自メール配送プログラムでニュースレターを送信している人は、
行儀の良いメールヘッダーで送信すると、相手に届く可能性は高くなる。


半袖 at 11:50|PermalinkComments(0)TrackBack(1)

2007年08月08日

SpamAssassinでspamメール対策 (6/n) : ruleファイル適応でspamメール激減

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

SpamAssassinでspamメール対策 (5/n) : SARE(SpamAssassin Rules Emporium)のrules_du_jour使い方の続編

今回の作業でspamメールが激減した。


▼作業概要
・SAREのruleファイルを適用
・日本語向けruleファイル適用


▼利用したruleファイル
ここでは管理しやすくする為、
/etc/spamassassin/rules.d/000-includes.cfからruleをincludeしている。
/etc/spamassassin/local.cfからは/etc/spamassassin/rules.d/000-includes.cfをincludeする。


$ cat /etc/spamassassin/rules.d/000-includes.cf
-----
include 70_sare_adult.cf
include 70_sare_evilnum0.cf
include 70_sare_genlsubj.cf
include 70_sare_obfu.cf
include 70_sc_top200.cf
include 71_japanese_tlec.cf
include 72_japanese_ghal.cf
include tripwire.cf
-----



▼参考までにSARE用/etc/rulesdujour/configの内容

$ cat /etc/rulesdujour/config
-----
SA_DIR=/etc/spamassassin/rules.d
SA_LINT=:
SA_RESTART=:
MAILCMD=:
TRUSTED_RULESETS="
SARE_ADULT
SARE_EVILNUMBERS0
SARE_GENLSUBJ
SARE_OBFU
SARE_SPAMCOP_TOP200
TRIPWIRE
"
-----


検証機のスペックが許せば他のruleも適用。
今回の検証機はロースペックだった為、上記ruleで検証した。


▼効果
・false-positiveになるメールは行儀の悪いメール

▼統計
メール総数: 923
spam判定: 238
false-positive: 6
false-negative: 19

ここまで減らせると重要メールを見落とす確率は低くなる。


▼日々の課題
・誤判定メールを細かく確認し、whitelistとblacklistをメンテナンスする事



SpamAssassinだけでも大分spamメールを減らせる事が分かって来た。
もっと制度を上げたい。欲望は果てしない。


半袖 at 23:45|PermalinkComments(0)TrackBack(0)

2007年08月07日

SpamAssassinでspamメール対策 (5/n) : SARE(SpamAssassin Rules Emporium)のrules_du_jour使い方

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

SAREはSAREにはSpamAssassin用ruleファイルが集約されているサイト

http://www.rulesemporium.com/rules.htm


SAREにはruleファイルと共に、
『rules_du_jour』と言うruleファイルを取得するスクリプトが用意されている。
rules_du_jourの使い方をまとめた。



▼スクリプト取得

$ wget http://sandgnat.com/rdj/rules_du_jour



▼rules_du_jour用configで環境を設定
rules_du_jourはconfigファイルを必要とする。

このconfigは/etc/rulesdujour/configとするか、環境変数RDJ_CONFIGFILE で指定する。
そして、configで設定すべき環境変数は下記の通り。

・TRUSTED_RULESETS: 追加したい項目
・SA_DIR: ruleファイル保存先ディレクトリ
・MAIL_ADDRESS: update後のレポート報告先メールアドレス
・SA_RESTART: spamassassinの再起動コマンド

config例

$ vi /etc/rulesdujour/config
-----
SA_DIR=/etc/spamassassin/rules.d
MAIL_ADDRESS=foo@example.com
SA_RESTART="/etc/init.d/spamassassin retart"
TRUSTED_RULESETS="
TRIPWIRE
SARE_EVILNUMBERS0
SARE_RANDOM
SARE_GENLSUBJSARE_OBFU2
"
-----


※SA_DIRで指定したディレクトリは予め作成しておく事


▼実行例

$ mkdir -p /etc/spamassassin/sare.d
$ chmod +x ./rules_du_jour
$ ./rules_du_jour



▼実行結果

$ ls -la /tmp/etc/spamassassin/rules.d
合計 312
drwxr-xr-x 3 hansode hansode 4096 2007-08-07 13:12 ./
drwxr-xr-x 4 hansode hansode 4096 2007-08-07 13:12 ../
-rw-r--r-- 1 hansode hansode 24298 2005-10-06 05:00 70_sare_evilnum0.cf
-rw-r--r-- 1 hansode hansode 187772 2006-11-15 01:00 70_sare_genlsubj.cf
-rw-r--r-- 1 hansode hansode 6129 2005-10-02 05:00 70_sare_obfu2.cf
-rw-r--r-- 1 hansode hansode 18190 2005-12-12 19:00 70_sare_random.cf
drwxr-xr-x 2 hansode hansode 4096 2007-08-07 13:12 RulesDuJour/
-rw-r--r-- 1 hansode hansode 56238 2005-06-02 09:00 tripwire.cf



▼TRUSTED_RULESETSの設定補足
TRUSTED_RULESETSには、http://www.rulesemporium.com/rules.htm に書かれている
『RDJ usage』に書かれている文字列を記述して行く。

例: 7x_sare_redirect_*.cf

RDJ usage:
add either "SARE_REDIRECT" (pre3.0.0) or
"SARE_REDIRECT_POST300" (post3.0.0) to TRUSTED_RULESETS



TRUSTED_RULESETS="SARE_REDIRECT SARE_REDIRECT_POST300"



▼カイゼン
・再起動させたくない
・ruleファイルだけ欲しい
・レポート送信不要
・spamassassin --lint不要

config例

$ cat /etc/rulesdujour/config
-----
SA_DIR=/etc/spamassassin/rules.d
SA_LINT=:
SA_RESTART=:
MAILCMD=:
TRUSTED_RULESETS="
TRIPWIRE
SARE_EVILNUMBERS0
SARE_RANDOM
SARE_GENLSUBJ
SARE_OBFU2
"
-----


上記configにより、ruleファイルだけを取得出来るようになる。



▼豆知識: ":"の謎
":"は終了ステータスコードが常に0となる。
trueと同意。trueよりも短いので自分は":"を使う事が多い。


半袖 at 13:15|PermalinkComments(0)TrackBack(0)

SpamAssassinでspamメール対策 (4/n) : whitelist v.s. from詐称 part.3

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

Mail::SpamAssassin::Confのmanを眺めつつ、
世に出回っているレシピを色々いじくっていたら
大分判定制度が大分上がって来た。


▼作業内容
・新たなルールを追加
・重要な業務メールのメールアドレスをホワイトリストへ登録


▼利用レシピ
http://tlec.linux.or.jp/docs/user_prefs
http://www.fenix.ne.jp/~G-HAL/comp/user_prefs
・その他少々


▼結果
・集計期間: 2007/08/07 00:00〜10:00

・mail: 1571通
・spam: 101通
 ・false negative: 5
 ・false positive: 2


▼課題:(苦手な事、誤判定)
・spamメールを添付したメール
・spamメールを引用したメール
・メールマガジン(spamと言えばspamか)

この辺は、やはりwhitelistを充実させるしかないのだろうか。


▼判定率向上の仮説
・汎用的なルールを複数登録しておく
・重要かつ通数の多いアドレスをwhitelist_fromへ登録しておく


今回の具体的な設定は、また次回。
続きはウェブで。


半袖 at 11:05|PermalinkComments(0)TrackBack(0)

2007年08月06日

SpamAssassinでspamメール対策 (3/n) : whitelist v.s. from詐称 part.2

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

SpamAssassinでspamメール対策 (2/n) : whitelist v.s. from詐称の続き

結論から言うと、『trusted_networks』は無効にした。
どうも今のメール環境には刺激が強すぎる設定だったようだ。


▼症状
・Fromフィールド foo@example.jp となっている
・Fromを詐称したメールだ

▼対応策
・trusted_networksを無効化

▼理由
社内メールドメイン名を名乗ったspamメールを適切に判定出来ないから

▼trusted_networksが有効となる環境の仮説
・多量のメールが配送されるメールドメインには不適切
・メール通数が100通程度の環境なら問題なさそう



さて、別の対応策を考えよう。
また振り出し。


半袖 at 15:05|PermalinkComments(0)TrackBack(0)

2007年08月03日

SpamAssassinでspamメール対策 (2/n) : whitelist v.s. from詐称

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

社内メールで使うドメイン名をホワイトリストに追加しようとした。
しかし、問題発生。false negativeは減らないのだ。


▼レシピ

#
# whitelist_from
#
whitelist_from *@example.com
whitelist_from *@example.net
whitelist_from *@example.org
whitelist_from *@example.jp


社内で使われているドメイン名をホワイトリストへ登録。
これで大丈夫だろうと思っていた。false negativeの数は減らない。

『何故だ?』


▼原因
・Fromフィールド foo@example.jp となっている
・Fromを詐称したメールだ

これは確かにホワイトリストに追加されているドメイン名。
白であると判定されても文句を言えない。現在困っている。


▼仮説
下記項目を設定してやると、この現象を解決するのかも知れない。

・whitelist_from_rcvd
・def_whitelist_from_rcvd
・whitelist_allows_relays


解決した場合は次回のネタ。
スパマーとの戦いは続く。


半袖 at 14:20|PermalinkComments(0)TrackBack(0)

SpamAssassinでspamメール対策 (1/n) : ここ数日の統計

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

SpamAssassinでspam判定をさせている。


false negativeの数がちらほら現れる。
そもそもメールを受信している数が多い。

▼メール統計

[日付] | [総数] | [spam]
20070725 12955 89
20070726 11862 93
20070727 14225 84
20070728 13857 91
20070729 8053 81
20070730 7613 107
20070731 11833 79
20070801 14717 84
20070802 13789 74
20070803 12572 106


false positiveはほぼ無い。
しかし、false negativeの数がspam判定された数に近い。
これをどうにかしたい。


▼判定率upへの策
1. ベイズDBを賢くする
2. ホワイトリスト、ブラックリストを作る

どちらかになって来る。
『他のフィルタを使う』と言うのは、今回議論の対象外。


今回はここまで。次回はconfのお話。


半袖 at 11:35|PermalinkComments(0)TrackBack(0)