FreeBSDでspamメールフィルター

| コメント(0) | トラックバック(0)

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でチェックされるようになります。

トラックバック(0)

トラックバックURL: http://blog.harmonicom.jp/mt/mt-tb.cgi/88

コメントする

プロフィール

ヤマカズー(ヤマカズ)

Webコンサルティング会社に勤めるシステムコンサルタントのおっちゃんです。
趣味はコンピューター。まんまですね。
あと申し訳程度に空手とか。
子供が二人います。

kazooooo at gmail.com

mixiはこちら

HARMONICOM

twitter

スゲーなんだこれ!?w > スマホをPCのセカンドディスプレーにできるAndroidアプリがイカス! #asciiplus http://t.co/4hbbnZeb
2012-02-02 20:08:03
いやあぁぁぁぁ~~!! ん?「D」と「.」?……「し」「る」? RT @hizous : @yamakazoo サーバの後ろに悲しそうな顔をした日本髪の若い女性が見えます・・・何か心当たりはないですか・・・? ん?キーボードの「D」と「、」のところを指さしているようです・・・
2012-02-02 11:39:49
家のMacBookといい会社のサーバーといい、原因不明なところでCPUがフルパワーになったり、ディスクへのアクセスが異様に遅くなったりする……これってある意味、寿命ってことなのかな……
2012-02-02 11:16:13
おお! RT @YahooNewsJP : [社会]<雑記帳>劇団四季「キャッツ」出演者が電子確定申告 - 毎日新聞 http://t.co/5tDvGJI6
2012-02-01 22:50:43
うちの会社にも備蓄いっぱい!! 深夜メンテの時にこっそり食べ(ry RT @YahooNewsJP : [社会]「ビスコ」売り上げ過去最高に…備蓄用缶人気で - 読売新聞 http://t.co/ZKIpZ1RJ
2012-02-01 19:12:41
follow me on Twitter