Proftpd antwortet nicht auf den Befehl „PASV“

Proftpd antwortet nicht auf den Befehl „PASV“

Ich habe versucht, meinen FTPS-Server zu konfigurieren, der sich hinter NAT befindet. Daher habe ich die Ports 20, 21 sowie 2120-2180 in meinem NAT (TCP+UDP) geöffnet und proftpd so konfiguriert, dass diese Ports für passive Kommunikation verwendet werden.

Der Verbindungsversuch mit FileZilla führt jedoch zu folgendem Protokoll: (auf Französisch, aber eigentlich ganz klar)

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

Es läuft ab, bevor die „PASV“-Antwort überhaupt gesendet werden kann! Was könnte die Ursache dafür sein? Die Antwort auf den PASV-Befehl verwendet denselben Port wie alle anderen Befehle (PWD, TYPE ...), also woher könnte das kommen?


Hier ist das Netzwerkdesign:

    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

Ich kann bei Bedarf Screenshots der Box-Einstellungen und Proftpd-Konfigurationsdateien bereitstellen. Die Verbindung über LAN/Localhost funktioniert einwandfrei.

Antwort1

FTP ist ein schreckliches Protokoll. Es verwendet zwei Ports – einen für Befehle, einen für Daten. Dies macht NAT notorisch schwierig, da ein Router den Befehlskanal analysieren und herausfinden müsste, dass für diese FTP-Konversation eine zweite Verbindung erwartet wird. Dies ist zwar hässlich, aber auch die einzige Möglichkeit, NAT mit FTP zum Laufen zu bringen.

FTPSverschlüsseltder Befehlskanal, wodurch es für jeden Router unmöglich wird, die Pakete zu prüfen und herauszufinden, wo der Datenkanal sein wird. Das bedeutet natürlich, dass er das dann nicht berücksichtigen kann; wenn Ihr Datenkanal also vom Client initiiert wird (wie von PASV gefordert), weiß Ihr NATting-Router nicht, was er damit tun soll. Aufgrund der Funktionsweise von FTP ist es nicht möglich, dies zu beheben.

Sagen Sie einfach Nein zu FTP und verwenden Sie stattdessen SFTP oder etwas Ähnliches (das Dateien über einen SSH-Tunnel überträgt und daher nur eine TCP-Verbindung erfordert). Die meisten grafischen FTP-Clients unterstützen heutzutage auch SFTP.

verwandte Informationen