FreeBSD SpamAssassin - eiichiromomma/CVMLAB GitHub Wiki

(FreeBSD) SpamAssassin

SPAMを自動的に検知するフィルタ(要procmail)

index:child

導入

SPAMが酷いのでportからインストール。 /etc/rc.confでenableにする。

local.cf

標準の設定では日本語のSPAMに弱いので

を/usr/local/etc/mail/spamassassinに突っ込む。 取り敢えず暫くこれで様子見。

/usr/local/etc/procmailrc

LOGFILE=/var/log/procmail.log
VERBOSE=ON
LOCKFILE=$HOME/.spamassassin.lock
DROPPRIVS=yes
:0fw: $LOCKFILE
* < 256000
| /usr/local/bin/spamc -d IPアドレス

として.forwardでprocmail指定したら誰でもチェックできるようにする。 希望者が居たら同一の.forwardをコピーするだけにしたい魂胆。

Content preview を日本語で

Spamと判定されたメールを抜粋する機能があるけど、日本語SPAMだと化ける。 local.cfに

report_charset iso-2022-jp

を追加すると多分化けない。 こんな時に限ってSpamが来ない。

Subjectに警告表示

上のlocal.cfだと警告が出ないので

rewrite_header Subject *****SPAM*****

をlocal.cfに追加。

.forwardファイル

procmailを使う場合、大抵.forwardファイルには

"|IFS=' ' && exec /usr/local/bin/procmail -f- || exit 75 #user"
userは自分のログイン名に置き換えること

と書いてが#はコメントの筈。 そうでなければユーザ毎に.forwardファイルを書き換える羽目になる。 というわけで

"|IFS=' ' && exec /usr/local/bin/procmail -f- || exit 75"

で試したら無事動作。

古い設定とエラー

ログを見たらエラーを吐いてるので調べてみると

にまんま答えが載ってた。

# SPF - perform SPF verification.
#
#loadplugin Mail::SpamAssassin::Plugin::SPF

とする。

学習機能

SpamAssassinの目玉機能の一つ、学習をさせる。 hamは誤ってSPAMと判定されてしまったメール。

sa-learn --ham hamメールのあるフォルダorファイル

フィルタをすり抜けてしまったSPAMについては

sa-learn --spam SPAMメールのあるフォルダorファイル

また、spamcを使っている場合にはspamdを--allow-tellオプション付きで起動しておいてから

spamc -L ham -u user@spamc_host < hamメールのファイル
spamc -L spam -u user@spamc_host < SPAMメールのファイル

とする。

どう頑張ってもspamになるhamメール

dellと日経BPとNIからのメールはHTMLてんこ盛りのため、学習させても大抵spamとなってしまう。 仕方ないのでlocal.cfに以下の記述を追加

whitelist_from *@dell.com
whitelist_from *@bizmails.nikkeibp.co.jp
whitelist_from [email protected]
allow_user_rules 1

最後のは各ユーザレベルで設定可能とするフラグ。 From詐称で来たらもうちょい厳しい基準にする予定。

より強力な設定

ここ からuser_prefsを~/.spamassassin/の中に置けば随時更新されている、より強力な設定に置き換わる。

ただ、個別に設定するファイルを毎回書き換えるのも無駄が多いという事で、作者の方が案を出して下さった。

user_prefsではinclude行が使えるそうで、試しに一括して管理が出来るかやってみた。

まずはuser_prefsをwget

wget -O ~/tlec_prefs http://tlec.linux.or.jp/docs/user_prefs

suでrootになって、

mv tlec_prefs /usr/local/etc/hogehoge/

みたいな感じで参照可能な場所に保存。

各ユーザは

cd ~/.spamassassin
mv user_prefs user_prefs.old

として、vi等で

include /usr/local/etc/hogehoge/tlec_prefs

required_score 15.0

といった中身のuser_prefsを作る

required_scoreも置き換わったのでちゃんと動作しているらしい。(様子見)