トップ |

2008年03月19日

Postfix + amavisd-new + Clam AntiVirus + Procmail + SpamAssassin の設定

一応正常に動いているみたいなので、メモっておきます。
受信メールサーバーはIMAPを使っています。

1)Procmail の設定ですが、

# vi /etc/procmailrc

SHELL=/bin/bash
PATH=/usr/bin:/bin
DROPPRIVS=yes
MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/
SPAM=$MAILDIR/.Spam/
LOGFILE=$HOME/.procmail.log # ログ出力先
#VERBOSE=ON # 詳細ログ出力

# 未承諾広告メール削除※システムの文字コードがEUCの場合
:0
* ^Subject:.*iso-2022-jp
* ^Subject:\/.*
* ? echo "$MATCH" | nkf -meZ2 | sed 's/[[:space:]]//g' | egrep '未承諾広告※'
/dev/null

# SpamAssassinによるスパムチェック
:0fw
|/usr/bin/spamc

# SpamAssassinがスパム判定したメールはスパム専用メールボックスへ配送
:0
*^X-Spam-Flag: YES
$SPAM

こんな感じです。
すべての受信メールを SpamAssassin に送ってスパムチェックをさせています。

ここで、

:0fw
|/usr/bin/spamc

の「f」は「アクションに指定されているコマンドをフィルタとして取り扱う。」ということだそうです。つまり、SpamAssassin をフィルタとして使うということですよね。この「f」がないとフィルタにならずに SpamAssassin に行ったきり戻ってこず、結果的に受信されないという状態になります。
ちなみに、「w」は「アクションに指定したフィルタやコマンドが終了するまで待つ。」ということらしいです。

2)スパム対策は、Procmail を使って SpamAssassin でするので、amavisd-new の spam メールフィルタは停止させています。
コメントアウト解除

# vi /etc/amavisd.conf

#X@bypass_spam_checks_maps

再起動。

# service amavisd restart

これを停止させるとかなりメモリの節約になります。

3)SpamAssassin 設定ファイルは TLEC のを使っています。
スパムメールと判断する閾値が TLEC の設定を使うと、

required_score 13.0

なので、これを「5.0」に書き換えるように以下のスクリプトを使用しています。

いくらか使っていれば学習して「13.0」でも良いようになるのかもしれませんが、僕の場合とりあえず最初は「5.0」~「7.0」ぐらいにしておかないとスパムをうまく振り分けてくれませんでした。

# vi spamassassin-update

#!/bin/bash

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# TLEC(http://tlec.linux.or.jp/)よりSpamAssassin設定ファイル最新版ダウンロード
cd /etc/mail/spamassassin
wget -qN http://tlec.linux.or.jp/docs/user_prefs
cp user_prefs local.cf
# スパム判断したメールを添付形式にしないように設定
echo "report_safe 0" >> local.cf

# ok_languagesオプション削除
sed -i '/^ok_languages/d' /etc/mail/spamassassin/local.cf

# local.cfのrequired_scoreを「5.0」に変更
required_score=5.0
sed -i "s/required_score.*/required_score $required_score/g" /etc/mail/spamassassin/local.cf

# SpamAssassin再起動
/etc/rc.d/init.d/spamassassin restart > /dev/null

ちなみに、各ユーザ毎に設定するなら、
各ユーザホームディレクトリにある、.spamassassin/user_prefs ファイルの required_score を設定します。local.cf より優先します。

投稿者 ゆう : 2008年03月19日 17:57 | カテゴリー 自宅サーバ (31)

PR 年間580円からの格安ドメイン取得サービス─ムームードメイン
★月額263円/容量1GB/機能満載! ロリポップ!レンタルサーバー ★
ホスティングするならリンククラブ!レンタルサーバならリンククラブ!


トラックバック

このエントリーのトラックバックURL:
http://www.wave440.com/blog/mt-trbk.cgi/194

コメントを投稿




保存しますか?