- PR -

relay-ctrl 3が上手く動作しません

1
投稿者投稿内容
やいば
常連さん
会議室デビュー日: 2002/06/21
投稿数: 30
お住まい・勤務地: 神奈川県/東京都
投稿日時: 2002-06-21 11:55
初めて投稿させていただきます。お見知り置きを。

Linux Squareの「実用qmailサーバ運用・管理術」を参照し、qmailを
構築しました。TurboLinux7 Serverにて構築を行ったため、比較的
簡単に出来ましたが、その後のrelay-ctrl導入が上手くいきません。
バージョン3になってから設定方法なども変わっているので、恐らくは
それが問題かと思われるのですが‥。

現在、下記のスクリプトにてqmailを起動させています。

#!/bin/bash
#
# qmail

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

PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin
export PATH

# Mail Server Fully Qualified Domain Name
FQDN=****.*****.net

[ -f /var/qmail/rc ] || exit 0

case "$1" in

start)
# Start daemons.
echo -n "Starting qmail: "
/var/qmail/rc &
RTR=$?
/usr/local/bin/envdir /etc/relay-ctrl relay-ctrl-chdir \
nohup tcpserver -vHR 0 pop3 /var/qmail/bin/qmail-popup $FQDN \
/usr/local/bin/checkpassword /usr/bin/relay-ctrl-check /var/qmail/bin/qmail-pop3d \
Maildir 2>&1 | /var/qmail/bin/splogger pop3d 3 &
/usr/local/bin/envdir /etc/relay-ctrl relay-ctrl-chdir \
nohup tcpserver -vHR -u 502 -g 501 0 smtp /usr/bin/relay-ctrl-check \
/var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 &
if [ "$RTR" == 0 ] ; then
echo `echo_success`
touch /var/lock/subsys/qmail
else
echo `echo_failure`
fi
;;

stop)
echo -n "Shutting down qmail: "
PID=`ps -aef | grep qmail-send | awk ' {print $2}' | head -1`
if [ ! -z "$PID" ] ; then
kill ${PID} 1> /dev/null 2>&1
fi
RTR=$?
killall tcpserver
if [ "$RTR" == 0 ] ; then
echo `echo_success`
rm -f /var/lock/subsys/qmail
else
echo `echo_failure`
fi
;;

restart)
$0 stop
$0 start
;;

*)
echo "Usage: qmail {start|stop|restart}"
exit 1
;;

esac

exit 0


スクリプト中のFQDNは変更してあります。
relay-ctrlはRPMを利用し、


  • /etc/relay-ctrl/以下に設定ファイル(RELAY-CTRL-DIRなど)
  • /usr/bin/以下に実行ファイル(relay-ctrl-checkなど)


となっています。
いざスクリプトで起動してみると、ユーザ名の認証が済みパスワードを入れると

-ERR this user has no $HOME/Maildir

となってしまい、メールの受信が出来ません。同一ドメインに対しての送信(ローカル配送)は
可能です。また、上記スクリプトのrelay-ctrl-chdir(/etc/relay-ctrl次)を外して起動して
みると、

relay-ctrl-check[1859]: Warning: Could not change directory to '/var/spool/relay-ctrl/allow': Permission denied.

となってしまいますが、この場合は受信出来ます。ただしrelay-ctrlは働きません。
送信は前述のパターンと同じく、同一ドメインに対しては出来ます。
ユーザのHomeディレクトリには./Maildirがありますし、.qmailファイルもあります。
何とかパーミッションの設定をRPMインストール時から変更したり、setuidしたり
してみたのですが、解決することが出来ません。
どなたか良い設定方法をご存じの方がいらっしゃいましたら、ご教授願います。

_________________
+ やいば +
+ jk@lunar.to +


[ メッセージ編集済み 編集者: やいば 編集日時 2002-06-21 12:11 ]
やいば
常連さん
会議室デビュー日: 2002/06/21
投稿数: 30
お住まい・勤務地: 神奈川県/東京都
投稿日時: 2002-06-24 18:19
解決致しました。これをご覧になってくださった方々、
お手数をおかけし申し訳ありませんでした。

原因は不明なのですが、RPMではなくtarで行うと上手くいきました。
変更後のソースは以下のとおりです。

#!/bin/bash
#
# qmail

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

PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin
export PATH

# Mail Server Fully Qualified Domain Name
FQDN=****.*****.net

[ -f /var/qmail/rc ] || exit 0

case "$1" in

start)
# Start daemons.
echo -n "Starting qmail: "
/var/qmail/rc &
RTR=$?
/usr/local/bin/envdir /etc/relay-ctrl /usr/local/bin/relay-ctrl-chdir \
tcpserver -vHR 0 pop3 /var/qmail/bin/qmail-popup $FQDN \
/bin/checkpassword /usr/local/bin/relay-ctrl-allow /var/qmail/bin/qmail-pop3d \
Maildir 2>&1 | /var/qmail/bin/splogger pop3d 3 &
/usr/local/bin/envdir /etc/relay-ctrl /usr/local/bin/relay-ctrl-chdir \
tcpserver -v -u 502 -g 501 0 smtp /usr/local/bin/relay-ctrl-check \
/var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 &
if [ "$RTR" == 0 ] ; then
echo `echo_success`
touch /var/lock/subsys/qmail
else
echo `echo_failure`
fi
;;

stop)
echo -n "Shutting down qmail: "
PID=`ps -aef | grep qmail-send | awk ' {print $2}' | head -1`
if [ ! -z "$PID" ] ; then
kill ${PID} 1> /dev/null 2>&1
fi
RTR=$?
killall tcpserver
if [ "$RTR" == 0 ] ; then
echo `echo_success`
rm -f /var/lock/subsys/qmail
else
echo `echo_failure`
fi
;;

restart)
$0 stop
$0 start
;;

*)
echo "Usage: qmail {start|stop|restart}"
exit 1
;;

esac

exit 0

* [CODE]タグを利用すると、上記のスクリプトが2重3重と表示されて
 しまうので、外して記入しました。ご了承ください。

何の足しにもならないかもしれませんが、何か参考になる点があれば
幸いです。以上よろしくお願い致します。


_________________
+ やいば +
+ jk@lunar.to +

[ メッセージ編集済み 編集者: やいば 編集日時 2002-06-24 18:21 ]
やいば
常連さん
会議室デビュー日: 2002/06/21
投稿数: 30
お住まい・勤務地: 神奈川県/東京都
投稿日時: 2002-06-24 18:24
追記として、参考にさせていただいたURLは以下のとおりです。
(@ITで他サイトのURLを紹介するのは心苦しいのですが‥)

http://www.zdnet.co.jp/help/howto/security/special11/index.html

以上よろしくお願い致します。
mtb
会議室デビュー日: 2002/08/03
投稿数: 1
投稿日時: 2002-08-03 13:22
私もやいばさんと同じ症状に悩まされました。受信の際に以下のエラーが出るというものです。
-ERR this user has no $HOME/Maildir

いろいろと試してrelay-ctrl-allowファイルに対するsetuidを外せばエラーが解消されることがわかりました。@IT(V2.5について)及びZDNet(V3.1.1について)の両方でsetuidを設定するという指示がありますが、本家本元?である以下にはそのような指示はありません。
http://untroubled.org/relay-ctrl/
V3.1.1についてはsetuidは不要なのではないかと思います。

なおZDNetにあるようにdaemontools-0.76は導入してあります(導入後も上記のエラーは出ていました)。当方の環境はTurbolinux 7.0 Workstationです。
1

スキルアップ/キャリアアップ(JOB@IT)