Pure-FTPd-Versand einer richtigen pasv-Antwort, aber falsche IP-Adresse erhalten

584
lracicot

Ich habe meinen FTP-Server mit gestartet pure-ftpd -l puredb:/etc/pure-ftpd/pureftpd.pdb -E -j -R -P 67.68.xxx.xx -s -A -j -Z -H -4 -E -R -G -X -x -d -d -U 113:000 -p 30000:30009 -c 50 -C 5

In meiner Pure-FTPd-Protokolldatei habe ich:

[DEBUG] Command [pasv] [] 227 Entering Passive Mode (67,68,xxx,xx,117,54)

Mein FTP-Client erhält jedoch Folgendes:

---> PASV 227 Entering Passive Mode (192,168,2,23,231,6) ftp: connect: No route to host

Warum passiert das und wie bekomme ich die richtige IP-Adresse? Vielen Dank.

1
Ihr FTP-Server befindet sich also nicht in Ihrem lokalen Netzwerk, oder? Welches Gerät steht bei 192.168.2.23? Daniel B vor 6 Jahren 0
Es ist ein öffentlicher FTP-Server, den ich remote teste. 192.168.2.23 ist nicht vorhanden. Tatsächlich hat der FTP-Server in 192.168 keine Schnittstelle lracicot vor 6 Jahren 0
Versuchen Sie, die FTP-Verbindung zu verschlüsseln. Es ist wahrscheinlich ein FTP-NAT-Helfer mit Amok. Daniel B vor 6 Jahren 3
Das Verschlüsseln der Verbindung hat funktioniert. Vielen Dank! lracicot vor 6 Jahren 0
@DanielB Sie können Ihre Lösung als Antwort hinzufügen, damit ich sie annehmen kann. lracicot vor 6 Jahren 0

1 Antwort auf die Frage

2
Spiff

Da FTP IP-Adressen und -Ports innerhalb solcher Nachrichten sendet (nicht nur in den Paketköpfen), handelt es sich nicht um ein NAT-freundliches Protokoll.

Aus diesem Grund verfügen NAT-Gateways häufig über einen speziellen Code für die Verarbeitung von FTP. Dieser Code wird als FTP "Application Layer Gateway" oder ALG bezeichnet. FTP-ALGs suchen nach Nachrichten wie dem PASV-Befehl und schreiben die IP-Adresse erneut, um die öffentliche IP-Adresse des NAT-Gateways darzustellen, damit die Kommunikation funktioniert.

Befindet sich Ihr FTP-Client hinter einem NAT-Gateway und Ihr FTP-Server nicht, können Sie den passiven Modus verwenden, um ein fehlerhaftes NAT-Gateway ohne FTP-ALG zu umgehen.

Befindet sich Ihr FTP-Client NICHT hinter einem NAT-Gateway, sondern Ihr FTP-Server IST, können Sie normales aktives FTP problemlos verwenden. In diesem Fall würde der Passivmodus jedoch tatsächlich abbrechen, wenn das NAT-Gateway vor dem FTP-Server nicht vorhanden ist ein gutes FTP-ALG. Viele NAT-Gateways verfügen über halb gebrochene FTP-ALGs, die aktive FTP-Funktion für FTP-Clients hinter dem NAT ermöglichen, jedoch nicht den Fall "FTP- Server hinter dem NAT" behandeln. Offensichtlich denken viele Anbieter von NAT-Gateways nicht an den Server-behind-the-NAT-Fall.

Wenn sich sowohl Ihr FTP-Client als auch Ihr FTP-Server jeweils hinter separaten NAT-Gateways befinden, die keine FTP-ALGs haben, wird aktives FTP vom NAT des Clients blockiert und passives FTP wird vom NAT des Servers blockiert Wenn Sie in diesem Fall überhaupt kein FTP verwenden, müssen Sie eine Art Tunnel oder eine andere Problemumgehung einrichten. Die Umstellung auf verschlüsseltes FTP wird funktionieren, da verschlüsselte FTP-Protokolle entwickelt wurden, nachdem NAT-Gateways üblich waren und die Autoren wussten, dass ein NAT-Gateway die Interna des Protokolls nicht sehen oder sich damit vermischen kann. Daher mussten sie es so entwickeln, dass es funktioniert in allen verschiedenen NAT-Szenarien.

"Da FTP IP-Adressen und -Ports innerhalb solcher Nachrichten sendet (nicht nur in den Paketköpfen), handelt es sich nicht um ein NAT-freundliches Protokoll." - Das Problem liegt eigentlich bei den dynamischen Datenverbindungen. Das Senden von Adressen und Ports ist nur ein Ergebnis davon. Daniel B vor 6 Jahren 0
Vielen Dank @Spiff für die ausführliche Erklärung. Sowohl mein Client als auch mein Server waren hinter getrenntem NAT, also habe ich die Verbindung verschlüsselt und es funktioniert. lracicot vor 6 Jahren 0