Proftpd não responde ao comando “PASV”

2

Eu tenho tentado configurar meu servidor FTPS que está por trás do NAT. então eu abri as portas 20, 21 assim como 2120-2180 no meu NAT (TCP + UDP) e configurei o proftpd para usar essas portas para comunicações passivas.

No entanto, tentar se conectar usando o FileZilla leva ao seguinte log: (em francês, mas bem claro, na verdade)

Statut :    Résolution de l'adresse de heardrones.com
Statut :    Connexion à 93.30.208.56:21...
Statut :    Connexion établie, attente du message d'accueil...
Réponse :   220 ProFTPD 1.3.5 Server (HEAR Server) [93.30.208.56]
Commande :  USER hear_downloader
Réponse :   331 Mot de passe requis pour hear_downloader
Commande :  PASS ********
Réponse :   230 Utilisateur hear_downloader authentifié
Commande :  OPTS UTF8 ON
Réponse :   200 UTF-8 activé
Statut :    Connecté
Statut :    Récupération du contenu du dossier...
Commande :  PWD
Réponse :   257 "/" est le répertoire courant
Commande :  TYPE I
Réponse :   200 Type paramétré à I
Commande :  PASV
Erreur :    Délai d'attente expiré
Erreur :    Impossible de récupérer le contenu du dossier

O tempo limite antes mesmo de ser capaz de enviar a resposta "PASV"! O que poderia causar isso? A resposta para o comando PASV usa a mesma porta que todos os outros comandos (PWD, TYPE ...), então de onde poderia vir?

Aqui está o design da rede:

    Server
        Proftpd, no iptables, fix IP 192.168.0.13
        -> (Wifi)
    ISP Box - French ISP (SFR)
        port transfer 20,21,22,2120-2180 to 192.168.0.13
        -> (optic fiber !)
    Internet

Eu posso dar screenshots de configurações do Box e arquivos de configuração do proftpd, se necessário. A conexão da LAN / Localhost funciona perfeitamente.

    
por Magix 27.06.2016 / 01:13

1 resposta

2

FTP é um protocolo horrível. Ele usa duas portas - uma para comandos e outra para dados. Isso torna notoriamente difícil para o NAT, já que um roteador precisaria analisar o canal de comando e descobrir que uma segunda conexão é esperada para esta conversa FTP. Fazer isso é feio, mas também a única maneira de fazer o NAT funcionar com o FTP.

FTPS criptografa o canal de comando, impossibilitando, assim, que qualquer roteador inspecione os pacotes e descubra onde o canal de dados será. Obviamente, isso significa que não será capaz de explicar isso; Assim, quando o seu canal de dados é iniciado pelo cliente (conforme exigido pelo PASV), seu roteador NAT não saberá o que fazer com ele. Não é possível corrigir isso, devido à maneira como o FTP funciona.

Diga não ao FTP e use SFTP ou algo do tipo (que transfere arquivos por um túnel SSH e, portanto, requer apenas uma conexão TCP). A maioria dos clientes FTP gráficos também tem suporte para SFTP, atualmente.

    
por 27.06.2016 / 23:27