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現在) やっぱ動かんじゃん。なんでやろ….