Was sind in FTP die Unterschiede zwischen passiven und erweiterten passiven Modi?

Kann jemand einfach die Unterschiede zwischen Passive Mode FTP (PASV) und Extended Passive Mode FTP (EPSV) erklären?

 17
ftp
Author: That Brazilian Guy, 2014-08-22

2 answers

Der einzige Unterschied ist, dass PORT/PASV sind auf IPv4 beschränkt, während EPRT/EPSV arbeiten Sie mit jedem Netzwerkprotokoll (obwohl in der Praxis nur IPv6 verwendet wird).

Der Standard PORT (aktiv) und PASV (passiv) Befehle im FTP Control Protocol tauschen Adress-und Portinformationen als sechs 1-Byte-Dezimalstellen aus, von denen das andere Ende eine Vier-Byte-IP-Adresse und eine Zwei-Byte-TCP-Portnummer rekonstruieren muss.

PORT <address[4]>,<port[2]>

PORT 132,235,1,2,24,131

Aber dann andere protokolle erschienen. IPv4 sollte durch "IPng" ersetzt werden, das einige konkurrierende Ersatzvorschläge hatte (OSI CLNP, TUBA, SIP, SIPP, CATNIP – zu verschiedenen Zeiten in der Geschichte), einige mit kürzeren, längeren, sogar variablen Hostadressgrößen, bis IPv6 mit 16-Byte-Adressen schließlich definiert wurde.

Nur das Senden weiterer Bytes hätte nicht funktioniert – von Servern und Clients konnte nicht erwartet werden, dass sie das richtige Protokoll basierend auf der Adresslänge kennen. (Für beispiel: Was ist, wenn Sie ein Protokoll mit 16-Byte-Adresse + 4-Byte-Port und ein anderes mit 12-Byte-Adresse + 12-Byte-Port haben?)

Außerdem gibt es – obwohl dies vor 20 Jahren weniger wichtig war-heutzutage Millionen von NAT-Geräten im Internet, die FTP-Steuerverbindungen überprüfen und manipulieren, so dass der "externe" Host nur globale IPv4-Adressen sehen würde, selbst wenn der "innere" Host einen lokalen RFC1918 gesendet hätte. Auch ohne NAT beobachten Stateful Firewalls häufig die Steuerung befehle zum automatischen Zulassen einer Datenverbindung ohne manuelle Regeln.

Dies bedeutet im Grunde, dass das einfache Senden von mehr Zahlen mit PORT oder PASV für viele Menschen garantiert ist. Vielleicht würden einige Firewalls einige Adressbytes leise als Port falsch interpretieren und den Rest leise verwerfen; andere könnten die Verbindung abbrechen oder einfach abstürzen.

Um verschiedene Probleme wie die oben genannten zu vermeiden, mussten neue Befehle für die Unterstützung mehrerer Protokolle in eingeführt werden FTP.

In 1993, RFC 1639 (ursprünglich RFC 1545 ) führte die "long address" LPRT ein und LPSV befehle, die wie PORT & PASV aber mit einer variablen Adresslänge; Sie enthielten auch die Protokolltypkennung. (Die Syntax wurde jedoch nicht geändert-IPv6-Adresse: Port würde einfach als 21-Nummern anstelle von sechs gesendet.)

LPRT <protocol>,<addr-length>,<address...>,<port-length>,<port...>

LPRT 4,4,132,235,1,2,2,24,131

LPRT 6,16,16,128,0,0,0,0,0,0,0,8,8,0,32,12,65,122,2,20,162

Das hat jedoch einige der Probleme nicht behoben, wie zum Beispiel ein server, um ein anderes Protokoll als für die Steuerverbindung zu verwenden. Der RFC wurde auch schnell veraltet; Als IPv6 nur ein Jahr später herauskam, konnte er nicht mit LPRT verwendet werden, da ihm keine LPRT-Protokollkennung zugewiesen wurde (nur für die verschiedenen frühen Vorschläge).

Um dies zu beheben, RFC 2428 1998 hinzugefügt EPRT und EPSV, auch bekannt als "extended Port" und "extended passive" , die auch eine Methode zum Aushandeln eines Protokolls hatten dass beide Enden unterstützen. Die "erweiterten" Befehle senden auch Adressen in menschenlesbarer Form – für IPv6, das heißt mit hex & colon Notation, anstatt eine Reihe von separaten Dezimalzahlen.

EPRT x<protocol>x<address>x<port>x

EPRT |1|132.235.1.2|6275|

EPRT |2|1080::8:800:200C:417A|5282|

Zusammenfassend ist die IPv6-Unterstützung der einzige Unterschied.

 20
Author: user1686,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-08-22 21:06:33

Der Unterschied zwischen aktiv und passiv ist bereits beantwortet. Erweiterter passiv (EPSV) ist nur passiv mit IPv4 und IPv6, da die syntax der Antwort auf PASV wurde spezifisch für IPv4 und und damit einen neuen Befehl wurde der Bedarf für IPv6. Gleiches gilt für EPTR vs. PORT im aktiven Modus. Es gibt ein etwas anderes Verhalten bei EPRT und EPSV,da sie nur den Port enthalten können, nicht IP und Port wie PORT und PASV. Somit kann die Datenübertragung nur zwischen den Systemen erfolgen, die die Kontrolle haben Verbindung. Mit PORT und PASV ist es möglich, eine Datenverbindung zwischen anderen Systemen herzustellen (obwohl dies heute als schlechtes Design und Sicherheitsrisiko angesehen wird).

 1
Author: Steffen Ullrich,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-08-22 19:01:55