- - PR -
qmail+vpopmailでPOP Before SMTPの関連です。
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-02-09 18:42
もしかしたら、蒸し返しみたいな形になるのであればもうしわけありません。
実は私も「POP Before SMTP」問題で、かなり訳が解からなくなっております。 過去記事でいろいろあった対処方法を試してみましたが、解決しないので お知恵をお貸し下さい。 状況(現在)は、クライアントから送信した際に 「メール送信中にネットワーク障害が発生しました。回線またはサーバーのトラブルの可能性があります。」 となり、LOG上には tcpserver: pid 22130 from 219.111.104.222 tcpserver: warning: dropping connection, unable to read /var/www/vpopmail/etc/tcp.smtp.cdb: access denied tcpserver: end 22130 status 28416 となってしまいます。 ここまでの経緯で、最初はよく解からなかったのですが、いろいろな記事や報告等を 見て、最終的に以下のコマンドでconfigureに至っております。 ./configure --enable-roaming-users=y --enable-relay-clear-minutes=10 --enable-tcpserver-file=/var/www/vpopmail/etc/tcp.smtp --enable-tcprules-prog=/usr/local/bin/tcprules tcp.smtp.cdbにアクセスが出来ないとなってしまうので、このサーバーで受け付ける べきメール全てが拒否されてしまいます。 オーナーを変えてみたり、初期のtcp.smtpの中身を替えてみたり、インストールから やり直してみたりしましたがダメです。 ちなみに、 --------------- open-smtpは都度変化OK open-smtp.lockは日付は変化するが0バイトのまま tcp.smtp.cdbはopen-smtpの内容に変化があれば日付は更新されている --------------- と言う状況です。 現在の~vpopmail/etc内のパーミッション等の状況は、 --------------- total 24 -rw-r--r-- 1 root root 28 Feb 9 14:41 inc_deps -rw-r--r-- 1 root root 45 Feb 9 14:41 lib_deps -rw-r--r-- 1 root root 120 Feb 9 18:29 open-smtp -rw-r--r-- 1 root root 0 Feb 9 18:29 open-smtp.lock -rw-r--r-- 1 vpopmail vchkpw 74 Feb 9 03:26 tcp.smtp -rw-r--r-- 1 vpopmail vchkpw 2560 Feb 9 17:40 tcp.smtp.cdb -rw-r--r-- 1 vpopmail vchkpw 1107 Feb 9 14:41 vlimits.default --------------- です。 起動スクリプトは、 --------------- #POP Before SMTP Setting /usr/local/bin/tcpserver -H -R -l メールサーバー -v -x /var/www/vpopmail/etc/tcp.smtp.cdb -u $QMAILDUID -g $NOFILESGID 0 smtp \ /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 & #Vpop /usr/local/bin/tcpserver -H -R -l メールサーバー -v 0 pop3 \ /var/qmail/bin/qmail-popup メールサーバー /var/www/vpopmail/bin/vchkpw \ /var/qmail/bin/qmail-pop3d Maildir 2>&1 | /var/qmail/bin/splogger pop3d 3 & --------------- です。 このままではメールを受け取る事も拒否されてしまう為、現在はqmailの起動時に POP Before SMTPを行わず、/etc/tcp.smtpを読む通常だった動作にして いますが、その場合はエラーも出ずに動作します。 参考まで、tcpserverが正常に動くのは、 --------------- #NO POP Before SMTP Setting /usr/local/bin/tcpserver -H -R -l メールサーバー -v -x /etc/tcp.smtp.cdb -u $QMAILDUID -g $NOFILESGID 0 smtp \ /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 & --------------- です。 (が、この状態では、内側のクライアントは送信可能ですが、外のクライアントはrcpthostsのエラーで送信できません。) ですのでtcpserverが悪いのかとも思ったのですがそうでもないようです。 これも再インストールを試みてみましたが、状況に変化無しです。 こんな状況ですが、同様の状況で解決した方や状況から対策が判る方が いらっしゃいましたら、お知恵拝借させてください。 (尚、多分関係ありませんが、qmail-adminも導入しております。) よろしくお願いいたします。 参考にさせていただいた記事は、 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=2364&forum=10&11 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=799&forum=10&2 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=4906&forum=10&12 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=1614&forum=10&28 あたりです。(他もあったかもしれませんが・・・) | ||||
|
投稿日時: 2005-02-10 09:55
こんにちは。
念のため確認したいのですが、vpopmailユーザのホームディレクトリは /var/www/vpopmailで合ってますよね。 で、このホームディレクトリ自体のオーナーやパーミッションはどうなってるでしょうか。 また、その下のetcディレクトリもですかね。 --- 確認する理由書いてなかったので補足追加。 qmail-smtpdを起動するユーザ(この場合はqmaildですかね)が tcp.smtp.cdbを読めるようにする必要があったと思います。 それを踏まえて対象パスまでのパーミッションを確認してみてください。 [ メッセージ編集済み 編集者: 綾瀬 編集日時 2005-02-10 12:42 ] | ||||
|
投稿日時: 2005-02-10 14:25
ありがとうございます。
vpopmailのユーザディレクトリは、/var/www/vpopmailに設定してあります。 このディレクトリは、vpopmail:vchkpwとなっており、ユーザ作成時-dで設定して います。 drwx------ 11 vpopmail vchkpw 4096 Feb 9 17:34 vpopmail/ その後のvpopmailのインストールで配下は自動的に出来上がったディレクトリ とファイル軍のままで、 -rw-r--r-- 1 root root 28 Feb 9 14:41 etc/inc_deps -rw-r--r-- 1 root root 45 Feb 9 14:41 etc/lib_deps -rw-r--r-- 1 root root 120 Feb 10 13:19 etc/open-smtp -rw-r--r-- 1 root root 0 Feb 10 13:19 etc/open-smtp.lock -rw-r--r-- 1 vpopmail vchkpw 74 Feb 9 03:26 etc/tcp.smtp -rw-r--r-- 1 vpopmail vchkpw 2560 Feb 10 12:40 etc/tcp.smtp.cdb -rw-r--r-- 1 vpopmail vchkpw 1107 Feb 9 14:41 etc/vlimits.default -r--r--r-- 1 root root 7669 Feb 9 14:41 include/config.h -r--r--r-- 1 root root 4262 Feb 9 14:41 include/vauth.h -r--r--r-- 1 root root 1991 Feb 9 14:41 include/vlimits.h -r--r--r-- 1 root root 7148 Feb 9 14:41 include/vpopmail.h -r--r--r-- 1 root root 7669 Feb 9 14:41 include/vpopmail_config.h -rw-r--r-- 1 root root 364030 Feb 9 14:41 lib/libvpopmail.a の一部を除き全てvpopmail:vchkpwです。 今回もご指摘を頂き、気になったのはtcp.smtp.cdbの読める権限ってやつです。 tcp.smtp.cdbに対しては何もしていないので、qmaildは直接読めない気がします。 @ITのインストール記事の通りだと、このあたりは直接触れていないのですが、他の サイトで「インストール後にデータベース作成を行う」とあって、 /usr/local/bin/tcprules /var/www/vpopmail/etc/tcp.smtp.cdb /var/www/vpopmail/etc/tcp.smtp.tmp < /var/www/vpopmail/etc/tcp.smtp もやってみたり、ユーザをvpopmailにしてみる等の権限換えもやってみたりはしました。 しかし、access deniedと言われます。 qmaildで読めるように、は、具体的には何を?と思いましたが、とりあえずchownでqmaildにしてみました。が、結果はやはりaccess deniedでした。 「qmail-smtpdを起動するユーザがtcp.smtp.cdbを読めるようにする」に触れた所 (記事)に今まで出会ったことが無かったので、思いつきませんでした。 「POP Before SMTP」設定前は、tcpserverはqmaildが立ち上げていたのは変わらない のですが、作成したtcp.smtp.cdbがroot:rootにもかかわらず正常に動いていたので 条件は一緒だと思い込んでいました。 ちなみに最初はvpopmailのバージョンは5.5.0でしたが、「できた」の報告が5.4.xの報告が多かったので、バージョンダウンで5.4.9、5.4.0も試しましたが結果は同じでした。 現在他に思いつく所が無くてお手上げになっています。 他に必要情報があれば公開します。 以上ですが、よろしくお願いいたします。 [ メッセージ編集済み 編集者: のんぴ 編集日時 2005-02-10 14:27 ] | ||||
|
投稿日時: 2005-02-10 16:45
こんにちは。
たぶんこれのせいですかねぇ。 このディレクトリのパーミッションを701にして試してみてもらえませんか? (qmaildが中を見られれば良いので755とかでも構いませんが) この下のetcも700になってるようなら、同じように変更してみてください。 今回の場合、tcp.smtp.cdb自体は644で誰でも読み込みはできるのですが、 このファイルがあるvpopmailのディレクトリが700なので、本人以外は 中に入れません。よってaccess deniedになったと思われます。 /etc/tcp.smtp.cdbが読めたのは、/etcのパーミッションが755であるためです。 (tcp.smtp.cdbのパーミッションは644になってるかと) ユーザ作成時のデフォルトのパーミッションはディストリビュージョンによって 設定が違います。 記事書いた方が使ったディストリビュージョンが何かは判りませんが、 たぶんデフォルトで755とかになってたのではないでしょうか。 ちなみにパーミッションが何者なのかはご存知ですよね? UNIX系触るなら避けて通れないと思いますので、もし知らないのであれば 是非調べてみてください。 #と、いろいろ書いてますが全く違ったらどーしよ・・ [ メッセージ編集済み 編集者: 綾瀬 編集日時 2005-02-10 16:51 ] | ||||
|
投稿日時: 2005-02-10 18:13
おぉ〜〜〜(^^ゞ
初心忘れるべからず、です。 そこのパーミッションに気が付いてませんでした・・・ というか、インストールがうまく行き、vpopmail自体が動いているので、 思い込みでホーム内部だけ見ていて、すっかり見落としておりました。 リモートのPCから、無事送信できるようになりました。 一応、他の何に影響がでるか判らないので、vpopmailのディレクトリだけ 755の設定にしておきました。 ~vmail/etcの内部は744なので、夜になったら744で様子を見てみようと思います。 (実は別件でも諦めていた事があったのですが、もしかしたらセキュリティのつもりで 実行用のユーザを作成し、作業ディレクトリをホームに設定したのが仇になっていた 化も知れません。そのディレクトリも700でしたので・・・) う・う・う、スキル不足感じました。 ユーザーを作る際は、気をつけて確かめる必要がありますね。 ちなみに、TurboLinux 8 Serverです。 そういえば、ユーザディレクトリは700で作成されて、apacheで読めない時に変更した 記憶が蘇って来ました。お恥ずかしいです。 一つどうしても判らない事があるのですが、 tcprulescheck ~vpopmail/etc/tcp.smtp.cdb と実行しても rule : deny connection と出るだけで、どこかで見たルール事態が表示されないのは何か間違っているのかな? と思って、通常利用していた/etc/tcp.smtpも見たのですが、 tcprulescheck /etc/tcp.smtp.cdb rule : allow connection ・・・。 違いと言えば、 /etc/tcp.smtpには、振り分けサーバーのIPと127の記述、許可したいドメインで構成し その他はrcpthostsにまかせ:allowとしてDB化。 ~vpopmail/etc/tcp.smtp.cdbは、振り分けサーバーからの受信は常に必要なので、 振り分けサーバーのIPと127の記述でそれ以外は、外向けサービスにしているので SPAM防止で ![]() 今回パーミッションで解決した(かも)事で忘れていたのですが、/etc/tcp.smtp の方はもしかしたらうまく動作せずにrcpthostsで送信していたのかもと疑い、でも vpopmailの方は今回、リモート側からの送信がうまく行ったので正常に機能したと 思います。 open-smtpにも、現在のリモートの動的IPが記録されていましたし、LOG上でもそのIP で送信許可がされていました。 と言う事は、tcprulescheckでの表示(tcp.smtp.cdbの中身)はどう確かめればいいのか と思いまして。ご存知でしたら、教えていただけると助かります。 第一弾の解決へのご指摘、ありがとうございました。 | ||||
|
投稿日時: 2005-02-10 21:31
ディレクトリのパーミッションとファイルのパーミッションとでは 意味が全く異なります。 綾瀬さんが書かれている通り701にするか、755あたりにしましょう。 |
1