Atualmente estou lutando com algum tipo de problema de conexão com o vsftpd.
Estou usando um arch linux e tenho o vsftpd versão 3.0.3 instalado.
Eu não uso iptables nem nada. Quando me conecto ao meu servidor FTP, consigo efetuar login e navegar em diretórios. Eu também sou capaz de fazer o download e download de arquivos.
O usuário do FTP é chrooted em seu diretório inicial, e todos os subdiretórios são de propriedade do usuário ftp.
A estrutura atual:
|- home_dir
|- dir1
|- dir2
|- dir3
|- dir3
|- dir4
|- ...
Eu sou capaz de "cd" em dir1, fazer um "ls" e up / download de arquivos.
Eu também sou capaz de "cd" em dir2, mas aqui vem a parte complicada:
Eu posso perfeitamente carregar arquivos no dir2, mas quando eu faço um "ls", o servidor está fechando a conexão dizendo: "421 Serviço não disponível, servidor remoto tem conexão fechada".
Eu descobri que a causa são vários dos subdiretórios de "dir2". Eu descobri que a existência de 8 de todos os subdiretórios está fazendo com que a conexão seja fechada. Depois de removê-los, a listagem funciona bem. Todos os nomes estão contendo letras minúsculas de a a z, sem caracteres especiais.
Minha configuração de ftp:
log_ftp_protocol=YES
anonymous_enable=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
pasv_addr_resolve=YES
pasv_address=mydomain.com
pasv_enable=Yes
pasv_min_port=40020
pasv_max_port=40030
local_enable=YES
write_enable=YES
local_umask=002
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=myuser
ftpd_banner=Welcome.
chroot_local_user=YES
E é isso que os servidores FTP-Log dizem:
Wed Dec 28 13:55:06 2016 [pid 2] CONNECT: Client "<client_ip>"
Wed Dec 28 13:55:06 2016 [pid 2] FTP response: Client "<client_ip>", "220 Welcome."
Wed Dec 28 13:55:07 2016 [pid 2] FTP command: Client "<client_ip>", "USER myuser"
Wed Dec 28 13:55:07 2016 [pid 2] [myuser] FTP response: Client "<client_ip>", "331 Please specify the password."
Wed Dec 28 13:55:07 2016 [pid 2] [myuser] FTP command: Client "<client_ip>", "PASS <password>"
Wed Dec 28 13:55:07 2016 [pid 1] [myuser] OK LOGIN: Client "<client_ip>"
Wed Dec 28 13:55:07 2016 [pid 3] [myuser] FTP response: Client "<client_ip>", "230 Login successful."
Wed Dec 28 13:55:07 2016 [pid 3] [myuser] FTP command: Client "<client_ip>", "OPTS UTF8 ON"
Wed Dec 28 13:55:07 2016 [pid 3] [myuser] FTP response: Client "<client_ip>", "200 Always in UTF8 mode."
Wed Dec 28 13:55:07 2016 [pid 3] [myuser] FTP command: Client "<client_ip>", "PWD"
Wed Dec 28 13:55:07 2016 [pid 3] [myuser] FTP response: Client "<client_ip>", "257 "/" is the current directory"
Wed Dec 28 13:55:07 2016 [pid 3] [myuser] FTP command: Client "<client_ip>", "TYPE I"
Wed Dec 28 13:55:07 2016 [pid 3] [myuser] FTP response: Client "<client_ip>", "200 Switching to Binary mode."
Wed Dec 28 13:55:07 2016 [pid 3] [myuser] FTP command: Client "<client_ip>", "PASV"
Wed Dec 28 13:55:07 2016 [pid 3] [myuser] FTP response: Client "<client_ip>", "227 Entering Passive Mode (<server_ip>,156,86)."
Wed Dec 28 13:55:07 2016 [pid 3] [myuser] FTP command: Client "<client_ip>", "LIST"
Wed Dec 28 13:55:07 2016 [pid 3] [myuser] FTP response: Client "<client_ip>", "150 Here comes the directory listing."
Wed Dec 28 13:55:08 2016 [pid 3] [myuser] FTP response: Client "<client_ip>", "226 Directory send OK."
Wed Dec 28 13:55:09 2016 [pid 3] [myuser] FTP command: Client "<client_ip>", "CWD /dir1"
Wed Dec 28 13:55:09 2016 [pid 3] [myuser] FTP response: Client "<client_ip>", "250 Directory successfully changed."
Wed Dec 28 13:55:09 2016 [pid 3] [myuser] FTP command: Client "<client_ip>", "PASV"
Wed Dec 28 13:55:09 2016 [pid 3] [myuser] FTP response: Client "<client_ip>", "227 Entering Passive Mode (<server_ip>,156,92)."
Wed Dec 28 13:55:09 2016 [pid 3] [myuser] FTP command: Client "<client_ip>", "LIST"
Wed Dec 28 13:55:09 2016 [pid 3] [myuser] FTP response: Client "<client_ip>", "150 Here comes the directory listing."
Wed Dec 28 13:55:09 2016 [pid 3] [myuser] FTP response: Client "<client_ip>", "226 Directory send OK."
Wed Dec 28 13:55:11 2016 [pid 3] [myuser] FTP command: Client "<client_ip>", "CWD /dir1/dir2"
Wed Dec 28 13:55:11 2016 [pid 3] [myuser] FTP response: Client "<client_ip>", "250 Directory successfully changed."
Wed Dec 28 13:55:11 2016 [pid 3] [myuser] FTP command: Client "<client_ip>", "PASV"
Wed Dec 28 13:55:11 2016 [pid 3] [myuser] FTP response: Client "<client_ip>", "227 Entering Passive Mode (<server_ip>,156,87)."
Wed Dec 28 13:55:11 2016 [pid 3] [myuser] FTP command: Client "<client_ip>", "LIST"
Wed Dec 28 13:55:11 2016 [pid 3] [myuser] FTP response: Client "<client_ip>", "150 Here comes the directory listing."
O log sempre pára depois de "150 Aí vem a listagem do diretório". Eu tentei várias vezes.
E isto é, o que eu vejo, quando eu uso o comando ftp no meu terminal:
$ ftp -n 127.0.0.1
Connected to 127.0.0.1.
220 Welcome.
ftp> user myuser
331 Please specify the password.
Password:
230 Login successful.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x 4 1000 1000 4096 Dec 28 13:27 dir1
226 Directory send OK.
ftp> cd dir1
250 Directory successfully changed.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rwxr-xr-x 1 1000 1000 469504 Dec 23 03:03 file_1
-rw-r--r-- 1 1000 1000 186 Feb 19 2016 file_2
-rw-r--r-- 1 1000 1000 121856 Dec 23 00:16 file_3
-rw-r--r-- 1 1000 1000 118272 Feb 12 2016 file_4
-rw-r--r-- 1 1000 1000 88232 Mar 22 2016 file_5
-rw-r--r-- 1 1000 1000 64680 Mar 22 2016 file_6
-rw-r--r-- 1 1000 1000 101032 Mar 22 2016 file_7
-rw-r--r-- 1 1000 1000 6144 Mar 22 2016 file_8
-rw-r--r-- 1 1000 1000 899584 Mar 22 2016 file_9
drwxrwxr-x 42 1000 1000 4096 Dec 28 11:38 dir2
226 Directory send OK.
ftp> cd dir2
250 Directory successfully changed.
ftp> pwd
257 "/dir1/dir2" is the current directory
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
421 Service not available, remote server has closed connection
Muito obrigado pela ajuda.