いつもサイトを拝見させていただいて勉強させていただいています。
今回はFTPについて質問させてください。
私のサーバーの環境ですが
OS Fedora Core2
FTP vsFTPd
ルータはこちらのサイトを参考にサーバーをルータ化しました。
http://fedorasrv.com/pppoe-iptables.shtml
私のサーバーで特定のユーザーのみ、外部からFTPサーバーに接続しようとすると、
「ファイル一覧の取得に失敗しました。」のメッセージが返ってきます。
クライアントのFTPソフトはFFFTPver1.92を使用しています。
私のサーバーでは元々Proftpdを使用していたのですが、
それが原因かと思い、vsFTPdに変更してみたのですが、改善されませんでした。
ログにはProFTPd、vsFTPdともに「425」のエラーが出ております。
「FTP Test」のページでテストさせていただいた結果
ホスト(11.22.33.44)のポート(21)に接続中です。(2005/05/26 15:51:18)
220 unknown
-->USER test
331 Please specify the password.
-->PASS 1111
230 Login successful.
-->XPWD
257 "/"
-->TYPE A
200 Switching to ASCII mode.
-->PORT 58,0,123,31,208,244
200 PORT command successful. Consider using PASV.
-->LIST
150 Here comes the directory listing.
drwxr-xr-x 4 539 539 4096 Apr 12 17:10 cgi-bin
-rw-r--r-- 1 539 539 375 Feb 18 23:53 euc-test.php
-rw-r--r-- 1 539 539 425 Mar 24 20:59 index.html
-rw-r--r-- 1 539 539 22 Feb 13 10:13 phpinfo.php
-rw-r--r-- 1 539 539 390 Feb 18 23:53 sjis-test.php
226 Directory send OK.
-->TYPE A
200 Switching to ASCII mode.
-->PORT 58,0,123,31,208,245
200 PORT command successful. Consider using PASV.
-->RETR index.html
150 Opening ASCII mode data connection for index.html (425 bytes).
226 File send OK.
-->QUIT
221 Goodbye.
となって上手く出来たのですが、
今度「Passive」にチェックを入れた場合
ホスト(11.22.33.44)のポート(21)に接続中です。(2005/05/26 15:34:47)
220 unknown
-->USER test
331 Please specify the password.
-->PASS 1111
230 Login successful.
-->XPWD
257 "/"
-->TYPE A
200 Switching to ASCII mode.
-->PASV
227 Entering Passive Mode (60,56,48,73,231,155)
-->LIST
Error999: タイムアウトしました。(30 sec)
☆☆☆ テストは異常終了しました。☆☆☆ (2005/05/26 15:35:17)
となり上手くいきませんでした。
色々と検索した結果「425」エラーが出た場合「Passiveモード」にチェックを入れれば解決できるという内容が多かったので、
こちらの「FTPテスト」 で「Passive」にチェックを入れて
テストしてみたのですが、上手くいかなかったです。
/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
vsftpd_log_file=/var/log/ftp/vsftpd.log
xferlog_std_format=NO
log_ftp_protocol=YES
idle_session_timeout=300
data_connection_timeout=120
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=xxxxx.net FTP service.
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
chroot_local_user=YES
local_root=public_html
force_dot_files=YES
ls_recurse_enable=YES
use_localtime=YES
use_localtime=YES
pasv_promiscuous=YES
pam_service_name=vsftpd
userlist_enable=YES
listen=YES
tcp_wrappers=YES
ftpd_banner=unknown
このように設定しております。
Passiveモードを使用するには他に設定が必要なのでしょうか?
またポートを20-21意外に空ける必要があるのでしょうか?
私の設定が問題なのか、それともユーザー側での設定が問題なのでしょうか?
お手数ですがどうかご教授お願いします。
最近ルーターが安いせいなのかルーターを使わない方が逆に珍しく思えます。
パッシブはデーター転送時別ポートでサーバーに繋ぎに来るのでこのポートを開く必要があります。
pasv_min_port
pasv_max_port
を適当に設定(30000〜30009など)すると、パッシブでのポートはこの範囲になる。
とhttp://www.jpring.net/jitaku/vsftpd.htmlに書いてありました
その範囲をファイヤウオールからはずせばよいという事になります。
祇園様、お返事有難うございました。
> pasv_min_port
> pasv_max_port
> を適当に設定(30000〜30009など)すると、パッシブでのポートはこの範囲になる。
pasv_min_port=30000
pasv_max_port=30005
としてポートも開放してみたのですが、
こちらのサイトの「FTPテスト」の
「Passive」にチェックを入れると
「LIST」で止まり異常終了になります。
かなり行き詰ってきた感じです。
お手数ですがどうか宜しくお願いします。
祇園様、お返事有難うございました。
どういうわけか、
pasv_min_port=2000
pasv_max_port=2005
にして、こちらのサイトの「FTPテスト」の
「Passive」にチェックを入れてテストしたら、
上手くいきました。
本当に有難うございました。