ソース入手
以下のURLから最新のソースを入手してください。
http://untroubled.org/relay-ctrl/
今回はrelay-ctrl-3.1.1.tar.gzをダウンロードしました。
http://untroubled.org/relay-ctrl/relay-ctrl-3.1.1.tar.gz
インストール
ここではrelay-ctrl-3.1.1.tar.gzをダウンロードしたものとして説明します。
$ tar xvfz relay-ctrl-3.1.1.tar.gz
$ cd relay-ctrl-3.1.1
$ make
$ su
# ./installer
これでインストールは完了です。
また、 コンフィグファイルを設置するための/etc/relay-ctrlディレクトリと、アクセス用のファイルを保存する/var/spool/relay-ctrl/spoolディレクトリを作成します。
# mkdir /etc/relay-ctrl
# mkdir -p /var/qmail/relay-ctrl/spool
# chmod 700 /var/qmail/relay-ctrl
# chmod 777 /var/qmail/relay-ctrl/spool
アクセスコントロール用ファイル作成
アクセスコントロール用のファイルを用意し環境変数のセットします。
(1) 許可IPをおくディレクトリの指定(RELAY_CTRL_DIR)
# cd /etc/relay-ctrl
# echo /var/qmail/relay-ctrl/spool > RELAY_CTRL_DIR
(2) SMTPの許可時間の指定(RELAY_CTRL_EXPIRY)
秒で指定します。
# cd /etc/relay-ctrl
# echo 600 > RELAY_CTRL_EXPIRY
起動方法の変更
POP Before SMTP を有効にするため、POP,SMTPの起動方法を変更します。
(1) POP起動方法の変更
envdir /etc/relay-ctrl relay-ctrl-chdirとrelay-ctrl-allowの記述の追加
/usr/local/bin/envdir /etc/relay-ctrl \
/usr/local/bin/relay-ctrl-chdir \
/usr/local/bin/tcpserver -v -R -H 0 pop3 \
/var/qmail/bin/qmail-popup hoge.example.com /bin/checkpassword \
/usr/local/bin/relay-ctrl-allow qmail-pop3d Maildir 2>&1 \
| /var/qmail/bin/splogger pop3d 3 &
(2) SMTP起動方法の変更
envdir /etc/relay-ctrl relay-ctrl-chdirとrelay-ctrl-checkの記述の追加
/usr/local/bin/envdir /etc/relay-ctrl \
/usr/local/bin/relay-ctrl-chdir \
/usr/local/bin/tcpserver -v -x /etc/tcp.smtp.cdb \
-R -H -u 71 -g 70 0 smtp /usr/local/bin/relay-ctrl-check \
/var/qmail/bin/qmail-smtpd 2>&1 \
| /var/qmail/bin/splogger smtp 3 &
これで起動すればPOP Before SMTPが有効になります。
また、PBSのデータベースのクリアをcrontabを利用して定期的に実行しましょう。
# crontab -e
* * * * * /usr/local/bin/envdir /etc/relay-ctrl /usr/local/bin/relay-ctrl-age
自動スクリプトの作成 (2004/6/9修正)
qmailの自動起動スクリプトを作成しました。よろしければご利用ください。
stopでtcpserver経由のプロセスをkillしていますのでqmail以外でtcpserverを利用している場合は注意が必要です。
qmailの標準インストール を少し編集したものですが。。。。
#!/bin/sh
# chkconfig: 345 85 15
# description: Dynamic Relay Authorization Control
# processname: qmail
#
# qmail: /var/qmail
PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin
[ -f /var/qmail/rc ] || exit 0
case "$1" in
start)
# Start daemons.
echo "Starting qmail."
# qmail
csh -cf '/var/qmail/rc &'
# POP3
envdir /etc/relay-ctrl relay-ctrl-chdir \
tcpserver -v -R -H 0 pop3 qmail-popup \
`/bin/cat /var/qmail/control/me` /bin/checkpassword \
relay-ctrl-allow qmail-pop3d Maildir 2>&1 \
| splogger pop3d 3 &
# SMTP
envdir /etc/relay-ctrl relay-ctrl-chdir \
tcpserver -v -x /etc/tcp.smtp.cdb -R -H \
-u `/usr/bin/id -u qmaild` -g `/usr/bin/id -g qmaild` \
0 smtp relay-ctrl-check qmail-smtpd 2>&1 \
| splogger smtp 3 &
echo
touch /var/lock/subsys/qmail
;;
stop)
# Stop daemons.
echo "Shutting down qmail."
kill $(/sbin/pidof tcpserver)
kill $(/sbin/pidof qmail-send)
echo
rm -f /var/lock/subsys/qmail
;;
*)
echo "Usage: S99qmail {start|stop}"
exit 1
esac
exit 0
これで、POP認証されたユーザは/etc/tcp.smtp.cdbにIPが記録され認証後600秒はメールを送信することが可能となります。
有効時間を長くしたければ、 /etc/relay-ctrl/RELAY_CTRL_EXPIRYを修正して時間を調整しましょう。