玄箱HGのSPAMメール対策(Procmail + SpamAssassin)
先日、メールサーバPostfixを導入したので、SpamAssassinとProcMailによるSPAMメール対策方法を紹介します。ウィルスメールの対策は、ClamAVとAMaViSdで行うと決めていたため、当初、SpamAssassinとAMaViSdを使用してできないかとチャレンジしました。結論から言うと、うまくいきませんでした。ここでは、多くの先人も行っているProcMailとSpamAssassinを使用した例を説明します。最初、ProcMailなしでやろうとしていたので、インストールの順序がSpamAssassin、ProcMailの順になっていますが、恐らく同時にやっても、うまくいきます。ちなみに、FedoraならばProcmailは不要でAMaViSdがSpamAssassinを起動するみたいです。参考にしたサイトは次の通りです。
まず、SpamAssassinをいつものようにインストールします。
$ aptitude update $ aptitude search spam $ aptitude install spamassassin
すると、7つぐらいのパッケージがインストールされますが、次のようなメッセージが流れます。
: 途中略 :
spamassassin (3.0.3-2sarge1) を設定しています ...
SpamAssassin Mail Filter Daemon: disabled, see /etc/default/spamassassin
: 途中略 :
インストール直後は、SpamAssassinが無効(disabled)のようなので、メール用ユーザ(私の場合、kurokin)になり、SPAMメールを覚えさせます。
# su kurokin
# spamassassin -t < /usr/share/doc/spamassassin/examples/sample-spam.txt
Created user preferences file: /home/kurokin/.spamassassin/user_prefs
Received: from localhost by kurohg
with SpamAssassin (version 3.0.3);
Wed, 28 Mar 2007 04:26:25 +0900
From: Sender <sender@example.net>
To: Recipient <recipient@example.net>
Subject: Test spam mail (GTUBE)
Date: Wed, 23 Jul 2003 23:30:00 +0200
Message-Id: <GTUBE1.1010101@example.net>
X-Spam-Flag: YES
X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on kurohg
X-Spam-Level: **************************************************
X-Spam-Status: Yes, score=997.2 required=5.0 tests=ALL_TRUSTED,
すると、下記のようなメッセージが出力されます。とりあえず、spamassassinは正しく機能しているようです。この後、再度rootとなり、/etc/default/spamassassinを次のように編集します。
ENABLED=1
そして、spamデーモンを起動します。
$ /etc/init.d/spamassassin start
psで見ると、SpamAssassinは動いているのですが、テストメールを送っても、メールヘッダーにX-Spam-Checkerの文字がないので、うまく動いていません。そこで、Procmailもインストールします。
$ aptitude install procmail
そして、再度kurokinユーザになり、~/.forwardと~/.procmailrcを作成します。まず~/.forwardは次のようにします。詳しい意味はよく分かりませんが、メールをprocmailに渡し、kurokinにフォワードする設定です。
"|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #kurokin"
ちなみにフォワードするアドレスが同じならば、次の設定でもうまくいきました。
"|exec /usr/bin/procmail"
そして、~/.procmailrcは次のようにします。
PATH=$HOME/bin:/usr/bin:/usr/ucb:/bin:/usr/local/bin:. MAILDIR=$HOME/Maildir DEFAULT=$MAILDIR/ <- スパムではなかった場合のメール置き場所 LOGFILE=$HOME/procmaillog LOCKFILE=$HOME/.lockmail :0fw | spamc
ここで大事なのは、DEFAULT=$MAILDIR/の設定で、最後に/を入れることが重要です。最初、$MAILDIRとしていたところ、~/Maildirの直下に、msg.***というメッセージファイルが生成されます。中身は、まともなのですが、これはBeckeyでは見ることができません。これで1時間悩みましたが、$MAILDIR/とすることで、~/Maildirのcurやnewにきちんと生成されるようになりました。実際、テスト的なメールを流すと、次のようなメッセージがヘッダーにつきます。
X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on kurohg X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED,AWL > autolearn=ham version=3.0.3
SPAMチェックされ、パスすれば、通常どおり、普通にメールが届きます。
最新の7件
OpenGL
電子工作
玄箱HG
- ClamAVのアップデート
- Smartyも入れてみる
- etchでPHP4->PHP5
- etchでのSamba設定
- etchでのメール設定
- 玄箱HGのetch化
- Webdruidでログ解析
- PEARも入れてみる
- 玄箱WEBのUTF-8化
- phpMyAdminでMySQL
- postmasterの変更
- ウィルスメール対策
- SPAMメール対策
- メールサーバ(IMAP)
- メールサーバ(Postfix)
- 猫にXOOPS
- PHPも入れてみる
- MySQLを入れてみる
- Subversion導入
- WebDav導入
- Apacheのrewrite機能
- Apacheディレクトリ設定
- Apache1.3->2.0
- ddclientの設定
- 静かな玄箱
- ユーザ追加