- 1. 概要
- 2. インストール
- 3. SpamassAssin の設定
- 4. SpamassAssin の学習
1. 概要
「SpamAssassin」に関しては「ウィキペディア - SpamAssassin」をご参照ください。
2. インストール
cd /usr/ports/mail/spamassassin/
make config
下記が、デフォルトのオプションになります。


オプションはデフォルトのままにしておきます。
cd /usr/ports/mail/spamassassin/
make
make install
インストール時のメッセージを残しておきます。
===> Installing for spamassassin-4.0.0_6
===> Checking if spamassassin is already installed
===> Registering installation for spamassassin-4.0.0_6
Installing spamassassin-4.0.0_6...
===> Creating groups.
Creating group 'spamd' with gid '58'.
===> Creating users
Creating user 'spamd' with uid '58'.
===> Creating homedir(s)
You should complete the following post-installation tasks:
1) Read /usr/local/share/doc/spamassassin/INSTALL
and /usr/local/share/doc/spamassassin/UPGRADE
BEFORE enabling SpamAssassin for important changes
2) Edit the configuration in /usr/local/etc/mail/spamassassin,
in particular /usr/local/etc/mail/spamassassin/init.pre
You may get lots of annoying (but harmless) error messages
if you skip this step.
3) To run spamd, add the following to /etc/rc.conf:
spamd_enable="YES"
4) If this is a new installation, you should run sa-update
and sa-compile. If this isn't a new installation, you
should run those commands immediately after update and
probably run them on a regular basis.
5) Install mail/spamass-rules if you want some third-party
spam-catching rulesets
6) Remove /usr/local/etc/mail/spamassassin/sa-update-keys if this software is no
longer needed.
SECURITY NOTE:
By default, spamd runs as root (the AS_ROOT option). If you wish
to change this, add the following to /etc/rc.conf:
spamd_flags="-u spamd -H /var/spool/spamd"
インストール後に必ず
/usr/local/bin/sa-update
を実行ます。
これを実行しないと「SpamassAssin」がうまく起動できないときがあります。
バージョンアップ後にこの処理が必要な時もあります。
一時期、「ports」をインストール際に、「sa-update」まで流すようになっていましたが、念のため、明示的に実行します。
3. SpamassAssin の設定
「SpamassAssin」の設定ファイルとして
/usr/local/etc/mail/spamassassin/init.pre
/usr/local/etc/mail/spamassassin/local.cf
というファイルが作成されています。
「init.pre」はデフォルトのまま変更しません。
この時点で、「local.cf」は。ほとんどコメントアウトされていますが、
vi /usr/local/etc/mail/spamassassin/local.cf
下記のように
# Add *****SPAM***** to the Subject header of spam e-mails
#
rewrite_header Subject *****SPAM*****
# Save spam messages as a message/rfc822 MIME attachment instead of
# modifying the original message (0: off, 2: use text/plain instead)
#
report_safe 1
# Set which networks or hosts are considered 'trusted' by your mail
# server (i.e. not spammers)
#
# trusted_networks 213.07.35.
# Set file-locking method (flock is not safe over NFS, but is faster)
#
# lock_method flock
# Set the threshold at which a message is considered spam (default: 5.0)
#
required_score 5.0
17、23、39行の 3行はコメントを外します。
これらの内容を説明すると、以下のようになります。
シンボル | 意味 |
rewrite_header Subject | spam と判定したときに Subject に加える文字です |
report_safe | spam 判定したときの処理を設定します。0、1、2 が指定可能
0:ヘッダに判定を載せるだけで本文には手を加えない
1:オリジナルのメールを添付ファイルにする
2:本文を spam メッセージの後に続ける |
required_score | spam と判断する閾(しきい)値となります
得点(?)がこの値を超えると spam と判断します |
「SpamassAssin」のデータベースは、各ユーザのディレクトリに
/home/ユーザ名/.spamassassin/
というディレクトリが作成され、ディレクトリの配下に以下のようなファイルが作成されます。
ファイル | 内容 |
auto-whitelist | 自動的に生成されるホワイトリストのデータベース
(ブラックリストの反対の意味になります)
この中に入ると spam と見なされなくなります |
bayes_seen |
2つのファイルがベイズ理論というものを用いた
spam データベースになります |
bayes_toks |
user_prefs | ユーザ用のテキスト設定ファイル
/usr/local/etc/mail/spamassassin/local.cf と同じ内容
ユーザ毎に設定を変える場合は本ファイルを編集します |
この設定ですと「4. SpamassAssin の学習」を行った結果は、ユーザごとの設定になってしまいます。
これをシステムで一括に持ちたい場合は、すべてのファイルを同一個所で見られるようにします。
システムで一括でもつデータベースディレクトリを、「/var/qmail/spamassassin」とするならば、
mkdir -pv /var/qmail/spamassassin
とします。権限を書き換えて、「spamd」でも「simscan」でもどちらでもアクセスできるようにしておきます。
そして、「/usr/local/etc/mail/spamassassin/local.cf」に修正を加えます。
vi /usr/local/etc/mail/spamassassin/local.cf
# bayes_ignore_header X-Bogosity
# bayes_ignore_header X-Spam-Flag
# bayes_ignore_header X-Spam-Status
の下に、3行加えます。
# bayes_ignore_header X-Bogosity
# bayes_ignore_header X-Spam-Flag
# bayes_ignore_header X-Spam-Status
bayes_path /var/qmail/spamassassin/bayes
use_bayes 1
allow_user_rules 0
59行は、定義ファイルのパスを宣言。
60行は、「bayes」を使用する定義(デフォルト 1 なので指定しなくてもよい)。
61行は、ユーザごとのルールを持たない設定です。
「SpamassAssin」の起動スクリプトは
/usr/local/etc/rc.d/sa-sampd
というファイルで作成されているはずです。
このスクリプトはいじる必要がありません。
起動を有効化します。
sysrc spamd_enable=YES
これで
service sa-spamd start
とすれば起動するはずです。
service sa-spamd status
で
spamd is running as pid 38352.
のような表示(末尾の数字はプロセス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
を忘れているはずです。実行してください。正常に起動できるようになるはずです。
4. SpamassAssin の学習
「SpamassAssin」は、絶対的なものではありません。
「spam」メールを「spam」と判断できなかったり、逆に通常のメールを「spam」と判断してしまうことがあります。
制度を高めるには、「SpamassAssin」に学習させてデータベースを更新していきます。
「SpamassAssin」に学習させるには、実際に受信したメールを「sa-learn」というツールを使って読み込ませます。
仮に「/home/ユーザ/spamassassin/spam」というフォルダと「/home/ユーザ/spamassassin/ham」というフォルダを作成しておきます。
「/home/ユーザ/spamassassin/spam」には、「spam」メールであって「spam」と判断されなかったメールを置きます。
「/home/ユーザ/spamassassin/ham」には、通常のメールであって 「spam」と判断されてしまったメールを置きます。
この状態で、spam を学習する際は、
sa-learn --spam /home/ユーザ/spamassassin/spam
spam でないものを学習する際は、
sa-learn --ham /home/ユーザ/spamassassin/ham
と入力します。
これで、データベースが更新されます。
新しい「spam」のパターンが現れても、こうやって学習させることにより、「spam」判定させることができるようになります。
|