Não é possível listar diretórios grandes com pureftpd

3

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

    
por Laurent 09.05.2017 / 10:01

1 resposta

0

De acordo com a descrição do seu problema, incluindo seus comentários, seu firewall ( iptables ) bloqueia conexões de / para as portas TCP 20 e 21. Você precisa delas mesmo que use ftp passivo (a entrada 21 já está aparentemente aberta). / p>

Para saber mais, pesquise nos registros por blocos do Firewall, por exemplo, por

dmesg | grep -i firewall | tail -40

logo depois que você tentou - e não conseguiu - fazer o download do arquivo.

Além disso, o AppArmor ou outros recursos de segurança também podem impedir o processo pureftpd de veicular esses arquivos. Portanto, se o acima não mostrar os blocos de portas que podem ser desbloqueados para resolver o problema, consulte também os arquivos de log (tente ls -ltr /var/log para os arquivos de log do candidato examinarem, além de dmesg output sem grep s).

    
por 10.05.2017 / 20:32