SpamAssassinというspamメールフィルターソフトがあります。このソフトはとても強力で、設定しだいで95%以上の確率で正しくメールを振り分けることができる優れものです。
今回はこのSpamAssassinをFreeBSDサーバーに導入してみます。
実は私もだいぶ昔、SpamAssassinが有名になる前に、自己学習式のspamメールフィルターを作っていたのですが、なかなか処理が面倒だなぁ、と思っていたものです。
FreeBSDでのインストールは、portsで簡単にできます。
cd /usr/ports/mail/p5-Mail-SpamAssassin/
make install
インストール時の設定は特に変更しないでも大丈夫です。
念のため「RELAY_COUNTRY」を追加で入れてみました。
インストールが完了したら、設定ファイルを編集します。
設定ファイルは/usr/local/etc/mail/spamassassin/ディレクトリにあります。ほとんど修正する必要はありませんが、一箇所だけ修正します。
# cd /usr/local/etc/mail/spamassassin
# cp local.cf.sampl local.cf
# echo "allow_user_rules 1" >> local.cf
この設定を追加することで、ユーザー各自の設定ファイルを使えるようにします。
次に、日本語に対応したSPAMの判定用の設定ファイルをダウンロードします。SpamAssassinはもともと国外で作成されたため、そのままでは日本語のメールをうまく解析できません。
これを補うため、TLEC(Tokyo Linux Entertainment Community)の松田陽一さんが作成した「user_prefs」を利用するのが定番になっています。
spamdのホームディレクトリに移動し、次のように実行してください。
# cd /var/spool/spamd/
# fetch http://tlec.linux.or.jp/docs/user_prefs
ただ、このまま起動すると、下記のようなエラーが出てしまいます。
[49942] info: config: failed to parse, now a plugin, skipping, in "/var/spool/spamd/.spamassassin/user_prefs": ok_languages ja en
これを回避するために、/usr/local/etc/mail/spamassassin/v310.preファイルの以下の部分をコメント解除します。
loadplugin Mail::SpamAssassin::Plugin::TextCat
最後に、rc.confにデーモンの起動設定を追加します。
spamd_enable="YES"
spamd_flags="-c -u spamd -g spamd -H /var/spool/spamd"
デーモンの起動ユーザー・グループは「spamd」に設定しておきます。
最後にデーモンを起動します。
# /usr/local/etc/rc.d/sa-spamd start
amavisd-newのところでも触れたのですが、一点注意しなければならないのは、amavisd-newの機能でspamメールの振り分けをさせると、SMTPで取り扱うメールが全てspamチェックされてしまいます。そうすると、お客様に普通に送信するメールや、メーリングリスト等のお客様のメールまでspam扱いされてしまいます。
ウィルスメールでしたら、無条件でチェックして削除したほうが良いかと思いますが、spamメールは一応配信されますので、誤認識されると問題です。
できれば自サーバーのユーザーの受信メールだけspamチェックしたほうが良いと思いますので、全ユーザー向けにprocmailを設定し、そこでSpamAssassinを使用します。
まず、procmailをインストールします。
# cd /usr/ports/mail/procmail
# make install
次に、procmailの全ユーザー向け設定/usr/local/etc/procmailrcに以下を追加します。
# spamassassin
:0fw: spamassassin.lock
| /usr/local/bin/spamc
また、postfixの設定/usr/local/etc/postfix/main.cfのmailbox_command設定を下記のように変更します。
mailbox_command = /usr/local/bin/procmail
このようにすることで、このサーバーのメールボックスに入るメール全てが、SpamAssassinでチェックされるようになります。
コメントする