Spamassassinの導入(その1)

現在、自宅サーバのメールサーバーソフトウェア(MTA)「qmail」を使用しています。

参考URL:
qmail * djbdns by D. J. Bernstein
連載記事 「実用qmailサーバ運用・管理術」
はてなダイアリー - qmailとは


で、ホームページでメールアドレスを公開しているので、
ばんばんスパムメールなんかが来るわけです。

メールアドレスのエンティティ化をいちを施しているんですけど、
「へのつっぱりにもならない」ことがわかりました(笑)

それで、今まではProcmailである程度弾いていたんですが、
From:フィールドをうまくかいくぐってくるスパムメールとかいろいろあって、
ほとほとこまってたんです。。。(^^;)


そこで、Spamassassinの導入に踏み切りました。


参考URL:
はてなダイアリー - spamassassinとは
IT用語辞典 e-Words : SPAMとは 【スパム】 ─ 意味・解説
SpamAssasin


初めは、RPMでのインストールを使用と思いましたが、
めんどくさそうなのでヤメ(笑)

ということで、perlのCPANでのインストールに決定。


単純にperlのモジュールとして、SpamAssasinをインストールするわけです。

と、その前に、

install Net::DNS
install Time::HiRes

のモジュールが必要ですので、
同様にCPANにてインストールしておきます。

いざ、SpamAssasinのインストールです

# perl -MCPAN -e shell > install Mail::SpamAssassin

いきなり引っかかりました(^^;)

なにやら他のPerlモジュールが古いだの何とかって。。。いっぱいエラーが。。。

ということで、WEBをググっていたら、ありました。

INSTALLの和訳を見つけました。

Translationの、[INSTALL]を参照のこと。

ということで、ここに書いてあったのが、

# perl -MCPAN -e shell > o conf prerequisites_policy ask > install Mail::SpamAssassin

いろいろバージョンが古いだの行ってきますが、その都度、アップグレードしますか?とか、
インストールしますか?とか聞いてくるので、ほとんどエンターだけ(^^;)

これで、なんとかCPANでのSpamAssassinインストール完了。


次にSpamdの起動ですが、
Redhat用のスクリプトが使えそうだったので、
そのまま流用(^^;)


#!/bin/sh
#
# spamassassin This script starts and stops the spamd daemon
#
# chkconfig: 234 80 30
# processname: spamd
# description: spamd is a daemon process which uses SpamAssassin to check \
# email messages for SPAM. It is normally called by spamc \
# from a MDA.

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

# Set default spamd configuration.
SPAMDOPTIONS="-d -c -m5 -H -r /var/run/spamd.pid"

# Source spamd configuration.
if [ -f /etc/sysconfig/spamassassin ] ; then
. /etc/sysconfig/spamassassin
fi

[ -f /usr/bin/spamd -o -f /usr/local/bin/spamd ] || exit 0
PATH=$PATH:/usr/bin:/usr/local/bin

# By default it's all good
RETVAL=0

# See how we were called.
case "$1" in
start)
# Start daemon.
echo -n "Starting spamd: "
daemon $NICELEVEL spamd $SPAMDOPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/spamassassin
;;
stop)
# Stop daemons.
echo -n "Shutting down spamd: "
killproc spamd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/spamassassin
;;
restart)
$0 stop
$0 start
;;
condrestart)
[ -e /var/lock/subsys/spamassassin ] && $0 restart
;;
status)
status spamd
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|restart|status|condrestart}"
RETVAL=1
;;
esac

exit $RETVAL

このスクリプトを、

/etc/rc.d/init.d/spamd

として保存。


後は自動起動するように設定。


chkconfig --add spamd


いざ、起動です。


/etc/rc.d/init.d/spamd start

スパム対策の設定はのちほど(^^;)

-------------------------

2006/04/27 追記
「Fedora Core 4」で新規でインストールしようとすると、
モジュール等が足りないせいかエラーで止まってしまったので、

install Mail::SpamAssassin

をする前に、

install Bundle::CPAN

install Net::DNS
install Time::HiRes

と、前もってのインストールが必要であった。


共にCPANにてインストール。

2006/05/01 追記
起動スクリプトがredhat用を流用できそうだったので、
そのまま使用(^^;)






SpamAssasin


Programming Perl