ライン

ポイント:Spamチェックを受信時に行う

ライン

 はじめに

mail/spamass-milter

 Milterを使って、SPAM対策を実施してしまう spamass milter。今回も Postfix ではなく、今回もsendmailによる設定です。Milterは Postfixでも使えるようになっているはずなので、使っている人もいるのかも知れませんが。FreeBSDのMTA (Mail Transfer Agent) が変わるまでは、このまま使い続けそうです。

 FreeBSD 7.1での例です。

 導入と設定

導入

 早速、導入を開始します。portsから導入を行います。

# cd /usr/ports/mail/spamass-milter
# make clean install clean

 WITH_ADDAUTH_PATCH と WITH_REJECTTEXT_PATCH というパッチを適用できるようです。
今回はデフォルトのままにしますが。

 また、導入には、当然に mail/p5-Mail-SpamAssassin が導入されてくるので、そこそこのコンパイルになりそうです。

という形で導入をすることとしました。
最終的には、

# make clean
===>  Cleaning for p5-Mail-SpamAssassin-3.2.5_1
===>  Cleaning for p5-Net-DNS-0.65
===>  Cleaning for p5-IO-Zlib-1.09
===>  Cleaning for p5-HTML-Parser-3.60
===>  Cleaning for p5-IO-Compress-Zlib-2.015
===>  Cleaning for p5-Compress-Zlib-2.015
===>  Cleaning for p5-Mail-Tools-2.04
===>  Cleaning for p5-Digest-SHA1-2.11
===>  Cleaning for p5-libwww-5.825
===>  Cleaning for p5-Archive-Tar-1.44
===>  Cleaning for p5-Encode-Detect-1.01
===>  Cleaning for p5-NetAddr-IP-4.02.4
===>  Cleaning for p5-Mail-SPF-2.005
===>  Cleaning for p5-IO-Socket-SSL-1.22
===>  Cleaning for razor-agents-2.84
===>  Cleaning for p5-IP-Country-2.26
===>  Cleaning for p5-Net-IP-1.25
===>  Cleaning for p5-Digest-HMAC-1.01
===>  Cleaning for p5-HTML-Tagset-3.20
===>  Cleaning for p5-URI-1.37
===>  Cleaning for p5-Compress-Raw-Zlib-2.015
===>  Cleaning for p5-IO-Compress-Base-2.015
===>  Cleaning for p5-TimeDate-1.16,1
===>  Cleaning for p5-IO-Compress-Bzip2-2.015
===>  Cleaning for p5-IO-String-1.08
===>  Cleaning for p5-Package-Constants-0.02
===>  Cleaning for p5-ExtUtils-CBuilder-0.24
===>  Cleaning for p5-Module-Build-0.30
===>  Cleaning for p5-Net-DNS-Resolver-Programmable-0.003
===>  Cleaning for p5-version-0.76
===>  Cleaning for p5-Error-0.17015
===>  Cleaning for p5-Net-SSLeay-1.35
===>  Cleaning for p5-Geography-Countries-1.4
===>  Cleaning for p5-Math-BigInt-1.89
===>  Cleaning for p5-Compress-Raw-Bzip2-2.015
===>  Cleaning for p5-YAML-0.68
===>  Cleaning for p5-ExtUtils-ParseXS-2.19
===>  Cleaning for spamass-milter-0.3.1_7

という関連パッケージが導入されました。

 /usr/local/share/doc/spamass-milter/activation.txt に導入のメモが書かれているので、チェックをしておく。

 まずは、SpamAssassinを起動する設定をします。
/etc/rc.conf に

spamd_enable="YES"
spamd_flags="-s /var/log/spamd.log -u spamd -H /var/spool/spam"
# spamass_milter_enable="YES"
# spamass_milter_flags="-i 127.0.0.1/8 -i XXX.YYY.ZZZ.AAA/28 -x -f -p /var/run/spamass-milter.sock"

のように記述。2行はまだコメントのままにしておきました。
XXX.YYY.ZZZ.AAA は、ネットワークアドレスです。

 /usr/local/etc/mail/spamassassin 以下には設定ファイルが準備されています。
init.pre には、RelayCountryがコメントになっているままなのでこれを有効にします。
local.cfにはサンプルが準備されているだけで、有効になっているものがありません。
ここは毎度で、いただきものを設定することにしました。

# fetch -o local.cf http://tlec.linux.or.jp/docs/user_prefs

これをデフォルトにすることが正しいかはそれぞれの判断でどうぞ。私は結構変更した部分があります。
少しだけ書くと、

report_safe 0
normalize_charset 1
rewrite_header Subject [SPAMIL]
whitelist_from *@example.jp

のようにすることができます。report_safe 0なら、ヘッダーの中に判定理由が書かれるので、本文が修正されてしまうことがないので混乱しないでしょうし。
 その他、init.pre v310.pre v320.preなどはそれぞれの設定を加えておくこともできますので、お試ししてみてください。

設定ファイルの作成 (/etc/mail)

 さて、毎度の /etc/mail 以下の設定を加えることにします。
sendmail側の設定です。

INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass-milter.sock,F=,T=C:15m;S:4m;R:4m;E:10m')dnl
define(`confMILTER_MACROS_CONNECT',`b, j, _, {daemon_name}, {if_name}, {if_addr}')dnl

として更新してみました。

# make cf install all
# make restart

これで反映されました。
/etc/rc.conf のコメントしていた2行をはずして有効にしておきます。

# /usr/local/etc/rc.d/spamass-milter start
SPAMの対処方法

 SpamAssassinで付けられたフラグは、以下のように付けられていました。

X-Spam-Flag: YES
X-Spam-Status: Yes, score=36.3 required=13.0 tests=BLACK_DCN,CBL_DCN,
	CONTENT_TYPE_PRESENT,FAKEDWORD_ONE,FAKEDWORD_VERTICALLINE,FAKEDWORD_ZERO,
	RAZOR2_CF_RANGE_51_100,RAZOR2_CF_RANGE_E4_51_100,RAZOR2_CF_RANGE_E8_51_100,
	RAZOR2_CHECK,RAZORSPAMCOP,RCVD_IN_BL_SPAMCOP_NET,RCVD_IN_CBL,RCVD_IN_XBL,
	RIPE_NCC,SURBL_DCN,URIBL_AB_SURBL,URIBL_BLACK,URIBL_JP_SURBL,XBL_DCN
	autolearn=failed version=3.2.5
X-Spam-Report: 
	*  0.1 RCVD_IN_BL_SPAMCOP_NET RBL: Received via a relay in bl.spamcop.net
	*      [Blocked - see <http://www.spamcop.net/bl.shtml?194.33.15.7>]
	*  0.5 RCVD_IN_XBL RBL: Received via a relay in Spamhaus XBL
	*      [194.33.15.7 listed in zen.spamhaus.org]
	*  0.1 RCVD_IN_CBL RBL: Received via a relay in cbl.abuseat.org
	*      [Blocked - see <http://cbl.abuseat.org/lookup.cgi?ip=194.33.15.7>]
	*  1.6 URIBL_AB_SURBL Contains an URL listed in the AB SURBL blocklist
	*      [URIs: xcjopiof.cn]
	*  1.0 URIBL_JP_SURBL Has URI in JP at http://www.surbl.org/lists.html
	*      [URIs: xcjopiof.cn]
	*  1.0 URIBL_BLACK Contains an URL listed in the URIBL blacklist
	*      [URIs: xcjopiof.cn]
	* -0.1 CONTENT_TYPE_PRESENT exists:Content-Type
	*  0.1 RIPE_NCC Mail from RIPE NCC area (Russia, Italy, Spain...)
	*  0.5 FAKEDWORD_VERTICALLINE FULL: ex. REM|O|VED
	*  0.5 FAKEDWORD_ZERO FULL: ex. Cust0mer
	*  0.5 FAKEDWORD_ONE FULL: ex. l1st
	*  1.5 RAZOR2_CF_RANGE_E8_51_100 Razor2 gives engine 8 confidence level
	*      above 50%
	*      [cf: 100]
	*  1.0 RAZOR2_CHECK Listed in Razor2 (http://razor.sf.net/)
	*  1.5 RAZOR2_CF_RANGE_E4_51_100 Razor2 gives engine 4 confidence level
	*      above 50%
	*      [cf: 100]
	*  2.5 RAZOR2_CF_RANGE_51_100 Razor2 gives confidence level above 50%
	*      [cf: 100]
	*  8.0 RAZORSPAMCOP RCVD_IN_BL_SPAMCOP_NET && RAZOR2_CF_RANGE_51_100
	*  3.5 BLACK_DCN BLACK_DCN
	*  3.5 XBL_DCN XBL_DCN
	*  3.5 CBL_DCN CBL_DCN
	*  5.5 SURBL_DCN Distributed Collaborative Network and URIBL_??_SURBL
X-Spam-Level: ************************************
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on HOST.example.jp

 このケースでは、SPAMに扱うのは13ポイントが必要で、該当メールは、36.3ポイントのSPAMになりうる条件を持っていたことになります。
わたしの場合、Procmail のレシピで判定させ、SPAM専用のフリーメールアドレスに送りつけています。
 本当に必要なメールが入っている可能性があると連絡があった場合には、そこを探しにいけばいいわけです。

 通常は、Procmailなどを使わなくても、ヘッダーについている "X-Spam-Flag: YES" をメーラーの振り分け機能でSPAMフォルダにためるようにすればいいでしょう。いちいち手でSPAMを振り分ける手間は削減されるはずです。

【改訂履歴】作成:2009/02/22
2009/06/01 … Namazu検索の窓を追加
【参考リンク】
SpamAssassin Milter Plugin … オフィシャルページ

Copyright © 1996,1997-2006,2007- by F.Kimura,