- 1. ports
- 2. SpamassAssin の設定
- 3. SpamassAssin の学習
- 4. SpamassAssin-3.4.0_11 → 3.4.0_12 更新時のトラブル対策
- 5. SpamassAssin-3.4.0_15 更新時のトラブル対策
1. ports
SpamassAssin をインストールします。
/usr/ports/mail/spamassassin/
インストール後に必ず
> /usr/local/bin/sa-update
を流します。これをやらないと SpamassAssin がうまく起動できないときがあります。バージョンアップ後にこの処理が必要な時もあります。
2. SpamassAssin の設定
SpamassAssin の設定ファイルは、/usr/local/etc/mail/spamassassin/ に作成されます。
init.pre
local.cf
というファイルが作成されているはずです。
init.pre はデフォルトのまま変更しません。
この時点で local.cf はほとんどコメントアウトされていますが、以下の 3行はコメントを外します。
rewrite_header Subject *****SPAM*****
report_safe 1
required_score 5.0
これらの内容を説明すると、以下のようになります。
シンボル | 意味 |
rewrite_header Subject |
spam と判定したときに Subject に加える文字です |
report_safe |
spam 判定したときの処理を設定します。0、1、2 が指定可能
0:ヘッダに判定を載せるだけで本文には手を加えない
1:オリジナルのメールを添付ファイルにする
2:本文を spam メッセージの後に続ける |
required_score |
spam と判断する閾(しきい)値となります
得点(?)がこの値を超えると spam と判断します |
SpamassAssin のデータベースは、各ユーザのディレクトリに、/home/user/.spamassassin/ というディレクトリが作成され、ディレクトリの配下に以下のようなファイルが作成されます。
ファイル |
内容 |
bayes_seen |
2つのファイルがベイズ理論というものを用いた
spam データベースになります |
bayes_toks |
user_prefs |
ユーザ用のテキスト設定ファイル
/usr/local/etc/mail/spamassassin/local.cf と同じ内容
ユーザ毎に設定を変える場合は本ファイルを編集します |
この設定ですと 3. SpamassAssin の学習 を行った結果は、ユーザごとの設定になってしまいます。
これをシステムで一括に持ちたい場合は、すべてのファイルを同一個所で見られるようにします。
システムで一括でもつデータベースディレクトリを、/var/qmail/spamassassin とするならば、
> mkdir /var/qmail/spamassassin
とします。権限を書き換えて、spamd でも qscand でもどちらでおアクセスできるようにしておきます。
そして /usr/local/etc/mail/spamassassin/local.cf に以下の行を加えます。
bayes_path /var/qmail/spamassassin/bayes ← 定義ファイルのパス
allow_user_rules 0 ← ユーザごとのルールを持たない
SpamassAssin の起動スクリプトは、/usr/local/etc/rc.d/sa-sampd というファイルで作成されているはずです。
このスクリプトはいじる必要がありません。
/etc/rc.conf に
spamd_enable="YES"
という行を追加します。
これで
> /usr/local/etc/rc.d/sa-spamd start
とすれば起動するはずです。
> /usr/local/etc/rc.d/sa-spamd status
で
spamd is running as pid 41052. ← プロセスIDですからその都度変わります
のような表示が出ていれば、起動成功です。
もし、起動時に
child process [41019] exited or timed out without signaling production of a PID file: exit 255 at /usr/local/bin/spamd line 2642.
./sa-spamd: WARNING: failed to start spamd
のようなメッセージが出るようであれば
> /usr/local/bin/sa-update
を忘れているはずです。実行してください。正常に起動できるようになるはずです。
3. SpamassAssin の学習
SpamassAssin は絶対的なものではありませんので、spam メールを spam と判断できなかったり、通常のメールを spam と判断してしまうことがあります。
SpamassAssin の判断の制度を高めるには、SpamassAssin に学習させてデータベースを更新していきます。
SpamassAssin に学習させるには、実際に受信したメールを sa-learn というツールを使って読み込ませます。
仮に /home/ユーザ/spamassassin/spam というフォルダと /home/ユーザ/spamassassin/ham というフォルダを作成しておきます。
/home/ユーザ/spamassassin/spam には、spam メールであって spam と判断されなかったメールを /home/ユーザ/spamassassin/ham には、通常のメールであって spam と判断されてしまったメールを FTP 等によって、クライアントからサーバへコピーします。
この状態で、spam を学習する際は、
> sa-learn --spam /home/foo/spamassassin/spam
spam でないものを学習する際は、
> sa-learn --ham /home/foo/spamassassin/ham
と入力します。
これで、データベースが更新されます。
新しい spam のパターンが現れても、こうやって学習させることにより、spam 判定させることができるようになります。
4. SpamassAssin-3.4.0_11 → 3.4.0_12 更新時のトラブル対策
SpamassAssin を 3.4.0_11 から 3.4.0_12 に更新すると、sa-spamd が停止していて、起動すると
/usr/local/etc/rc.d/sa-spamd: WARNING: /var/run/spamd is not a directory.
/usr/local/etc/rc.d/sa-spamd: WARNING: failed precmd routine for spamd
と WARNING が出力されて sa-spamd が起動できないことがあります。
これは sa-spamd のプロセスIDファイルが /var/run/spamd.pid から /var/run/spamd/spamd.pid に移行したことによるものです。root ユーザで
> mkdir /var/run/spamd
してから
/usr/local/etc/rc.d/sa-spamd start
します。これで正常に起動できます。
5. SpamassAssin-3.4.0_15 更新時のトラブル対策
SpamassAssin-3.4.0_15 をインストールあるいは SpamassAssin-3.4.0_15 へのアップグレードを行うと
Can't locate Mail/SpamAssassin/CompiledRegexps/body_0.pm in @INC (@INC contains: /var/db/spamassassin/compiled/5.016/3.004000 /var/db/spamassassin/compiled/5.016/3.004000/auto /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.16/BSDPAN /usr/local/lib/perl5/site_perl/mach/5.16 /usr/local/lib/perl5/5.16/mach /usr/local/lib/perl5/5.16 /usr/local/lib/perl5/site_perl/5.16 /usr/local/lib/perl5/site_perl/5.16/mach) at (eval 1078) line 1.
というようなログが出ることがあります。
このような場合は
sa-compile
を行って
/usr/local/etc/rc.d/sa-spamd restart
すると、上記のログが出なくなります。
|