はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/01/16
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> 当サイト情報 >> スレッド

このページは表示専用です。新規投稿・レスや最新情報はこちらです。

このスレッドはクローズされています。記事の閲覧のみとなります。

 FTP接続でエラー
日時: 2005/12/19 20:28
名前: KC

はじめまして。

FC4、vsftpdでFTPサーバを立てているのですが、
WAN側からの接続の際に以下のエラーが出ます。
(ログはFFFTPでのログ)

----------------------------------------
ホスト XXXXXXXXXXXXXX を探しています.
ホスト XXXXXXXXXXXXXX (xx.xxx.xxx.xx (21)) に接続しています.
接続しました.
220 FTP server
>USER xxxxx
331 Please specify the password.
>PASS [xxxxxx]
230 Login successful.
>XPWD
257 "/"
>TYPE A
200 Switching to ASCII mode.
>PORT 10,104,2,143,6,87
200 PORT command successful. Consider using PASV.
>NLST -alL
425 Failed to establish connection.
コマンドが受け付けられません.
ファイル一覧の取得を中止しました.
ファイル一覧の取得に失敗しました.
-----------------------------------------

ユーザ名とパスワード応答は返ってくるのですが、
ファイル一覧の取得ができません。


vfstpd.conf は以下のように設定しています。

-----------------------------------------
anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

idle_session_timeout=600

data_connection_timeout=60

ascii_upload_enable=YES
ascii_download_enable=YES

ftpd_banner=FTP server

chroot_local_user=YES
chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

ls_recurse_enable=YES
use_localtime=YES
pam_service_name=vsftpd
userlist_enable=YES
listen=YES
tcp_wrappers=YES
xferlog_std_format=NO
log_ftp_protocol=YES
pasv_promiscuous=NO
-----------------------------------------

ルータでは20、21をポートマッピングしています。

クライアント側の問題なのか、サーバ側の問題なのか
切り分けができずに困っています。

何かわかる事があれば助言お願いします。

■ コンテンツ関連情報

 Re: FTP接続でエラー ( No.1 )
日時: 2005/12/19 21:46
名前: 武蔵

passiveモードをオフにしてみたら如何でしょうか?

 Re: FTP接続でエラー ( No.2 )
日時: 2005/12/20 08:51
名前: KC

pasv_promiscuous=NO によって
オフになっているかと思うのですが。

これではオフにはならないとの事ですか?
 Re: FTP接続でエラー ( No.3 )
日時: 2005/12/20 15:44
名前: KC

>USER xxxxx
331 Please specify the password.
>PASS [xxxxxx]
230 Login successful.


上記より制御コネクションは張れており、データコネクションを
張る段階で失敗している事から判断し、恐らくvsftpdで
PASVをサポートする事によって解決する可能性があるかと
思うのですが、その場合は pasv_promiscuous=YES とするのみで、
FWやルータ側に設定変更の必要はあるでしょうか。
 Re: FTP接続でエラー ( No.4 )
日時: 2005/12/20 17:17
名前: 管理者

クライアント側のファイアウォールが問題となっていませんか?
サーバ側で(20・21)をマッピングしてもクライアント側のファイアウォールによって遮断される場合があります。
クライアント側でのポートは(20・21)で通信するものではない事に注意してください。

ではなぜ、USER名とパスワード等が通るかというとクライアントからサーバの21番に向けた制御コネクションで行われています。
この後、NLST -alLの結果はサーバの20番を通してクライアントの任意のポートに返ってきます。
これがネックとなってファイル一覧が表示されない理由です。(もちろん、PUTやGETも同様)
(クライアント側ではサーバからアクセスにきたポートを開ける必要があります。(ポート番号はある範囲らしいですが調べてません))


予断ですがPASVモードとは、セッションを確立する向きが違う事です。
通常(ポートモードまたはアクティブモードと言う)はデータコネクションはサーバからクライアントに向けてですが
PASVはデータコネクションはクライアントからサーバの任意のポート番号(※)に向けて接続します。
(※:PASVは、制御コネクション返却時にサーバが指定した任意のポート番号を返却します)

今度は、PASVにした時の問題はサーバー側のポート番号が限定できない(ある範囲を開けなくてはいけない事です。)

KCさんが今はまっているのは前者の件で、クライアント側のファイアウォールを無効にすればファイルリストが取得できます。
(逆を言えば、クライアント側のファイアウォールのOUTに対して制限がなければPASVモードにしてサーバ側のある範囲のポートを開ければ通信可能になります。)


書いている内にややこしくなってしまいましたが、簡単にいうと以下になります。
  ・PASVを無効にした場合はクライアント側のポート範囲を開ける
  ・PASVを有効にした場合はサーバ側のポート範囲を開ける
 Re: FTP接続でエラー ( No.5 )
日時: 2005/12/20 20:19
名前: KC

ご返信ありがとうございます。


できれば、ご指示いただいた後者の

・PASVを有効にした場合はサーバ側のポート範囲を開ける

を検討したいのですが、この場合はFC4のFWと
ルータのポートの両方で共通のポートを開放する
必要があるという事でしょうか。

また、開放すべきポートの範囲などは
どこかWEBに掲載されているものなのでしょうか。
※調べてはみましたが、明確に範囲が記載してある
 ページがなかなか見つからず困っています。

お手数をおかけしますが、数日間この事象から
抜け出せずにいるため、どうぞよろしくお願いします。
 Re: FTP接続でエラー ( No.6 )
日時: 2005/12/20 20:34
名前: 管理者

>>・PASVを有効にした場合はサーバ側のポート範囲を開ける
> を検討したいのですが、この場合はFC4のFWと
> ルータのポートの両方で共通のポートを開放する
> 必要があるという事でしょうか。


FC4のFWも設定していると言うことですね?
この場合は、当然FC4も開放しなければなりません。
(内部ではiptablesによってポートのINPUTがREJECTされる為です)

> また、開放すべきポートの範囲などは
> どこかWEBに掲載されているものなのでしょうか。


ググって見たのですが、具体的なポート範囲の記述が見つからなかったのです。
当方でも調べてみますね。
 Re: FTP接続でエラー ( No.7 )
日時: 2005/12/20 20:50
名前: 管理者

vsftpd.confに以下の設定でポート範囲を指定出来るみたいです。

pasv_min_port=30000 ← ポート最小(設定値+1から使用)
pasv_max_port=30500 ← データ最大
 Re: FTP接続でエラー ( No.8 )
日時: 2005/12/20 20:54
名前: KC

お手数おかけします。

調べてみたのですが、vsftpdにはPASVモード時のポート指定をする
設定が可能なようでした。

そこで、ポート40000から40030の範囲に限定しました。
また、同時にFC側のFWにて、上記範囲を開放しました。

試しにローカルからPASVモードで接続すると、上記で設定した
範囲のポートでレスポンスが返ってきました。

----------------------------
ホスト xxx.xxx.xxx.xxx (21) に接続しています.
接続しました.
220 Unknown
>USER xxxxx
331 Please specify the password.
>PASS [xxxxxx]
230 Login successful.
>>CD C:\Document\
>XPWD

257 "/home/xxxxx"
>TYPE A
200 Switching to ASCII mode.
>PASV
227 Entering Passive Mode (xxx.xxx.xxx.xxx,156,77)
ダウンロードのためにホスト xxx.xxx.xxx.xxx (40013) に接続しています.
接続しました.
>LIST
150 Here comes the directory listing.
226 Directory send OK.
ファイル一覧の取得は正常終了しました. (259 Bytes)
----------------------------


そこで、今度はWAN側からの接続要求を許可するように
設定する必要があると思うのですが、この場合
どうポートマッピングするべきか悩んでおります。

機器によって表記の違いはあると思いますが、

・変換対象プロトコル:TCP
・変換対象ポート:40000-40030
・宛先アドレス:ローカルIP

で良いものでしょうか。
 Re: FTP接続でエラー ( No.9 )
日時: 2005/12/20 20:55
名前: KC

すみません。

>調べてみたのですが、vsftpdにはPASVモード時のポート指定をする
>設定が可能なようでした。


上記は先に管理者様がおっしゃっている通りです。
重複しました。
 Re: FTP接続でエラー ( No.10 )
日時: 2005/12/20 21:02
名前: 管理者

> そこで、今度はWAN側からの接続要求を許可するように
> 設定する必要があると思うのですが、この場合
> どうポートマッピングするべきか悩んでおります。


TCP Wrapperは如何でしょうか?
  参照「http://kajuhome.com/tips/tips_02_002.shtml
 Re: FTP接続でエラー ( No.11 )
日時: 2005/12/20 21:08
名前: KC

>TCP Wrapperは如何でしょうか?
>  参照「http://kajuhome.com/tips/tips_02_002.shtml


すみません。

基本的に外部へ公開しているFTPサーバなので、
デーモンアクセス制限は行わないつもりです。

とりあえず、ルータで40000〜40030を受け入れるようにし、
PASVでの接続を可能としたいのです。

 Re: FTP接続でエラー ( No.12 )
日時: 2005/12/20 21:14
名前: 管理者

失礼しました。

> そこで、今度はWAN側からの接続要求を許可するように
> 設定する必要があると思うのですが、この場合
> どうポートマッピングするべきか悩んでおります。
>
> 機器によって表記の違いはあると思いますが、
>
> ・変換対象プロトコル:TCP
> ・変換対象ポート:40000-40030
> ・宛先アドレス:ローカルIP
>
> で良いものでしょうか。


マッピングの話でしたね。
上記で指定で良いと思われます・・・。
 Re: FTP接続でエラー ( No.13 )
日時: 2005/12/20 21:16
名前: KC

どうも長々とすみませんでした。

とりあえずルータ設定を行い、
様子を見る事にします。

事が上手く運んだら報告させていただきます。

お手数をおかけいたしました。
 Re: FTP接続でエラー ( No.14 )
日時: 2005/12/20 21:19
名前: 管理者

事後報告、お待ちしております。
 Re: FTP接続でエラー ( No.15 )
日時: 2005/12/21 09:21
名前: KC

お世話になります。


昨日、ローカルでのPASVモードでの接続時には、
vsftpd.confで指定したポート「40000-40030」で
データコネクションを張っているのに、WAN側から
PASVでアクセスすると、上記以外の全く異なる
ポートでコネクションを張ろうとしてしまいます。


・FFFTPログより
-----------------------------------------
230-230 Login successful.
230
>>CD F:\
>XPWD

257 "/"
>TYPE A
200 Switching to ASCII mode.
>PASV
227 Entering Passive Mode (xxx.xxx.xxx.xxx,234,116)
ダウンロードのためにホスト xxx.xxx.xxx.xxx (60020) に接続しています.
接続しました.
>LIST
150 Here comes the directory listing.
226 Directory send OK.
ファイル一覧の取得は正常終了しました. (195 Bytes)
>CWD public_html
250 Directory successfully changed.
>XPWD
257 "/public_html"
>TYPE A
200 Switching to ASCII mode.
>PASV
227 Entering Passive Mode (xxx.xxx.xxx.xxx,234,117)
ダウンロードのためにホスト xxx.xxx.xxx.xxx (60021) に接続しています.
接続しました.
>LIST
150 Here comes the directory listing.
226 Directory send OK.
ファイル一覧の取得は正常終了しました. (0 Bytes)
>CDUP
250 Directory successfully changed.
>XPWD
257 "/"
>CWD public_html
250 Directory successfully changed.
>XPWD
>CWD public_html

257 "/public_html"
>XPWD
550 Failed to change directory.
>PWD
>CWD public_html

257 "/public_html"
>PWD
257 "/public_html"
550 Failed to change directory.
>TYPE A
257 "/public_html"
>PASV
200 Switching to ASCII mode.
アドレスが取得できません.
ファイル一覧の取得を中止しました.
ファイル一覧の取得に失敗しました.
227 Entering Passive Mode (xxx.xxx.xxx.xxx,234,119)
>PWD
257 "/public_html"
>TYPE A
200 Switching to ASCII mode.
>PASV
227 Entering Passive Mode (xxx.xxx.xxx.xxx,234,120)
アップロードのためにホスト xxx.xxx.xxx.xxx (60024) に接続しています.
接続しました.
>STOR /public_html/index2.htm
150 Ok to send data.
226 File receive OK.
アップロードは正常終了しました. (1 Sec. 18 B/S).
>TYPE A
200 Switching to ASCII mode.
>PASV
227 Entering Passive Mode (xxx.xxx.xxx.xxx,234,121)
ダウンロードのためにホスト xxx.xxx.xxx.xxx (60025) に接続しています.
接続しました.
-----------------------------------------

なぜか、60000番台のポートでコネクションが
張られようとしています。

vsftpd.confに
pasv_min_port=40000
pasv_max_port=40030 と追加してvsftpdを再起動し、

ルータに
・変換対象プロトコル:TCP
・変換対象ポート:40000-40030
・宛先アドレス:サーバのローカルIP

としているのですがどこかに誤りがあるのでしょうか?

また、60000番台を任意に開放した覚えはない(FCのFW、ルータ共に)
のに、なぜ60000番台でコネクションが張れてしまう場合があるのか、
全くわかりません。
(60021とか60106ぐらいまでは成功するように見え、60108などは失敗します)


根本的な解決は難しいのでしょうか。
 Re: FTP接続でエラー ( No.16 )
日時: 2005/12/21 11:54
名前: 管理者

おかしいですね・・・
私の場合は指定したポート範囲内で通信を行っています。
下記FFFTPログを参照下さい。

---------- ここから ----------
FFFTP Ver.1.92 Copyright(C) 1997-2003 Sota.
----------------------------
ホスト xxx.xxx.xxx.xxx (21) に接続しています.
接続しました.
220 (vsFTPd 2.0.3)
>USER linux
331 Please specify the password.
>PASS [xxxxxx]
230 Login successful.
>XPWD
257 "/home/linux"
>TYPE A
200 Switching to ASCII mode.
>PASV
227 Entering Passive Mode (xxx,xxx,xxx,xxx,156,92)
ダウンロードのためにホスト xxx.xxx.xxx.xxx (40028) に接続しています.
接続しました.
>NLST -alL
150 Here comes the directory listing.
226 Directory send OK.
ファイル一覧の取得は正常終了しました. (785 Bytes)
>>CD D:\Temp
>CWD public_html

250 Directory successfully changed.
>XPWD
257 "/home/linux/public_html"
>TYPE A
200 Switching to ASCII mode.
>PASV
227 Entering Passive Mode (xxx,xxx,xxx,xxx,156,66)
ダウンロードのためにホスト xxx.xxx.xxx.xxx (40002) に接続しています.
接続しました.
>NLST -alL
150 Here comes the directory listing.
226 Directory send OK.
ファイル一覧の取得は正常終了しました. (255 Bytes)
>TYPE I
200 Switching to Binary mode.
>PASV
227 Entering Passive Mode (xxx,xxx,xxx,xxx,156,91)
アップロードのためにホスト xxx.xxx.xxx.xxx (40027) に接続しています.
接続しました.
>STOR /home/linux/public_html/top.shtml
150 Ok to send data.
226 File receive OK.
アップロードは正常終了しました. (1 Sec. 9684 B/S).
>TYPE A
200 Switching to ASCII mode.
>PASV
227 Entering Passive Mode (xxx,xxx,xxx,xxx,156,86)
ダウンロードのためにホスト xxx.xxx.xxx.xxx (40022) に接続しています.
接続しました.
>NLST -alL
150 Here comes the directory listing.
226 Directory send OK.
ファイル一覧の取得は正常終了しました. (255 Bytes)
>TYPE I
200 Switching to Binary mode.
>PASV
227 Entering Passive Mode (xxx,xxx,xxx,xxx,156,70)
ダウンロードのためにホスト xxx.xxx.xxx.xxx (40006) に接続しています.
接続しました.
>RETR /home/linux/public_html/index.shtml
150 Opening BINARY mode data connection for /home/linux/public_html/index.shtml (9684 bytes).
226 File send OK.
ダウンロードは正常終了しました. (1 Sec. 9684 B/S).
切断しました
---------- ここまで ----------

いづれも、40000番台の範囲内で行っています。
ちなみに、vsftpの設定ファイルを以下に明記します。
「/etc/vsftpd/vsftpd.conf」
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
idle_session_timeout=600
ascii_upload_enable=YES
ascii_download_enable=YES
use_localtime=YES
pam_service_name=vsftpd
userlist_enable=YES
listen=YES
tcp_wrappers=YES
xferlog_std_format=NO
log_ftp_protocol=YES
pasv_promiscuous=YES
pasv_min_port=40000
pasv_max_port=40030

また、FFFTPの「ホストの設定」内の「拡張」タブで「PASVモードを使う(V)」はONです。
 Re: FTP接続でエラー ( No.17 )
日時: 2005/12/21 12:00
名前: KC

お手数かけます。


原因は全くわからないです。
最も不可解なのが、やはりPASVを有効にすると
60000番台でアクセスするという点です。
必ず60000番台の下3桁の任意の番号を
指定されているようです。

そもそもルータ側で60000番台のポートが開いていなければ
通信できないはずですよね。
もう一度ルータの設定を確認してみます。

ちなみに、無関係かもしれませんが
PORTモードでのログに表示される以下の一文
「200 PORT command successful. Consider using PASV.」は
どういった意味合いなのでしょう。

PORTモードなのにPASVを使用しているんですか?
 Re: FTP接続でエラー ( No.18 )
日時: 2005/12/21 12:13
名前: 管理者

すみません。今気づいたのですが、当方の紹介ページで「パッシブモードが有効になっている」と明記してありますね。
(そもそも、WindowsのFTPはPASVに対応していなかった気が・・・・「FFFTP」でのログに切り替えます)


さて本題の「Consider using PASV.」ですが、和訳すると「PASVを使うことを考えてください」ですので、PASVにはなっていません。
 Re: FTP接続でエラー ( No.19 )
日時: 2005/12/21 12:52
名前: KC

PASVの推奨という意味なのですね。理解しました。

>(そもそも、WindowsのFTPはPASVに対応していなかった気が・・・・

Windows のコマンドプロンプトではPASVはサポートされていないですね。
別途ツールをインストールせずにPASVで接続する場合は
IEを用いると良いでしょう。(IEオプションで設定)


本題のほうですが、このままだと挫折するしかなさそうです。
 Re: FTP接続でエラー ( No.20 )
日時: 2005/12/22 10:02
名前: KC

お世話になります。

>なぜ60000番台でコネクションが張れてしまう場合があるのか、全くわかりません。

どうも、NEC製ルータの場合に、勝手にサーバのIPとポート番号を書き換えて
クライアントに通知する仕様らしいです。

実際にどう対応する事になるかは今のところ未定ですが、
ひとまずクローズとして下さい。
何か進捗があれば報告します。

■ その他

ページ先頭へ


Copyright(©)2004-2018 First home server construction. All Right Reserved.