- PR -

daemontools でsmtpd pop3d がエラーになります

投稿者投稿内容
qora
会議室デビュー日: 2002/06/26
投稿数: 13
投稿日時: 2002-06-26 14:43
第9回 daemontoolosによるロギングとプロセス監視の記事を基にdemontoolsをインストールしました。qmailとqmail/logは何とか稼動させることが出来たのですが、 smtpd pop3dが起動しません。 smtpd/log pop3d/logは稼動しています。
qmailの導入から種々の設定まで、この連載を参考にしながら進めてきました。
不正中継対策で掲載された POP Before SMTP でrelay-crtl を使用しているため、今回掲載されたsmtpd・pop3dとは異なるスクリプトを使用していますが、これが原因でしょうか?

smtpdのスクリプトは下記のとおりです。
#!/bin/sh
PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin
exec tcpserver -v -u 502 -g 501 -x /var/qmail/relay-ctrl/tcp.smtp.cdb 0 smtp \ /var/qmail/bin/qmail-smtpd 2>&1
pop3d
#!/bin/sh
PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin
exec tcpserver -v 0 pop3 /var/qmail/bin/qmail-popup mail.hoge.com \ /bin/selectcheckpw /usr/sbin/relay-ctrl-allow /var/qmail/bin/qmail-pop3d \ Maildir 2>&1

/var/log/smtpd・/var/log/pop3d のエラーはおなじで
@400000003d19446d384cba34 tcpserver: fatal: unable to bind: address already used
となっています。

ここでも時間表示がおかしくなっているように思いますが、
date | ./tai64n | ./ tai64nlocal
date | sh -c './multilog t e 2>&!' | ./tai64local
の結果はともに正常に表示されています。

不足の情報があると思いますが、ご指摘ください。
よろしくご教示お願いします。
やいば
常連さん
会議室デビュー日: 2002/06/21
投稿数: 30
お住まい・勤務地: 神奈川県/東京都
投稿日時: 2002-06-26 16:22
初めまして、qoraさん。

以前、自分が「relay-ctrl 3が上手く動作しません」というタイトルで
載せたスレッドが役に立つかもしれません。このスレッドのちょっと下に
記載されていますので、参考になさってください。

ちなみに、relay-ctrlとdaemontoolsの導入には以下のURLを参考に
させていただきました。

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

よろしくお願いします。

_________________
+ やいば -
- http://wire.cside.to/ +
tabby
ベテラン
会議室デビュー日: 2002/06/26
投稿数: 55
お住まい・勤務地: 埼玉県・東京都
投稿日時: 2002-06-26 17:17
>tcpserver: fatal: unable to bind: address already used

エラーメッセージを見る限り、スクリプトの問題ではない思います。
smtpとpop3のポートで動いているプロセスがいるはずです。

inetdなどでsmtpやpop3の設定をしていませんか?
もしくは、既にqmail-smtpdとqmail-pop3dが動いているとか。

#経験済み
qora
会議室デビュー日: 2002/06/26
投稿数: 13
投稿日時: 2002-06-26 18:54
tabbyさん早速のレス有難うございます

tabbyさんの書き込み (2002-06-26 17:17) より:
>tcpserver: fatal: unable to bind: address already used

エラーメッセージを見る限り、スクリプトの問題ではない思います。
smtpとpop3のポートで動いているプロセスがいるはずです。
inetdなどでsmtpやpop3の設定をしていませんか?

OSはRedHat7.2ですが、/etc/xinetd.d下に smtpと pop3の設定ディレクトリは
ありません。xinetd の場合ポート25.110を使用しないようにする必要があるのでしょうか
その場合、設定の方法を教えてください。

もしくは、既にqmail-smtpdとqmail-pop3dが動いているとか。
svc-d /service/smtpd svc -d /service/pop3d
で停止さらに上記を.を付加してmvしてsvcを終了させた後
再度書き換えて再起動しましたがメッセージはおなじになります。

よろしくお願いします。

#経験済み

[/quote]
qora
会議室デビュー日: 2002/06/26
投稿数: 13
投稿日時: 2002-06-26 19:16
やいばさん有難うございます。
引用:

やいばさんの書き込み (2002-06-26 16:22) より:
>初めまして、qoraさん。

>以前、自分が「relay-ctrl 3が上手く動作しません」というタイトルで
>載せたスレッドが役に立つかもしれません。このスレッドのちょっと下に
>記載されていますので、参考になさってください。

tcpserverにrelay-ctrlのパスを入れるという理解でいいんでしょうか?

>ちなみに、relay-ctrlとdaemontoolsの導入には以下のURLを参考に
>させていただきました。

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

よろしくお願いします。



tabby
ベテラン
会議室デビュー日: 2002/06/26
投稿数: 55
お住まい・勤務地: 埼玉県・東京都
投稿日時: 2002-06-26 20:22
念のために

netstat -l
を実行してpop3とsmtpがないか確認してみてください。
-lのオプションがなければ-aあたりで。

ここに出ていなければ、私の考えが見当違いということです。
出ていれば、犯人探しです。

#lsofが便利だと思いますが、これって標準で入るのかな?
qora
会議室デビュー日: 2002/06/26
投稿数: 13
投稿日時: 2002-06-26 22:25
tabbyさん有難うございます。

>netstat -l
の結果ですが
tcp 0 0 *:pop3 *:* LISTEN
tcp 0 0 *:smtp *:* LISTEN
となります。ともにPortがListen状態のようですが、このPortは閉めておくのでしょうか
qmailの設定で一度このポートはコメントアウトするようにという表示を見た記憶があるのですが・・xinetdになってからこのポートをコメントアウトする方法が分かりません。
Linux・qmailともまだ日が浅く分からないことだらけですが、よろしくお願いいたします。
tabby
ベテラン
会議室デビュー日: 2002/06/26
投稿数: 55
お住まい・勤務地: 埼玉県・東京都
投稿日時: 2002-06-27 15:13
少しだけ説明を。

>netstat -l
tcp 0 0 *:pop3 *:* LISTEN
tcp 0 0 *:smtp *:* LISTEN

上の結果が示すのは、pop3とsmtpのポートでリスニングしているプロセスが
あるということです。これが原因で、最初のエラー

tcpserver: fatal: unable to bind: address already used

が発生しています。このエラーは指定されたポートでリスナーを起動しようと
したけど既に使われていますよということです。つまり、qmail-smtpd,qmail-pop3dが
要求するポートが使用中であるため、今回の状況が発生しています。

考えられる状況ですが、sendmail,popperが動作中という可能性が高いです。

chkconfig --listでsendmail,popperがいないか確認してください。
popperのほうは名前が違うかもしれませんので、popがつくようなものをチェックして
ください。次に、見つかった場合の対処法ですが、

/etc/rc.d/init.d/sendmail stop
/etc/rc.d/init.d/popper stop
chkconfig --del sendmail
chkconfig --del popper

と実行し、プロセスを止めてください。

popのほうはxinetd経由で起動される可能性もあります。
その場合、/etc/xinetd.dの下にあるファイルをひとつずつ覗き、、
port = pop3(もしくは110)
となっているファイルがあれば、削除してください。
その後、"kill -HUP xinetdのpid"を実行してxinetdを再起動してください。

ここまで実行した状態で再度netstat -lを実行してsmtp,popのポートが出てこなければ、qmail-smptd,qmail-pop3dを実行可能にしてあげてください。

補足
lsofというコマンドがインストールされていれば以下の方法で、
対象となるポートを使用しているプロセスを調べることができます。

lsof -i:pop3
lsof -i:smtp

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