- PR -

qmailでPOP認証しているのにメール受信できない

1
投稿者投稿内容
futa
会議室デビュー日: 2005/09/28
投稿数: 4
投稿日時: 2005-09-29 12:04
いつもお世話になります。
初心者ですがよろしくお願いいたします。

qmail+vpopmailにて構築中なのですが、この掲示板等参考に
メールの送信までは可能になりましたが、メールの受信ができなくて悩んでおります。

具体的にはtelnetで接続してみるとPOP認証直後にコネクションをcloseされて
しまいメール受信ができない状況となっています。
[root@ns1 root]# telnet 127.0.0.1 110
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
+OK <2973.1127959950@mail.xxxxxxx.net>
USER testuser@xxxxxxx.net
+OK
PASS xxx
Connection closed by foreign host.

上記実行後に/var/log/maillogを確認しましたが、該当logはありませんでした。
わざとパスワードを間違えて入力すると下記ログが出力されています。
Sep 29 11:12:26 ns1 vpopmail[2971]: vchkpw-webmail: vpopmail user not found testuser@:127.0.0.1

このことから、POP認証は問題なくできているのかと思っているのですが、
どうなのでしょうか?

また、どのように上記問題を解決したらよいのでしょうか?
ご教授よろしくお願いいたします。


[ メッセージ編集済み 編集者: futa 編集日時 2005-09-29 12:10 ]
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-09-29 19:55
こんばんわ.
引用:

futaさんの書き込み (2005-09-29 12:04) より:

わざとパスワードを間違えて入力すると下記ログが出力されています。
Sep 29 11:12:26 ns1 vpopmail[2971]: vchkpw-webmail: vpopmail user not found testuser@:127.0.0.1

このことから、POP認証は問題なくできているのかと思っているのですが、
どうなのでしょうか?


qmail や vpopmail は使ったこと無いので詳しくありませんが,
"user not found" となっているのに「認証は問題なし」とはどういう意味でしょう?
vpopmail は UNIX user とは別に user account を作るのが
一般的だと思ってましたが,その辺の設定はどのように?
futa
会議室デビュー日: 2005/09/28
投稿数: 4
投稿日時: 2005-09-30 09:06
おはようございます。
kazさんレスありがとうございます。

引用:

"user not found" となっているのに「認証は問題なし」とはどういう意味でしょう?
vpopmail は UNIX user とは別に user account を作るのが
一般的だと思ってましたが,その辺の設定はどのように?




"user not found"のlogが出力されたのはわざとパスワードを間違えてみたら出力
されました。 正しい、メールアドレス、パスワードでは上記のエラーがでませんでした。
それで、認証に問題がないのではないかと思っているのですが・・・・

vpopmailコマンドの vadduser testuser@xxxx.net password で作成しています。
/home/vpopmail/domains/xxxx.net/testuserが存在しており、このアドレスにメール
送信すると testuser/newにメールが配信されているのは確認しております。

[ メッセージ編集済み 編集者: futa 編集日時 2005-09-30 09:19 ]
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-09-30 12:44
こんにちは。
tcpserver が絡む場合は、ネットワーク経由でテストを行わなくとも、サーバ上のコマンドラインで通信をシミュレートできます。
トラブルシューティングのためには、メールソフトやtelnetで実際に通信を行う前に、この方法を試すと良いと思います。

例:
 tcpserver プロセス
  tcpserver 〜 qmail-popup ドメイン名 vchkpw qmail-pop3d Maildir/

 コマンドラインでシミュレート
  qmail-popup ドメイン名 vchkpw qmail-pop3d Maildir/

※この時、元来 tcpserver が持っていた環境変数を、予め設定しておくように注意が必要です。POPでは必要ないと思いますが、SMTPの場合は、tcp-rules 機構で設定される環境変数に特に注意です。

さて、「認証は問題なし」というご判断ですが、その可能性は高いと思います。
そうすると、vchkpw が qmail-pop3d の起動に失敗している ( そのため POP通信が切断される ) 可能性があるため、tcpserver の PATH環境変数や、qmail-pop3d に渡す maildir名のオプションが間違っている、といった原因が考えられます。

認証の成否のみを確認するのであれば、qmail-pop3d を引数に指定せずに、他のプログラムを使用する手もあります。
認証に成功すれば、以下のような情報が引き出せますので、動作の把握に役立ちます。
 ・pwd … 本来 qmail-pop3d が起動される時のワーキングディレクトリが表示される
 ・id … 同じくユーザID、グループIDが表示される
 ・env … 同じく環境変数が表示される

引用:
testuser/newにメールが配信されているのは確認しております。


私の昔の記憶では、testuser/Maildir/new,cur,tmp というようにディレクトリが配置されていたのですが、futaさんの環境は如何でしょうか?
( vmaildirmake とか何とかで作成するのでしたっけ… )

こちらの構成は、qmail-pop3d に渡すオプションと密接に関係するので、注意が必要です。

以上、ご参考まで。
※プロセス起動時の引数や、環境変数、ディレクトリ構成等の詳細があれば、コメントが付き易いと思います。
futa
会議室デビュー日: 2005/09/28
投稿数: 4
投稿日時: 2005-09-30 19:02
angelさん、こんにちは
レスありがとうございます。

コマンドラインからqmail-pop3dの代わりに、pwd,id,envをつけて実行したら
下記の通り出力されました。
正しく認証されない時は上記コマンドが実行されませんでしたのでやはり認証はOKのようで
angelさんがおっしゃられるようにqmail-pop3dが実行できていないようなきがします。

[root@ns1 bin]# ./qmail-popup mail.xxxx.net /home/vpopmail/bin/vchkpw pwd
+OK <6286.1128073350@mail.xxxx.net>
USER testuser@xxxx.net
+OK
PASS 123
/home/vpopmail/domains/xxxx.net/testuser

[root@ns1 bin]# ./qmail-popup mail.xxxx.net /home/vpopmail/bin/vchkpw id
+OK <6288.1128073410@mail.xxxx.net>
USER testuser@xxxx.net
+OK
PASS 123
uid=89(vpopmail) gid=89(vchkpw) 所属グループ=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)

[root@ns1 bin]# ./qmail-popup mail.xxxx.net /home/vpopmail/bin/vchkpw env
+OK <6290.1128073473@mail.xxxx.net>
USER testuser@xxxx.net
+OK
PASS 123
HOSTNAME=ns1
SHELL=NOLOGIN
TERM=xterm
HISTSIZE=1000
USER=testuser
LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:
USERNAME=root
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
INPUTRC=/etc/inputrc
PWD=/var/qmail/bin
LANG=ja_JP.eucJP
SHLVL=1
HOME=/home/vpopmail/domains/xxxx.net/testuser
BASH_ENV=/root/.bashrc
LOGNAME=root
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES=1
_=./qmail-popup
OLDPWD=/root
VPOPUSER=testuser@xxxx.net

引用:

私の昔の記憶では、testuser/Maildir/new,cur,tmp というようにディレクトリが配置されていたのですが、futaさんの環境は如何でしょうか?
( vmaildirmake とか何とかで作成するのでしたっけ… )


すみません、記載ミスしておりました。
ディレクト構成については下記の通りです。
vpopmailインストール先:/home/vpopmail
testuser@xxxx.netの配信先: /home/vpopmail/domains/xxxx.net/testuser/Maildir
Maildir内にはcur,new,tmpが存在しています。

以上、よろしくお願いいたします。
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-10-01 00:03
こんばんは。
引用:
[root@ns1 bin]# ./qmail-popup mail.xxxx.net /home/vpopmail/bin/vchkpw pwd
+OK <6286.1128073350@mail.xxxx.net>
USER testuser@xxxx.net
+OK
PASS 123
/home/vpopmail/domains/xxxx.net/testuser


と、
引用:
ディレクト構成については下記の通りです。
vpopmailインストール先:/home/vpopmail
testuser@xxxx.netの配信先: /home/vpopmail/domains/xxxx.net/testuser/Maildir
Maildir内にはcur,new,tmpが存在しています。


を併せて見る限り、認証判定までに問題は無さそうに思います。
やはり、qmail-pop3d の起動関連が最もクサい所なので、
引用:
そうすると、vchkpw が qmail-pop3d の起動に失敗している ( そのため POP通信が切断される ) 可能性があるため、tcpserver の PATH環境変数や、qmail-pop3d に渡す maildir名のオプションが間違っている、といった原因が考えられます。


の点を確認されるのが良さそうに思います。
起動スクリプトの内容や、動作中のtcpserverプロセス情報が最重要でしょうか。

おまけ1:Linux の ps にて、コマンド名が長すぎて画面端で切れてしまう場合
 /proc 下の情報にあたると良いでしょう。
  tr '\0' '\n' < /proc/プロセスID/cmdline
 で、各引数が行毎に全て表示されます。

おまけ2:動作中のプロセスの環境変数を見る方法
 同じく /proc 下の情報が役に立ちます。
  tr '\0' '\n' < /proc/プロセスID/environ
 で、(以下略)

[ メッセージ編集済み 編集者: angel 編集日時 2005-10-01 00:04 ]
futa
会議室デビュー日: 2005/09/28
投稿数: 4
投稿日時: 2005-10-01 00:58
こんばんわ。

angelさんのレスのとおりtcpserverのコマンドをよく確認していたら
qmail-pop3dのパスが/varのところが/verになっておりました。
これではいくらやっても起動されるはずがありませんね。
これを直して再度確認したら無事、メールを確認することができました。

[root@ns1 root]# tr '\\0' '\\n' < /proc/6573/cmdline
/usr/local/bin/tcpserver
-v
-R
-H
0
pop3
/var/qmail/bin/qmail-popup
mail.xxxx.net
/home/vpopmail/bin/vchkpw

/ver/qmail/bin/qmail-pop3d <-----ここ
Maildir

POP起動のスクリプトを早く掲載すればもっと早く解決できたかもしれません。
お手数をおかけ致しました。

しかし、環境設定や、コマンドラインの状態を調べるなど教えて頂けましたことは
自分にとってはよかったです。

もっと、勉強しなければならないなぁとつくづく実感した次第です。

本当にありがとうございました。


[ メッセージ編集済み 編集者: futa 編集日時 2005-10-01 00:59 ]
1

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