web-dev-qa-db-ja.com

vsftpd-不正なPORTコマンド

VirtualBoxマシンでUbuntuサーバーを使用しています。 ApacheとSSHは機能していますが、FTPはサーバーに正常に接続してログインした後、エラーメッセージを送信します。

 - Command: PORT 127,0,0,1,180,221 
 - Response: 500 Illegal PORT command.
 - Error: Failed to retrieve directory listing

Port Forwarding:
TCP | Host Port 2100 | Guest Port 21

私のvstpd.confファイル:

listen=YES
pasv_enable=YES
pasv_min_port=2005
pasv_max_port=2010
port_enable=YES
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=NO
ftpd_banner=Welcome.
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
3
Kenny

ジャックベニーは近いです...

Ubuntuを使用してAWSで実行しているのは、vsftpdが正しく動作するようにするためです。

seccomp_sandbox=NO
allow_writeable_chroot=YES
pasv_address=<(public ip) or (AWS public domain or DNS)>
pasv_enable=Yes
pasv_min_port=30000
pasv_max_port=30100
port_enable=YES

次に、20,21,30000-30100が通過するポートを許可していることを確認する必要があります。ポートの選択30000-30100は完全に任意であり、あなたが望むものにできることを覚えておいてください。ただし、10000および100以上の範囲のポートに固執します。

6
Brandon Bearden

「外部」から接続しているときにエラーが発生しましたか?その場合、外部IPをvsftpdに追加して、パッシブモードFTPを使用するときにクライアントに送信するIPを認識させる必要があります。

pasv_address=<YOUR_IP_HERE>を設定に追加してみてください。

FTPクライアントをアクティブモードに切り替えて、同じエラーが引き続き発生するかどうかを確認することもできます。

また、パッシブFTPのポート範囲を設定し、パッシブモードFTPを有効にする必要があります。これらの行を追加してみてください(START_PORTおよびEND_PORTを目的のポートに置き換えてください。また、ルーターでポート転送することを忘れないでください)。

pasv_enable=Yes
pasv_max_port=<START_PORT>
pasv_min_port=<END_PORT>
5
jackbenny

ここで何が起こっているのかわかりませんが、この問題は古すぎます。数週間前に仮想マシンを再インストールし、すべての指示に注意深く従ったときに、ようやくこれを解決しました。とにかく回答はとても役に立ちました。

1
Kenny