vine-users ML アーカイブ



[vine-users:056038] xinetd+tcpserver にすると外部か ら受信できなくなりました

  • From: "YYoshikawa" <YukaYoshikawa@xxxxxxxx>
  • Subject: [vine-users:056038] xinetd+tcpserver にすると外部か ら受信できなくなりました
  • Date: Fri, 22 Nov 2002 16:14:12 +0900
YYoshikawaと申します。お世話様です。
vine2.5(hoge.dyndns.net)を使用しています。

$ tar zxvf qmail1-03.tar.gz
$ mv qmail-date-localtime.patch qmail1-03/
$ cd qmail1-03
$ patch < qmail-date-localtime.patch
$ su
# mkdir /var/qmail
# groupadd nofiles
# useradd -g nofiles -d /var/qmail/alias alias
# useradd -g nofiles -d /var/qmail qmaild
# useradd -g nofiles -d /var/qmail qmaill
# useradd -g nofiles -d /var/qmail qmailp
# groupadd qmail
# useradd -g qmail -d /var/qmail qmailq
# useradd -g qmail -d /var/qmail qmailr
# useradd -g qmail -d /var/qmail qmails
# emacs /etc/passwd &

として
qmaild、qmaill、qmailp、qmailq、qmailr、qmailsのシェルを
「/bin/bash」→「/bin/true」に書換えました。

/var/qmail/rcには
#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/ splogger qmail

と書換えました。Postfixが稼動中でしたのでそれを停止しました。

# cd qmail-1.03/
# make setup check
# ./config-fast hoge.dyndns.net
# cd /var/qmail/alias
# touch .qmail-postmaster
# touch .qmail-mailer-daemon
# touch .qmail-root
# chmod 644 .qmail*
# cd ../boot
# cp home ../rc
# csh -cf /var/qmail/rc &
# ps ax


 3772 pts/1    S      0:00 -sh -cf /var/qmail/rc
 3774 pts/1    S      0:00 qmail-send
 3775 pts/1    S      0:00 splogger qmail
 3776 pts/1    S      0:00 qmail-lspawn ./Mailbox
 3777 pts/1    S      0:00 qmail-rspawn
 3778 pts/1    S      0:00 qmail-clean

となった事を確認しまして

$ cd /home/user
$ /var/qmail/bin/maildirmake $HOME/Maildir
$ echo ./Maildir/ > ~/.qmail
$ chmod 644 ~/.qmail

として~/.qmailに
./Maildir/
がある事を確認して

# cat /var/qmail/control/locals
hoge.dyndns.net
# /var/qmail/control/rcpthosts
hoge.dyndns.net

# cd /usr/sbin
# mv sendmail sendmail.orig
# chmod 0 sendmail.orig

sendmailとの互換設定(mailコマンドをqmailで実行させるようにする)

# ln -s /var/qmail/bin/sendmail sendmail

とした後に

http://cr.yp.to/ucspi-tcp/install.html
から ucspi-tcp-0.88.tar.gzをダウンロード

$ tar zxvf  ucspi-tcp-0.88.tar.gz
$ cd  ucspi-tcp-0.88
# make
# make setup check

tcpserver用の設定ファイル格納ディレクトリ作成
# mkdir /etc/tcpserver

# emacs /etc/tcpserver/smtpd_rules &
として

127.0.0.1:allow,RELAYCLIENT=""
192.168.0.:allow,RELAYCLIENT=""
:allow

を記述

# chmod 644 /etc/tcpserver/smtpd_rules
# cd /etc/tcpserver
# /usr/local/bin/tcprules smtpd_rules.cdb smtpd_rules.tmp < smtpd_rules

/etc/tcpserverにsmtpd_rules.cdbが出来た事を確認。

# id qmaild
uid=505 gid=503

/etc/xinetd.d/smtpを作成して
service smtp
{
 disable = no
 port = 25
 flags  = REUSE
 socket_type = stream
 wait  = no
 only_from = 127.0.0.1, 192.168.0.0/24
 user  = root
 server  = /var/qmail/bin/tcp-env
 server_args = tcp-env -x /etc/tcpserver/smtpd_rules.cdb -v -u 505 -g 503
0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 &
 log_type = FILE /var/log/messages
 log_on_failure += HOST USERID
 }

/etc/hosts.allowには
qmail-smtpd: ALL
in.telnetd: ALL

# /var/qmail/bin/qmail-inject
to:user01@xxxxxxxxxxxxxxx
Test

# /var/qmail/bin/qmail-inject
to:foo@xxxxxxxxx
Test

で送受信できました。

/var/qmail/alias/.qmail-mailer-daemonに
&user01
&foo@xxxxxxxxx

/var/qmail/alias/.qmail-postmasterに
&user01
&foo@xxxxxxxxx

/var/qmail/alias/.qmail-rootに
&user01
&foo@xxxxxxxxx

を記述、

# echo to:nonexistent | /var/qmail/bin/qmail-inject

でエラーメールの/home/user01/Maildir/newへのテスト送信も成功

でも、外部から本ホストuser01@xxxxxxxxxxxxxxx宛に送信しても
/home/user01/Maildir/newに
は
何も届きません。外部ホストに返って来たエラーメール(Mail Delivery Subsystem)
には

The original message was received at Sun, 17 Nov 2002 22:39:06 +0900
from fe073066.fl.FreeBit.NE.JP [xxx.xxx.xxx.xxx]

   ----- The following addresses had permanent fatal errors -----
<user01@xxxxxxxxxxxxxxx>
    (reason: 553 sorry, that domain isn't in my list of allowed rcpthosts
(#5.7.1))

   ----- Transcript of session follows -----
451 4.4.1 reply: read error from hoge.dyndns.net.
... while talking to mail.goo.ne.jp.:
>>> DATA
<<< 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)
550 5.1.1 <user01@xxxxxxxxxxxxxxx>... User unknown
<<< 503 RCPT first (#5.5.1)

となってしまいます。本ホスト上で

$ telnet hoge.dyndns.net 25
Trying 192.168.0.1...
telnet: connect to address 192.168.0.1: Connection timed out

となって繋がりません。iptablesを大甘に設定し直して再び試してみると

$ telnet hoge.dyndns.net 25
Trying 192.168.0.1...
Connected to hoge.dyndns.net.
Escape character is '^]'.
Connection closed by foreign host.

となってしまいます。/var/log/messagesには

02/11/18@00:13:40: START: smtp pid=3077 from=192.168.0.1
Nov 18 00:13:40 hoge xinetd[3077]: libwrap refused connection to smtp from
192.168.0.1
02/11/18@00:13:40: FAIL: smtp libwrap from=192.168.0.1

となってました。因みにこの大甘設定下でも外部からuser01@xxxxxxxxxxxxxxx宛の送
信は
やはり、同様のエラーメールが返ってきました。

tcpserverの設定をどう記述すればよかったのでしょうか?



尚、

/etc/xinetd.d/smtpが下記のような場合は送受信全て上手くいきます。
/etc/xinetd.d/smtpを上記のように記述した場合だけ外部からのメールを受け取れな
くなってしまいます。

service smtp
{
 disable = no
 flags  = REUSE
 socket_type = stream
 wait  = no
 user  = qmaild
 server  = /var/qmail/bin/qmail-smtpd
 log_on_failure += USERID
}