JITAKU_SVR_Wiki
spamassassin †
spamassassinはamavisd-newからメールのspam度合い(スコアの付与)を判断を求められます。
そのため、spamassassinはDBを保持し、常に学習することで精度を上げます。
データベースのクリア †
spamassassinが持つDBは
/etc/mail/spamassassin/bayes/配下のbayes_seen、bayes_toks等があります。
これらのファイルを削除することで学習をクリアすることができます。
●手順
1.spamassassinの停止
/etc/init.d/spamassassin stop
2.amavisd-newの停止(念のため)
/etc/init.d/amavisd stop
3.spamassassinnのDBを削除
rm /etc/mail/spamassassin/bayes/bayes_seen
rm /etc/mail/spamassassin/bayes/bayes_toks
4.amavisd-newの起動
/etc/init.d/amavisd start
5.spamassassinの起動
/etc/init.d/spamassassin start
spamassassinの学習 †
色々なサイトで調査したところ、以下の情報がありました。
- spamメールを正常と判断してしまったものを、spamと学習させる
- 正常メールをspamと判断してしまったものを、正常メールと学習させる
- それぞれ1000通くらい学習させると効果が出てくる
- 5000通くらいで飽和する(5000通あたりまで続ける)
- 古いspamメールを学習させると、「古いメールはspam」という判断をしてしまう
=>spamメールを貯めて置いても意味がないということ。その逆も同じ。
学習方法 †
今のところ(2010-06-03)誤判断してしまったメールを集める方法は手動オペレーションしかありません。
特定のユーザのメールボックスから直接mvで拾いだし、メールを集めます。
以下、手順です。
spamメールの学習方法
spamメールを正常なメールとして判断されてしまった場合
1.spamを収集するディレクトリを作成します。
# mkdir spamdir
2.spamメールをコピーし持ってきます。
# cp spam-mail spamdir
3.sa-learnコマンドで学習させます。spamの学習--spamオプションです。
# sa-learn --spam spamdir/
4.古いメールを残し、学習させると「古いメールはspam」という判断をしてしまうため削除します。
#rm -rf spamdir/*
正常メールの学習方法
正常なメールをspamメールとして判断されてしまった場合
1.nonspamを収集するディレクトリを作成します。
# mkdir nonspamdir
2.正常メールをコピーし持ってきます。
# cp nonspam-mail nonspamdir
3.sa-learnコマンドで学習させます。spamの学習--hamオプションです。
# sa-learn --ham nonspamdir/
4.古いメールを残し、学習させると「古いメールは正常」という判断をしてしまうため削除します。
#rm -rf nonspamdir/*
これをそれぞれ5000通あたりまでします。
また、spamassassinのデータベースをクリアした場合はまた最初からメールを少しずつ学習させる必要があります。
ルールの更新 †
spamassassinはspamassassin.orgでメンテナンスしています。
最新のルールを取得するにはsa-updateコマンドを使います。定期的もしくは手動で実行し、spamassassinを再起動します。
# sa-update
# /etc/init.d/spamassassin condrestart
※condrestartはデーモンが起動しているかどうかを確認してから再起動するオプション
# cat /etc/cron.d/sa-update
### OPTIONAL: Spamassassin Rules Updates ###
#
# http://wiki.apache.org/spamassassin/RuleUpdates
# Highly recommended that you read the documentation before using this.
# ENABLE UPDATES AT YOUR OWN RISK.
#
# /var/log/sa-update.log contains a history log of sa-update runs
10 4 * * * root /usr/share/spamassassin/sa-update.cron 2>&1 | tee -a /var/log/sa-update.log