ライン

ポイント:かなりSPAM検知精度がアップ

ライン

 はじめに

mail/spamass-milter

 今回もMilterを使いSPAM対策可能な spamass milter (sendmail milter for passing emails through SpamAssassin)のインストールです。
今回も変わらずsendmailでの設定です。Postfixでも導入して動作を確認していますが別ページに残っているはずですのでご参照ください。
 FreeBSD 9.2での例です。

 導入と設定

導入

 早速、導入を開始します。pkgでインストールします。各オプション指定で入れるかは少し考えます。

# pkg install spamass-milter

 最後に以下のようなメッセージが来ますので、「y」を答えます。

Creating group 'spamd' with gid '58'.
Creating user 'spamd' with uid '58'.
config: no rules were found!  Do you need to run 'sa-update'?

*******************************************************
* _  _  _ _______  ______ __   _ _____ __   _  ______ *
* |  |  | |_____| |_____/ | \  |   |   | \  | |  ____ *
* |__|__| |     | |    \_ |  \_| __|__ |  \_| |_____| *
*                                                     *
*******************************************************
*    You must install rules before starting spamd!    *
*******************************************************
Do you wish to run sa-update to fetch new rules [N]? y
...
You may wish to run sa-update now to obtain the latest rules.

NOTE:  FREEBSD users: If you are updating from a version prior to 3.20.
sa-update now places state files in /var/db/spamassassin and not
/var/lib/spamassassin.  This is to be consistant with FreeBSD file
directory conventions.

If you run sa-compile, you will notice that files are in
/var/db/spamassassin/compiled/<perlversion>/<version> instead of
/var/db/spamassassin/compiled/<version>.
No attempts have been made to move old versions over. You must recompile.

If you are running with spamd, you must add the following to rc.conf:
spamd_enable="YES"

Security Note:  If you did NOT deselected AS_ROOT, spamd will be running
as root. To change this, also add this to rc.conf:
spamd_flags="-u spamd -H /var/spool/spamd"

------------------------------------------------------------------------
spamass-milter has been installed, but it must be activated manually.
Please refer to...

  /usr/local/share/doc/spamass-milter/activation.txt

...for details.

You may also want to tweak your spamd rc.subr(8) startup flags to
specify a username to switch credentials to when delivering mail, if
applicable.
------------------------------------------------------------------------

以上のように導入が終わりました。

 /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,XXX.YYY.ZZZ.AAA/28 -f -p /var/run/spamass-milter.sock"

のように記述。XXX.YYY.ZZZ.AAA は、利用しているネットワークアドレス。
-i 以下から送信されるネットワークからのチェックはされなくなるので、来たメールにはチェックは必要だけど、送るメールにはチェック不要という場合に指定すると良いというものです。

 /usr/local/etc/mail/spamassassin にlocal.cfを用意することになりますが、これは毎度でいただきものを利用します。

# fetch -o local.cf http://www.flcl.org/~yoh/user_prefs

自分用に変更を入れます。また、サンプルについていたものは、以下のようなものでした。

# grep -v "^#" local.cf.sample  | grep -v '^$'
ifplugin Mail::SpamAssassin::Plugin::Shortcircuit
endif # Mail::SpamAssassin::Plugin::Shortcircuit

これを最後に加えることにしました。
 起動は、

# /usr/local/etc/rc.d/sa-spamd start

これで起動できます。ログは、/var/log/spamd.logに出力されますので、うまく上がらないときには確認してみます。

error: config: no rules were found! Do you need to run 'sa-update'?

毎度で、上記のようなエラーが出ているかも知れません。
これは、既に説明不要かも知れませんが、sa-updateが未実行の場合に出るものです。

 今回も、新規導入で入れていますので作業をします。

# sa-update

そのままプロンプトが戻ってくると思います。
これで、再度起動コマンドを入れるとエラーにならないで開始できたと思います。

# /usr/local/etc/rc.d/spamass-milter start

 これで導入は完了です。

 メールシステム連動

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

 さて、毎度の /etc/mail 以下の設定を加えることにします。
sendmail側の設定です。ホスト用に準備しているmcファイルに以下のような追加を入れます。

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',`t, b, j, _, {daemon_name}, {if_name}, {if_addr}')dnl
define(`confMILTER_MACROS_HELO',`s, {tls_version}, {cipher}, {cipher_bits}, {cert_subject}, {cert_issuer}')dnl
define(`confMILTER_MACROS_ENVRCPT', `Z, v, r, b, {rcpt_mailer}, {rcpt_host}, {rcpt_addr}')dnl

更新しましょう。

# make cf install all
# make restart

これで反映されました。

動作確認

 SpamAssassinで付けられたmaillogとメールのヘッダーを確認しておきます。

Nov 15 22:40:25 - sm-mta[42723]: rAFDeBuf042723: 
 Milter add: header: X-Spam-Status: No, score=-97.9 required=9.0 tests=CONTENT_TYPE_PRESENT,
 \n\tISO2022JP_BODY,ONLY1HOPDIRECT,RDNS_NONE,USER_IN_WHITELIST autolearn=no\n\tversion=3.3.2
Nov 15 22:40:25 - sm-mta[42723]: rAFDeBuf042723:
 Milter add: header: X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on xxx
Nov 15 22:40:27 - sm-mta[42726]: rAFDeBuf042723: to=<X>, ctladdr=<Y> (), 
 delay=00:00:16, xdelay=00:00:00, mailer=local, pri=34905, relay=local, dsn=2.0.0, stat=Sent

 ローカル内のメールなのにSPAM判定されてもつらいですが、ここではチェックの対象にしてあります。

X-Spam-Status: No, score=-97.9 required=9.0 tests=CONTENT_TYPE_PRESENT,
        ISO2022JP_BODY,ONLY1HOPDIRECT,RDNS_NONE,USER_IN_WHITELIST autolearn=no
        version=3.3.2
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on xxx

 動作を確認することができました。

【改訂履歴】作成:2013/11/15
【参考リンク】
SpamAssassin Milter Plugin … オフィシャルページ

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