relay-ctrl-2.5.xxx.deb を削除し、relay-ctrl-3.1.1.tar.gz をインストール。
$ tar zxvf relay-ctrl-3.1.1.tar.gz
$ cd relay-ctrl-3.1.1
$ make
# ./installer
接続相手の IP アドレスが保存されるディレクトリを作成。
777 で作ったディレクトリのセキュリティがこれでいいのかは、疑問。
でも、他のページで紹介されている事例では、relay-ctrl-allow
を SUID で保存していたけど、これよりはマシなのか???
# mkdir -p /var/spool/relay-ctrl/allow
# chmod a=rwx,o+t /var/spool/relay-ctrl/allow (/tmpのパーミッションと同じに)
# chmod 0755 /var/spool/relay-ctrl
login許可アドレス情報を定時処理で消すためのスクリプトの変更
/etc/cron.d/relay-ctrl に以下を記述
* * * * * root /usr/bin/env - \
RELAY_CTRL_DIR=/var/spool/relay-ctrl/allow \
RELAY_CTRL_EXPIRY=90 \
/usr/local/bin/relay-ctrl-age
courier-imap-ssl にて、RELAY_CTRL_DIR の設定を有効にするために、
/etc/courier/imapd-ssl に以下を追加
# relay-ctrl
RELAY_CTRL_DIR=/var/spool/relay-ctrl/allow
courier-imap-ssl の起動スクリプトで、relay-ctrl-allow を呼び出す様に設定。
/etc/init.d/courier-imap-ssl の imapd の起動部分に、1行追加
${prefix}/lib/courier/courier/imaplogin $AUTHMODULELIST \
\
/usr/bin/imapd Maildir"
qmail の起動スクリプトで、relay-ctrl-check が呼び出されるように変更
..... -x etc/tcp.smtp.cdb 0 smtp \
\
\
/usr/sbin/qmail-smtpd 2>&1 | $logger -t qmail -p mail.notice &"
SMTPで接続されると tcpserverが TCPREMOTEIP をセットし、env 以下を起動。
relay-ctrl-check が RELAY_CTRL_DIR に保存されているIPアドレスと比較し、
imap-ssl before SMTP の relay-ctrl-allow で許可されていると、
RELAY_CTRL_RELAYCLIENT の値を RELAYCLIENT に代入し、qmail-smtpd を起動。
最後に関連サーバの再起動
# /etc/init.d/qmail restart
# /etc/init.d/courier-imap-ssl restart
ディレクトリ /var/spool/relay-ctrl/allow にアクセス元の IP アドレスが
保存されることを確認。
自宅サーバにて qmail-smtpd,courier-imap-ssl が動くことは確認。
が動くことは未確認。(2003/09/25現在)
やっぱ動かんじゃん。なんでやろ....