Proftpd não responde ao comando "PASV"

Proftpd não responde ao comando "PASV"

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

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

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 ao comando PASV usa a mesma porta que todos os outros comandos (PWD, TYPE ...), então de onde ela 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

Posso fornecer capturas de tela das configurações do Box e arquivos de configuração do proftpd, se necessário. A conexão de LAN/Localhost funciona perfeitamente.

Responder1

FTP é um protocolo horrível. Ele usa duas portas – uma para comandos e outra para dados. Isto torna notoriamente difícil o NAT, uma vez 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 FTP.

FTPScriptografao canal de comando, impossibilitando assim que qualquer roteador inspecione os pacotes e descubra onde estará o canal de dados. Obviamente, isso significa que não será possível explicar isso; portanto, quando seu canal de dados for 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 à forma como o FTP funciona.

Basta dizer não ao FTP e usar SFTP ou algo parecido (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 oferece suporte para SFTP atualmente.

informação relacionada