TOTAL:1006, TODAY:153

玄箱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

ホームページ

日記

Copyright (C) 2007 Arakin , All rights reserved.