Top過去ログ目次掲示板

作成日:2007年01月26日 作成:おやじ
掲示板で過去に質問された内容です。

No.6701 proftpdによるPASV接続について


No.6701 投稿時間:2007年01月26日(Fri) 01:46 投稿者名:FC4 URL:
タイトル:proftpdによるPASV接続について

FedoraCore4にproftpd1.3.0をインストールしました.
PORT接続については、無事WAN側から接続できるようになったのですが、
WAN側からPASV接続時に、ポート範囲を指定しているのに、
クライアント側がその指定範囲のポートで接続しにきてくれません。
ポート範囲について,PassivePorts以外に設定しなければいけない
ところがあるのでしょうか.
proftpd.confの設定はおやじさんのHPを見させて頂き、設定しました。

ServerName "proftpd server"
ServerIdent on "FTP Server ready."
ServerAdmin root@localhost
ServerType inetd
MasqueradeAddress DDNSのホスト名
PassivePorts 60020 60030
DefaultServer on
AccessGrantMsg "User %u logged in."
DeferWelcome off
TimesGMT off

DefaultRoot ~/public_html

AuthPAMConfig ftp
AuthOrder mod_auth_pam.c* mod_auth_unix.c

IdentLookups off
UseReverseDNS off

Port 21
Umask 022

ListOptions "-a"

AllowRetrieveRestart on
AllowStoreRestart on
MaxInstances 30

User nobody
Group nobody

UseSendfile no

ScoreboardFile /var/run/proftpd.score

<Global>
AllowOverwrite yes
<Limit ALL SITE_CHMOD>
AllowAll
</Limit>
</Global>

LogFormat default "%h %l %u %t \"%r\" %s %b"
LogFormat auth "%v [%P] %h %t \"%r\" %s"

ExtendedLog /var/log/proftpd/access.log WRITE,READ default
ExtendedLog /var/log/proftpd/auth.log AUTH auth

proftpd.confの設定は以上です.
ルータを介したサーバなので,
指定範囲のポートは,ルータの方でもNAT設定,ポートフィルタの設定をしています.
おやじさんのFTPテストを行ったのですが,すぐにタイムアウトになってしまい,
テストができませんでした.
TEST NOは9703です.
友人に頼んで,外部からFFFTPで接続してもらったところ,
デフォルトルートのファイルの一覧は取得できたようなのですが,実際にファイルをダウンロード
しようとすると,
>TYPE A
200 Type set to A
>PASV
227 Entering Passive Mode (WAN側のIPアドレス,234,131)
ダウンロードのためにホスト WAN側のIPアドレス(60035)に接続しています.
接続できません.
ファイルの一覧の取得を中止しました.

このようなエラーがでるようです.
エラーを見るとマスカレードの設定は,うまくいっているようなのですが,
接続しにくるポートが範囲外です.
何度も接続をためしてもらいましたが,設定したポート範囲を避けるように(?)
接続しにいくようです.
何かお気付きの点がありましたら,どうぞ宣しくお願い致します.


No.6704 投稿時間:2007年01月27日(Sat) 15:51 投稿者名:おやじ URL:
タイトル:「MasqueradeAddress」と「PassivePorts」をコメントアウトすればうまくいくはずです。

> FedoraCore4にproftpd1.3.0をインストールしました.
> PORT接続については、無事WAN側から接続できるようになったのですが、
> WAN側からPASV接続時に、ポート範囲を指定しているのに、
> クライアント側がその指定範囲のポートで接続しにきてくれません。
> ポート範囲について,PassivePorts以外に設定しなければいけない
> ところがあるのでしょうか.
> proftpd.confの設定はおやじさんのHPを見させて頂き、設定しました。
>
> ServerName "proftpd server"
> ServerIdent on "FTP Server ready."
> ServerAdmin root@localhost
> ServerType inetd
> MasqueradeAddress DDNSのホスト名
> PassivePorts 60020 60030
> DefaultServer on
> AccessGrantMsg "User %u logged in."
> DeferWelcome off
> TimesGMT off
>
> DefaultRoot ~/public_html
>
> AuthPAMConfig ftp
> AuthOrder mod_auth_pam.c* mod_auth_unix.c
>
> IdentLookups off
> UseReverseDNS off
>
> Port 21
> Umask 022
>
> ListOptions "-a"
>
> AllowRetrieveRestart on
> AllowStoreRestart on
> MaxInstances 30
>
> User nobody
> Group nobody
>
> UseSendfile no
>
> ScoreboardFile /var/run/proftpd.score
>
> <Global>
> AllowOverwrite yes
> <Limit ALL SITE_CHMOD>
> AllowAll
> </Limit>
> </Global>
>
> LogFormat default "%h %l %u %t \"%r\" %s %b"
> LogFormat auth "%v [%P] %h %t \"%r\" %s"
>
> ExtendedLog /var/log/proftpd/access.log WRITE,READ default
> ExtendedLog /var/log/proftpd/auth.log AUTH auth
>
> proftpd.confの設定は以上です.
> ルータを介したサーバなので,
> 指定範囲のポートは,ルータの方でもNAT設定,ポートフィルタの設定をしています.
> おやじさんのFTPテストを行ったのですが,すぐにタイムアウトになってしまい,
> テストができませんでした.
> TEST NOは9703です.
> 友人に頼んで,外部からFFFTPで接続してもらったところ,
> デフォルトルートのファイルの一覧は取得できたようなのですが,実際にファイルをダウンロード
> しようとすると,
> >TYPE A
> 200 Type set to A
> >PASV
> 227 Entering Passive Mode (WAN側のIPアドレス,234,131)
> ダウンロードのためにホスト WAN側のIPアドレス(60035)に接続しています.
> 接続できません.
> ファイルの一覧の取得を中止しました.
>
> このようなエラーがでるようです.
> エラーを見るとマスカレードの設定は,うまくいっているようなのですが,
> 接続しにくるポートが範囲外です.
> 何度も接続をためしてもらいましたが,設定したポート範囲を避けるように(?)
> 接続しにいくようです.

HPに書いてありますが、想定外のポートでクライアントがつなごうとしているということは、ルータがPASVモードの応答メッセージにあるサーバが通知してきた待ち受けポートを書き換えている、即ちPASV対応ルータだからではないですか?(それ以外考えられない)
従って、「MasqueradeAddress」と「PassivePorts」をコメントアウトすればうまくいくはずです。
ルータがbuffalw、corega,opt,NEC等だとPASV対応のなっている可能性が高いです。


No.6705 投稿時間:2007年01月28日(Sun) 01:53 投稿者名:FC4 URL:
タイトル:Re: 「MasqueradeAddress」と「PassivePorts」をコメントアウトすればうまくいくはずです。

> HPに書いてありますが、想定外のポートでクライアントがつなごうとしているということは、ルータがPASVモードの応答メッセージにあるサーバが通知してきた待ち受けポートを書き換えている、即ちPASV対応ルータだからではないですか?(それ以外考えられない)
> 従って、「MasqueradeAddress」と「PassivePorts」をコメントアウトすればうまくいくはずです。
> ルータがbuffalw、corega,opt,NEC等だとPASV対応のなっている可能性が高いです。

レス有難うございます。
ルータはAtermBR1500Hを使っております。
調べたのですが、PASVには対応していないようです。
おやじさんのおっしゃられた通り、まず「MasqueradeAddress」「PassivePorts」の両方をコメントアウトして試してみたのですが、やはりポートの範囲指定ができていないので、うまく接続ができませんでした。そこで「PassivePorts」のコメントだけはずして
試してみましたら、なんとかうまくいきました。
有難うございました。
ただ、実際、接続後にDLをしてもらったのですが、DL速度が極端に低いのです。同時接続等は一切ないのですが、PASV接続時のクライアントのDL速度を上げる為にはどうすればよいのでしょうか。漠然的な質問で申し訳ありません。
どのあたりを見ればよいのかというだけでもアドバイス頂けると有難いです。
同じスレッドで恐縮ですが、宜しくお願い致します。


No.6706 投稿時間:2007年01月28日(Sun) 08:50 投稿者名:おやじ URL:
タイトル:単なる偶然のような気がしますが・・・

> ルータはAtermBR1500Hを使っております。
> 調べたのですが、PASVには対応していないようです。
> おやじさんのおっしゃられた通り、まず「MasqueradeAddress」「PassivePorts」の両方をコメントアウトして試してみたのですが、やはりポートの範囲指定ができていないので、うまく接続ができませんでした。そこで「PassivePorts」のコメントだけはずして
> 試してみましたら、なんとかうまくいきました。
> 有難うございました。

これはおやじのテストでですか? もしそうなら、単なる偶然のような気がします。
下記はご覧になっていますでしょうか?

http://www.aconus.com/~oyaji/router/ftp.htm

以下に、おやじのテストというか外部からの接続という前提で簡単に!!

この2つの設定は、ルータがPASVサーバの公開に対応していないとケース3のとおりで、クライアントがPASVで接続してきたときに、応答メッセージのなかで返すサーバのアドレスとポート番号がサーバのIPとサーバの任意の空きポートになってしまうので、それを受けたクライアントはどうしようもなくなってしまうので、その対策をするためのものです。つまり、「MasqueradeAddress」でルータのWAN側のグローバルIPを指定し、「PassivePorts」でサーバが待ち受けるポートを指定する(指定しないとルータでポートフォワーディングできないため)ことで、うまく通信ができるようになります。
従って、「MasqueradeAddress」なしでListが表示できたということは、通知されたIPでデータコネクションで張れたのでルータはPASVサーバの公開に対応しています。それ以外の方法ではListは表示できません。サーポートしているなら「PassivePorts」は設定してもしなくても大丈夫であり、設定してあればその範囲しかサーバが使用しないだけですから。同時に、この範囲のポートフォワーディングは自動でやってくれるので不要です。
「PassivePorts」の設定は、あくまでPASVモード未サーポートルータでは使用ポートを固定しないとポートフォワーディングできないためのものだからです。

> ただ、実際、接続後にDLをしてもらったのですが、DL速度が極端に低いのです。同時接続等は一切ないのですが、PASV接続時のクライアントのDL速度を上げる為にはどうすればよいのでしょうか。漠然的な質問で申し訳ありません。

極端に低いといってもどれくらいかわかりませんが、遅くなる要因はいろいろあるのでは? 因みに、サーバに対するアップロードのほうが一般的には遅いです。

1. クライアントが遅い。(他のサイトと比較すれば切り分けられる)
2. サーバが遅い。(家庭内ではどうかで切り分けられる)
3. 回線が遅い。(下記でアップロード速度を測ってみる)
 http://www.musen-lan.com/speed/

場所を切り分けて、更に追い込むしかないでしょう。サーバは、デフォルトならフルワイヤで動作します。(2項でわかるはず)


No.6707 投稿時間:2007年01月29日(Mon) 15:54 投稿者名:FC4 URL:
タイトル:Re: 単なる偶然のような気がしますが・・・

> これはおやじのテストでですか? もしそうなら、単なる偶然のような気がします。
> 下記はご覧になっていますでしょうか?
>
> http://www.aconus.com/~oyaji/router/ftp.htm
>
> 以下に、おやじのテストというか外部からの接続という前提で簡単に!!
>
> この2つの設定は、ルータがPASVサーバの公開に対応していないとケース3のとおりで、クライアントがPASVで接続してきたときに、応答メッセージのなかで返すサーバのアドレスとポート番号がサーバのIPとサーバの任意の空きポートになってしまうので、それを受けたクライアントはどうしようもなくなってしまうので、その対策をするためのものです。つまり、「MasqueradeAddress」でルータのWAN側のグローバルIPを指定し、「PassivePorts」でサーバが待ち受けるポートを指定する(指定しないとルータでポートフォワーディングできないため)ことで、うまく通信ができるようになります。
> 従って、「MasqueradeAddress」なしでListが表示できたということは、通知されたIPでデータコネクションで張れたのでルータはPASVサーバの公開に対応しています。それ以外の方法ではListは表示できません。サーポートしているなら「PassivePorts」は設定してもしなくても大丈夫であり、設定してあればその範囲しかサーバが使用しないだけですから。同時に、この範囲のポートフォワーディングは自動でやってくれるので不要です。
> 「PassivePorts」の設定は、あくまでPASVモード未サーポートルータでは使用ポートを固定しないとポートフォワーディングできないためのものだからです。

ご丁寧なレス誠に有難うございます。
ほんとに助かりました。
上記URLは以前拝見させて頂いていました。
テストは、おやじさんのFTPテストを使わせて頂きました。
とりあえず、もう一度整理してテストを行ってみました。
テスト結果は、
TESTNo.9973 「MasqueradeAddress」「PassivePorts」共にコメントアウトなし 接続失敗
TESTNo.9974 「MasqueradeAddress」のみコメントアウト 接続成功
TESTNo.9975 「MasqueradeAddress」「PassivePorts」共にコメントアウト 接続失敗

このような結果です。
おやじさんのレスで気づいたのですが、一つ書き忘れていたことがありました。
実は、サーバの方にもファイアウォールを設定していて、指定範囲のポートを開放する必要があったのです。
ここまではさすがに自動でやってくれないですよね。
というわけで、おやじさんのおっしゃられた通り、ルータがPASV接続に対応しているということなんですね。
ルータのポートフォワーディングが必要ないと分かりました。
お手数おかけしてすみませんでした。

> 極端に低いといってもどれくらいかわかりませんが、遅くなる要因はいろいろあるのでは? 因みに、サーバに対するアップロードのほうが一般的には遅いです。
>
> 1. クライアントが遅い。(他のサイトと比較すれば切り分けられる)
> 2. サーバが遅い。(家庭内ではどうかで切り分けられる)
> 3. 回線が遅い。(下記でアップロード速度を測ってみる)
>  http://www.musen-lan.com/speed/
>
> 場所を切り分けて、更に追い込むしかないでしょう。サーバは、デフォルトならフルワイヤで動作します。(2項でわかるはず)

早速アドバイス頂きまして、有難うございます。
おっしゃるようにサーバはデフォルトです。
アップロードについては、使用頻度が少ないので、まだテストはしておりませんが、極端に低いダウンロード速度というのは、30k〜40kくらいしかでないようなのです。
とりあえず、現在はそのアドバイスを元にいろいろとテストしております。
まだ書き込みできる程のものではないので、また改めて結果をお知らせしようと思います。
ちなみにその友人のところも私のところも、
3番目の回線速度は7,8M出ていましたので、問題ないようです。



掲示板▲頁先頭