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.