FreeBSD SpamAssassin - eiichiromomma/CVMLAB GitHub Wiki
FreeBSD) SpamAssassin
(SPAMを自動的に検知するフィルタ(要procmail)
導入
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も置き換わったのでちゃんと動作しているらしい。(様子見)