amavis-new + spamassassin (2006/05/06)

研究室のメールサーバでは,スパム対策技術で紹介されている「選択的SMTP拒絶方式」(Selective SMTP Rejection, S25R)を利用しています.この方式は,パソコンから直接メールサーバに向けて送信されてくるSpamをかなりの確率で阻止してくれます.ただし,他のメールサーバから転送されてくるSpamはすり抜けてきます.Spamのほとんどがパソコンから直接メールサーバに向けて送信されるものですので,ほとんどのSpamは阻止できていると言えます.さらに,S25Rはメールサーバに接続してくる段階で阻止するので,メールサーバの負荷が軽減できます.

他のメールサーバを経由してくるSpamはメーラなどで対策すれば,ほぼ問題ありません.しかし,「Debian GNU/Linux徹底入門」武藤健志著でSpamのヘッダ+本文のコンテンツフィルタであるspamassassinの文章を読んで,amavis + spamassassinを導入してみようと思いました.

amavis-new + clamavは設定済みとします.最初に,spamassassinをインストールします.

# apt-get install spamassassin

ここで,spamassassinのデーモンを立ち上げたければ/etc/default/spamassassinで「ENABLED=1」としなさい,というメッセージが出ますが,amavis-newから直接/usr/bin/spamassassinを呼び出すので,デーモンは不要です.

amavis-newからspamassassinを利用するために,/etc/amavis/conf.d/15-content_filter_mode内の次の行のコメントをとります.

@bypass_spam_checks_maps = (
   \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);

これで,spamassassinによるコンテンツフィルタが動作することになります.今回は,メールサーバでSpamの削除はできるたけしないと方針でいきたいと思いますので,Spamと判断される閾値を高目に設定します.閾値の設定は,/etc/amavis/conf.d/20-debian_defaultsで指定します.

$sa_tag_level_deflt  = 4.0;  # ヘッダにスパムの情報を加える
$sa_tag2_level_deflt = 20.0; # スパムであると判定する
$sa_kill_level_deflt = 20.0; # スパムを宛先に通知しアーカイブを保存する
$sa_dsn_cutoff_level = 30.0; # スパムを宛先に通知しない

デフォルト値は上から順に2.0, 6.31, 6.31, 10.0でしたので,おそらく十分高めに設定できたと思います.これから届くメールを見て判断したいと思います.また,日本語メールなどは,スコアを高く評価されてしまうので,スコアを低めに評価するようなローカルルールを設定しておくのがよいかと思います.これらのルールは/etc/spamassassin/local.cfにおいておきます.研究室のメールサーバには,日本Linux Usersメーリングリストのローカルルールを少し修正して利用しています.

$sa_tag_level_deflt = 4.0を越えたら,同じファイルにあるSubjectの先頭に $sa_spam_subject_tag = '***SPAM*** ' がつくかと思いましたが,つきませんでした.ヘッダには,スコアの情報などがのりますが,Subjectには何も変化が見られません.少し寂しいので,なんとかSubjectに情報を載せたいと思い,/usr/sbin/amavisd-newを見ていたら,それらしいものを見つけました./etc/amavis/conf.d/20-debian_defaultsに次の一行を追加します.

$sa_spam_subject_tag1 = '***possible SPAM*** ';

これで,$sa_tag_level_deflt = 4.0 を越えたら '***possible SPAM*** ' が追加されます.しばらくは,スコアを見て楽しみたいと思います.


梅原 大祐 / UMEHARA Daisuke umehara@kit.ac.jp
Last modified: 2020/05/01 15:37
Total Access Count