私はこの質問が死ぬように求められたことを知っています( 1 、 2 、、 4 )が、私はここで何かが足りないので、うまく機能させることができません。 FTPログインは成功しましたが、ディレクトリリストで失敗し、ファイアウォールの問題であることが示唆されました。サーバーは、Laravel Forgeを使用して作成されたEC2インスタンスUbuntu16.04です。
使用しているセキュリティグループにパッシブポートの範囲を追加しました。すべての構成は回答に従って設定されていますが、それでもディレクトリリストエラーが発生します。私が間違っているかもしれないこと、またはそれを修正するために私がする必要があることについてのアイデアはありがたいです。
これが私のvsftpd設定です:
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
pasv_enable=YES
pasv_min_port=41361
pasv_max_port=65534
pasv_address=FORGE.IP.ADDRESS
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
Vsftpdサーバーは、ステータスを実行すると次のようになるため、正常に実行されています。
● vsftpd.service - vsftpd FTP server
Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2018-11-05 10:31:56 UTC; 22h ago
Main PID: 32657 (vsftpd)
Tasks: 1 (limit: 1152)
CGroup: /system.slice/vsftpd.service
└─32657 /usr/sbin/vsftpd /etc/vsftpd.conf
EC2インスタンスのセキュリティグループは次のとおりです。
UFWファイアウォールのポート20と21も開いています。 UFWのステータスは次のとおりです。
To Action From
-- ------ ----
22 ALLOW Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
21/tcp ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
21/tcp (v6) ALLOW Anywhere (v6)
私が行っていない唯一のことは、このようにUFWの「許可」のリストにそれらのポートを追加することです DigitalOceanチュートリアル が示唆しています。しかし、これは他の回答では示唆されていません。それは私が欠けているものですか、それとも私が欠けているより明白な何かがありますか?.
私が考え、@ Martin Prikrylが提案したように、UFWのセキュリティグループに設定したポート範囲を許可する必要がありました。これで、最終的にファイルが一覧表示されます。