2004/10/30 (Sat)

SpamAssassin + procmail を使えるようにする

/Solaris

最近一日平均10通以上のspamを受け取って(無理矢理送りつけられて)います。これまではnPOPを用いて手作業で削除していたのですが、自分で分類するのもいい加減面倒くさくなってきました。そこで、サーバーにSpamAssassinとprocmailを導入してフィルタリングをすることにしました。以下その作業メモ。

  1. SpamAssassin のインストール
    	# perl -MCPAN -e shell
    
    で CPAN モジュールを起動し、
    	cpan> install Mail::SpamAssassin
    
    でインストール完了です。
  2. procmail のインストール
    まずはソースを ring から入手。 こちらには configure スクリプトは付いていないので、Makefile を手で編集します。 といっても、4行目の
    BASENAME        = /usr
    
    BASENAME        = /opt/local
    
    に変更しただけです。後は
    	% gmake
    	% su
    	# gmake install
    
    で自動的にその環境を判別してコンパイル・インストールできます。
  3. SpamAssassinのdaemon起動スクリプトを用意
    SpamAssassin はかなりリソースを使います。起動時のオーバーヘッドを 少しでも抑えるために、 SpamAssassin の daemon である spamd を 起動しておくことにします。 スクリプトspamassassinを /etc/init.d/ に設置します。また、
    	/etc/rc0.d/K23spamassassin
    	/etc/rc1.d/K23spamassassin
    	/etc/rc2.d/K23spamassassin
    	/etc/rc3.d/S21spamassassin
    	/etc/rcS.d/K23spamassassin
    
    にシンボリックリンクを張っておきます。
  4. .procmailrcと.forwardを作成
    procmailrcをユーザーのホームディレクトリに .procmailrc としておきます。また、来たメールをprocmailに渡すため、.forwardに
    	"|IFS=' ' && exec /opt/local/bin/procmail -f- || exit 75 #username"
    
    と書きます。ここで赤字のusernameはそのユーザーの名前に合わせます。 これで SpamAssassin の判定結果によって Mail/doubt や Mail/spam にメールがたまるようになります。
  5. メールをSpamAssassinに通してみる
    この段階で一通メールをそのユーザに出してみます。このとき、ホームディレクトリに.spamassassinというディレクトリが出来てその中にSpamAssassinが使うファイル一式が作られているはずです。その一つに設定ファイルuser_prefsがあるはずですが、TLECに優秀な設定ファイルuser_prefsがあるので、それに変更します。

    ここまで出来上がったら、さきほどの .procmailrc の9行目と10行目を以下のように編集します。

    #| /opt/local/perl/bin/spamassassin -P
    | /opt/local/perl/bin/spamc -U /var/run/spamd/spamd.sock
    
    これで出来上がりです。あとは sa-learn を使ってSpamAssassinを鍛え上げると、spamかどうか判定する精度が上がっていきます。

Posted at 04:30 / Permanent Link / Comments(0) / Edit

Comments / TrackBack



コメントをどうぞ...

お名前
URL / Email
タイトル
コメント
次の6文字を半角で入力してください      294b17
名前とURL / Emailを保存する

TrackBack URL