- PR -

POPbeforeSMTPのsmtp-openファイルについて

1
投稿者投稿内容
sandora
会議室デビュー日: 2006/03/04
投稿数: 4
投稿日時: 2006-03-04 14:06
初歩的な質問ですみません。

RedHat9で、qmail + vpopmailで
メールサーバを構築しようとしていますが、
POPbeforeSMTPが動作していません。
telnet から、smtpのアクセスをすると、
pop認証されずに、送信が出来てしまいます。

pop認証すると、/home/vpopmail/etc/smtp-openに
認証したIPアドレスが書かれるとのことですが、
見つかりません。他のディレクトリにもありませんでした。

vpopmailインストール時に、
configure で
--enable-roaming-users = y
を設定しているのですが、
ファイルが作成されていません。

どのような原因が考えられますでしょうか?
ご助言よろしくお願いいたします。

kalze
ぬし
会議室デビュー日: 2003/10/23
投稿数: 406
お住まい・勤務地: 東京・東京
投稿日時: 2006-03-04 18:48
とりあえず状況の整理しましょう。

導入したのは
qmail
tcpserver
vpopmail
でよろしいでしょうか?
それぞれのバージョン(特にvpopmail)はいくつでしょうか?

smtp-openファイルでしたっけ?
open-smtpファイルでなかったっけか・・・
手元に環境ないので確認できませんが。

本当はインストール手順まで聞きたいところですが、
pop認証自体されないという話しなので、起動スクリプトがおかしいのではないかなとおもいました。

起動スクリプトをユニークなところ(FQDNとかドメインとか)を置換した状態で教えてもらえますか?
_________________
sandora
会議室デビュー日: 2006/03/04
投稿数: 4
投稿日時: 2006-03-04 19:48
kalze様

ご返答ありがとうございます。
情報が少なく申し訳ありませんでした。
以下に回答致します。

引用:

導入したのは
qmail
tcpserver
vpopmail
でよろしいでしょうか?
それぞれのバージョン(特にvpopmail)はいくつでしょうか?



qmail -> 1.03
tcpserver -> 0.88
vpopmail -> 5.4.13
となります。

引用:

smtp-openファイルでしたっけ?
open-smtpファイルでなかったっけか・・・



お恥ずかしい限り。
open-smtpでした・・・。

引用:

起動スクリプトをユニークなところ(FQDNとかドメインとか)を置換した状態で教えてもらえますか?



/usr/local/bin/tcpserver -H -R \
-x /home/vpopmail/etc/tcp.smtp.cdb -c 100 -u XXX -g XXX 0 \
smtp /var/qmail/bin/qmail-smtpd 2>&1

となります。

何卒よろしくお願いいたします。

kalze
ぬし
会議室デビュー日: 2003/10/23
投稿数: 406
お住まい・勤務地: 東京・東京
投稿日時: 2006-03-04 20:02
popのほうの起動スクリプトも知りたいので、
可能であれば、起動スクリプト全体を見せていただけるとありがたいです。

後は、tcp.smtpの内容と、テストしているクライアントマシンのIPアドレスでしょうか。

既にtcp.smtpにクライアントマシンのIPアドレスに関して許可する記述がしてある場合は、
認証に通っているので、POP認証をしていないというのであれば納得できるかも
sandora
会議室デビュー日: 2006/03/04
投稿数: 4
投稿日時: 2006-03-04 21:29
引用:

popのほうの起動スクリプトも知りたいので、
可能であれば、起動スクリプト全体を見せていただけるとありがたいです。


popの起動スクリプトは以下です。

env - PATH="/var/qmail/bin:$PATH" \
/usr/local/bin/tcpserver -R -H -l mydomain -v 0 po3 \
/var/qmail/bin/qmail-popup \
mydomain /home/vpopmail/bin/vchkpw \
/var/qmail/bin/qmail-pop3d Mairdir 2>&!


引用:

後は、tcp.smtpの内容と、テストしているクライアントマシンのIPアドレスでしょうか。




tcp.smtpは、

127.0.0.1:allow.RELAYCLIENT=""
192.168.1.:allow.RELAYCLIENT=""
:allow

です。

引用:

既にtcp.smtpにクライアントマシンのIPアドレスに関して許可する記述がしてある場合は、
認証に通っているので、POP認証をしていないというのであれば納得できるかも



もしかして、
tcp.smtpに記載されいてるIPアドレスからの送信は、
pop認証されないということですか??
それでしたら、私の勉強不足ですね・・・。
kalze
ぬし
会議室デビュー日: 2003/10/23
投稿数: 406
お住まい・勤務地: 東京・東京
投稿日時: 2006-03-04 22:32
えーっと、POP before SMTPはSMTP-AUTHと異なり、SMTP接続時に認証するわけではありません。

SMTP接続を許可するIPアドレスをtcp.smtp.cdbに記載しておく。

tcp.smtp.cdbに記載され許可されているIPアドレスからの接続かどうかをチェックし、そうであれば接続を許可して送信し、そうでなければ、要求を却下するという仕組みをSMTPに設ける。

また、POP認証が通ったときに、tcp.smtp.cdbにその認証の通った接続のIPアドレスを記載する。

という2つの仕組みからできています。

今回の場合、tcp.smtp.cdbに初めからテストを行っているクライアントのIPアドレスが記載されているのですから、POP認証でtcp.smtp.cdbを書き換える必要もなく、tcp.smtp.cdbに記載されているわけですから、普通に送信されます。

もし、tcp.smtp.cdbに「192.168.1.:allow.RELAYCLIENT="" 」がなくて、POP認証をしていなければ、tcp.smtp.cdbというホワイトリストに載っていないIPアドレスからの接続であるので、SMTPへの要求は却下されます(認証しようとするわけではありません)。


ご希望の、192.168.1.からの接続でもPOP before SMTPを必須としたいのであれば、
tcp.smtp.cdbから「192.168.1.:allow.RELAYCLIENT="" 」の行を削除し、
tcp.smtp.cdbを作り直してからテストしてください

sandora
会議室デビュー日: 2006/03/04
投稿数: 4
投稿日時: 2006-03-05 06:45
大変良く解るご説明ありがとうございます。

おっしゃる通り、

tcp.smtp.cdbから「192.168.1.:allow.RELAYCLIENT="" 」の行を削除
したら、
POP認証されるようになりました。

私の勉強不足であり、お騒がせ致しました・・・。

この度はありがとうございました。
1

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