Eu instalei o pureftpd em um VPS (ovh).
Eu posso listar um pequeno diretório (por pequeno quero dizer um diretório com apenas alguns arquivos) mas se eu tentar listar um grande contendo talvez milhares de arquivos, incluindo diretórios Eu tenho uma mensagem de erro "Falha ao recuperar listagem de diretório" do cliente filezilla quando clico no diretório "ps":
Command: USER xxxxx
Response: 331 User xxxxx OK. Password required
Command: PASS ************
Response: 230 OK. Current directory is /
Command: OPTS UTF8 ON
Response: 200 OK, UTF-8 enabled
Status: Connected
Status: Retrieving directory listing...
Command: CWD /ps
Response: 250 OK. Current directory is /ps
Command: TYPE I
Response: 200 TYPE is now 8-bit binary
Command: PASV
Response: 227 Entering Passive Mode (<my_vps_ip>,156,188)
Command: MLSD
Response: 150 Accepted data connection
Response: 226-Options: -a -l
Response: 226 33 matches total
Error: Connection timed out
Error: Failed to retrieve directory listing
Na linha de comando, tenho uma espera sem fim:
ftp> cd ps
250 OK. Current directory is /ps
ftp> ls
200 PORT command successful
150 Connecting to port 38359
Eu adicionei essas regras ao iptables, pois li isso poderia corrigir o problema no meu servidor:
root@vpsxxx:/var/www/html# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ftp-data ctstate RELATED,ESTABLISHED /* Allow ftp connections on port 20 */
ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpts:1024:65535 ctstate ESTABLISHED /* Allow passive inbound connections */
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ftp-data ctstate ESTABLISHED /* Allow ftp connections on port 20 */
ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpts:1024:65535 ctstate RELATED,ESTABLISHED /* Allow passive inbound connections */
Eu adicionei um intervalo de porta de correção para o modo passivo no pureftpd:
root@xxx:/var/www/html# cat /etc/pure-ftpd/conf/PassivePortRange
40110 40210
root@xxx:/var/www/html#
Estas são as permissões no meu diretório ps que estou tentando listar:
drwxr-xr-x 25 root root 4096 May 9 08:29 ps
Este é o iptables no meu sistema operacional (Debian 8):
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
Parece que tudo que eu tentei é inútil e não tem efeito.
Eu estava tão desesperada que tentei analisar o tráfego com o wireshark e parece que eu recebo parte do meu diretório em um pacote de protocolo FTP-DATA, mas então algo está errado, mas eu não sei o que ...
Apenas notei que tive o mesmo problema com o proftpd, achei que funcionaria melhor com o pureftpd, mas não:)
Obrigado pela sua ajuda