まず、ここ を見てPostgreyを知って欲しい。ここでは、CentOS4.3へPostgreyをインスコしたので、その過程を説明する。CentOSのPostgreyパッケージの置き場は、 ここ
インストール環境 )
OS : CentOS4.3
マシン : Dell PowerEdge SC430
1.ソースのゲットと展開
2006年6月現在での、最新は、 postgrey-1.24-0.noarch.rpm で有った。
[root@ns tmp] # wget http://www.lfarkas.org/linux/packages/centos-4/i386/RPMS/postgrey-1.24-0.noarch.rpm
[root@ns tmp] # rpm -ivh postgrey-1.24-0.noarch.rpm
但し、2007年05月現在、 CentOS 5.0 = > ではpostgreyが正式にパッケージとして存在する。したがって、
# yum install postgrey
でインストール出来る。詳しくは、 ここ を参照のこと。
2.postfix側の設定
[root@ns tmp]# vi /etc/postfix/main.cf
省略
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks,
reject_rbl_client spamcop.net,
reject_rbl_client dynablock.wirehub.net,
reject_rbl_client opm.blitzed.org,
reject_rbl_client relays.ordb.org,
reject_rbl_client sbl.spamhaus.org,
regexp:/etc/postfix/recipient_checks.reg,
check_client_access hash:/etc/postfix/bad_clients,
reject_non_fqdn_recipient,
reject_unknown_sender_domain,
permit_sasl_authenticated,
reject_unauth_destination,
check_policy_service inet:127.0.0.1:10023
↑※1
省略
※1印の行を追加する。
3.起動スクリプトにパラメータ追加
[root@ns tmp]# vi /etc/init.d/postgrey
#!/bin/sh
#
#
# chkconfig: 2345 79 31
# description: Postfix Greylisting Policy Server
#
# processname: postgrey
# pidfile: /var/run/greylist.pid
#
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = “no” ] && exit 0
prog=postgrey
postgrey=/usr/sbin/$prog
DBPATH=/var/spool/postfix/postgrey
SOCKET=$DBPATH/socket
OPTIONS=“–inet=10023 -d –unix=$SOCKET”
↑※2
# Source an auxiliary options file if we have one, and pick up OPTIONS,
if [ -r /etc/sysconfig/$prog ] ; then
. /etc/sysconfig/$prog
fi
[ -x $postgrey ] || exit 0
[ -d $DBPATH ] || exit 0
#[ -f /etc/postfix/postgrey_whitelist_clients ] || exit 0
#[ -f /etc/postfix/postgrey_whitelist_recipients ] || exit 0
RETVAL=0
start() {
echo -n $”Starting $prog: “
daemon $postgrey $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/$prog
return $RETVAL
}
stop() {
echo -n $”Stopping $prog: “
killproc $postgrey
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/$prog /var/run/$prog.pid
}
restart() {
stop
start
}
reload() {
echo -n $”Reloading $prog: “
killproc $prog -HUP
RETVAL=$?
echo
return $RETVAL
}
# See how we were called.
case “$1” in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
reload)
reload
;;
status)
status $prog
;;
*)
echo “Usage: $prog {start|stop|restart|reload|status}”
exit 1
esac
exit $?
※2印の濃い青字の部分を追加する。
※2印のオプションを追加しないと以下のようなワーニングがメールログに出力され、メールが受信できないので気を付けること。
Mar 12 09:05:10 ns postfix/smtpd[27507]: connect from sub2.xxxxxxxxx.com[xxx.xxx.xxx.xxx]
Mar 12 09:05:12 ns postfix/smtpd[27507]: warning: connect to 127.0.0.1:10023: Connection refused
Mar 12 09:05:12 ns postfix/smtpd[27507]: warning: problem talking to server 127.0.0.1:10023: Connect
ion refused
Mar 12 09:05:13 ns postfix/smtpd[27507]: warning: connect to 127.0.0.1:10023: Connection refused
Mar 12 09:05:13 ns postfix/smtpd[27507]: warning: problem talking to server 127.0.0.1:10023: Connect
ion refused
Mar 12 09:05:13 ns postfix/smtpd[27507]: NOQUEUE: reject: RCPT from sub2.xxxxxxxxx.com[xxx.xxx.xxx.xxx
]: 450 Server configuration problem; from=<mity@xxxxxxxxx.com> to=<mity@xxxxxxxxx.jp> proto=ESMT
P helo=<hiro.xxxxxxxxx.com>
Mar 12 09:05:13 ns postfix/smtpd[27507]: disconnect from sub2.xxxxxxxxx.com[xxx.xxx.xxx.xxx]
4.起動する
起動スクリプトをアクティブにする。
[root@ns tmp]# chkconfig postgrey on
起動する。
[root@ns tmp]# /etc/init.d/postgrey start
以上
コメント