Я пытаюсь установить несколько пользователей FTP, каждого с его собственной подпапкой (таким образом, пользователь видит только его его корневая папка и ничто иное).
текущая проблема - то, что на filezilla я добираюсь
Status: Connection established, waiting for welcome message...
Status: Initializing TLS...
Status: Verifying certificate...
Status: TLS connection established.
Status: Server does not support non-ASCII characters.
Status: Connected
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/" is the current directory
Command: TYPE I
Response: 200 Switching to Binary mode.
Command: PASV
Error: GnuTLS error -15: An unexpected TLS packet was received.
Error: Disconnected from server: ECONNABORTED - Connection aborted
Error: Failed to retrieve directory listing
Я попробовал все опции FTP в Filezilla (TLS, явный или неявный). Ошибка во всех опциях.
/etc/vsftpd.conf
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
connect_from_port_20=YES
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/home/ftpmain/ftp/$USER
hide_ids=YES
guest_username=vsftpd
allow_writeable_chroot=YES
secure_chroot_dir=/var/run/vsftpd/empty
ssl_enable=YES
allow_anon_ssl=NO
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
pasv_address=123.123.123.123
pasv_enable=Yes
pasv_min_port=40000
pasv_max_port=50000
chroot_local_user=YES
chroot_list_enable=NO
/etc/pam.d/vsftpd
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
account required pam_permit.so
user1 папка похожа на это (после chmod+chown):
/home/ftpmain/ftp/user1$ ll
total 12
dr-xr-xr-x 3 root root 4096 Mar 18 19:17 ./
dr-xr-xr-x 4 nobody nogroup 4096 Mar 18 19:09 ../
drwxr-xr-x 2 vsftpd nogroup 4096 Mar 18 19:17 folder1/
Какая-либо идея?
Из того, что я читаю, это может быть связано с папкой, не существует, или неправильные полномочия. Я добавил 'allow_writeable_chroot=YES' я conf файл. Я также добавил 'log_ftp_protocol=YES'.
Это - текущий журнал (/var/log/vsftpd.log):
Wed May 1 08:44:28 2019 [pid 2310] CONNECT: Client "111.111.111.111"
Wed May 1 08:44:28 2019 [pid 2310] FTP response: Client "111.111.111.111", "220 (vsFTPd 3.0.3)"
Wed May 1 08:44:28 2019 [pid 2310] FTP command: Client "111.111.111.111", "AUTH TLS"
Wed May 1 08:44:28 2019 [pid 2310] FTP response: Client "111.111.111.111", "234 Proceed with negotiation."
Wed May 1 08:44:29 2019 [pid 2310] FTP command: Client "111.111.111.111", "USER user1"
Wed May 1 08:44:29 2019 [pid 2310] [user1] FTP response: Client "111.111.111.111", "331 Please specify the password."
Wed May 1 08:44:29 2019 [pid 2310] [user1] FTP command: Client "111.111.111.111", "PASS <password>"
Wed May 1 08:44:29 2019 [pid 2309] [user1] OK LOGIN: Client "111.111.111.111"
Wed May 1 08:44:29 2019 [pid 2319] [user1] FTP response: Client "111.111.111.111", "230 Login successful."
Wed May 1 08:44:29 2019 [pid 2319] [user1] FTP command: Client "111.111.111.111", "PBSZ 0"
Wed May 1 08:44:29 2019 [pid 2319] [user1] FTP response: Client "111.111.111.111", "200 PBSZ set to 0."
Wed May 1 08:44:29 2019 [pid 2319] [user1] FTP command: Client "111.111.111.111", "PROT P"
Wed May 1 08:44:29 2019 [pid 2319] [user1] FTP response: Client "111.111.111.111", "200 PROT now Private."
Wed May 1 08:44:30 2019 [pid 2319] [user1] FTP command: Client "111.111.111.111", "PWD"
Wed May 1 08:44:30 2019 [pid 2319] [user1] FTP response: Client "111.111.111.111", "257 "/" is the current directory"
Wed May 1 08:44:30 2019 [pid 2319] [user1] FTP command: Client "111.111.111.111", "TYPE I"
Wed May 1 08:44:30 2019 [pid 2319] [user1] FTP response: Client "111.111.111.111", "200 Switching to Binary mode."
Wed May 1 08:44:30 2019 [pid 2319] [user1] FTP command: Client "111.111.111.111", "PASV"
после того, как показано для 'user1' папки:
$ ll
dr-xr-xr-x 4 nobody nogroup 4096 Mar 18 19:09 ./
drwxr-xr-x 5 ftpmain ftpmain 4096 Mar 18 16:09 ../
dr-xr-xr-x 3 vsftpd 1002 4096 Mar 18 19:17 user1/
/home/ftpmain/ftp принадлежит 'nobody:nogroup'
текущая ситуация - то, что я удостоверился, что могу соединиться с FTP с помощью простого активного режима FTP. Для простого пассивного FTP режима я все еще получаю ошибку:
Status: Resolving address of .....
Status: Connecting to 111.111.111.111:21...
Status: Connection established, waiting for welcome message...
Status: Server does not support non-ASCII characters.
Status: Connected
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/" is the current directory
Command: TYPE I
Response: 200 Switching to Binary mode.
Command: PASV
Response: 500 OOPS: invalid pasv_address
Command: PORT 10,0,0,15,253,199
Response: 500 OOPS: priv_sock_get_cmd
Error: Failed to retrieve directory listing
Error: Connection closed by server
При попытке TLS я все еще получаю то же unexpected TLS packet was received
ошибка, даже после попытки chmod на user1 папке
drwxrwx--- 3 vsftpd 1002 4096 May 1 10:58 user1/
Наконец заставил это работать. Около моего процесса отладки, который я обрисовал в общих чертах в обновлениях исходного вопроса, вот то, что я сделал после.
Чтобы TLS работал, я рекомендую сначала удостовериться, что пассивный режим работает без TLS. Это вызвано тем, что от того, что я понимаю, шифрование предотвратит IP сервера, который отправляется сервером, который будет получен клиентом ftp.
Так первый шаг, отключите TLS путем установки ssl_enable=YES
в conf файле.
Пассивный режим требует дополнительных портов. Это строки, которые связаны с этим в файле конфигурации:
pasv_address=111.111.111.111
pasv_addr_resolve=NO
port_enable=YES
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
Необходимо удостовериться, что пассивные порты открыты! Я использовал EC2, таким образом, необходимо открыть порты в группах безопасности. Кроме того, проверьте ufw:
$ sudo ufw status numbered
Status: active
To Action From
-- ------ ----
[ 1] 20/tcp ALLOW IN Anywhere
[ 2] 21/tcp ALLOW IN Anywhere
[ 3] 990/tcp ALLOW IN Anywhere
[ 4] 40000:50000/tcp ALLOW IN Anywhere
[ 5] 22/tcp ALLOW IN Anywhere
[ 6] 20/tcp (v6) ALLOW IN Anywhere (v6)
[ 7] 21/tcp (v6) ALLOW IN Anywhere (v6)
[ 8] 990/tcp (v6) ALLOW IN Anywhere (v6)
[ 9] 40000:50000/tcp (v6) ALLOW IN Anywhere (v6)
[10] 22/tcp (v6) ALLOW IN Anywhere (v6)
С этим я смог соединить использующий пассивный режим и затем включение ssl_enable=YES
просто работавший.
Этот финал/etc/vsftpd.conf:
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
connect_from_port_20=YES
log_ftp_protocol=YES
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/home/ftpmain/ftp/$USER
hide_ids=YES
guest_username=vsftpd
allow_writeable_chroot=YES
chroot_local_user=YES
chroot_list_enable=NO
secure_chroot_dir=/var/run/vsftpd/empty
use_localtime=YES
ssl_enable=YES
allow_anon_ssl=NO
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
pasv_address=111.111.111.111
pasv_addr_resolve=NO
port_enable=YES
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000