PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Unterschied aktives / passives FTP



andrehamburg
19.07.04, 21:37
Hi all,

ich habe mir die Infos aus dem Netz geholt und wollte mal sehen ob ich das richtig verstanden habe. Also....

Aktives FTP:
Der Client sendet von seinem Port 21 zum Port 21 des Servers eine Anfrage zum Aufbau einer Verbindung. In dieser Anfrage teilt er dem Server einen Port mit. Der Server verbindet sich dann von seinem Port 20 zu diesem Port. Das heißt die beiden Ports 21 dienen nur zum Verbindungsuafbau? Der eigentliche Datenverkehr geschieht zwischen Port 20 vom Server und dem vom Cliient vorgeschlagenem Port?

Passives FTP:
Der Client sendet von seinem Port 21 zum Port 21 des Servers eine Anfrage zum Aufbau einer Verbindung. Der Server schickt in seiner Antwort dann eine Portnr. mit. Der Client verbindet sich dann zu diesem Port. Was mir nicht klar ist bzw. worauf ich keine Antwort gefunden habe ist, welchen Sende-Port nimmt der Client, um sich zu diesem Port zu verbinden? Den Port 21? Oder welchen?

Bin gespannt auf Eure Antworten ,-)

bla!zilla
19.07.04, 21:58
Das ist so nicht korrekt. Ein Client schickt nie von einem Port unter (!) 1024 eine Anfrage. Die Anfrage des Clients geht beim aktives FTP von einem Clientport zwischen 1024 und 65535 an den Serverport auf Port 21. Der Server öffnet danach eine Verbindung von Port 20 auf einen Port zwischen 1024 und 65535 am Client. Der Server baut also aktiv eine Verbindung zum Client auf. Daher funktioniert aktives FTP oft nicht, wenn sich der Client hinter einer Firewall zum Server verbindet. Der Server kommt ja mit seinem Verbindungsaufbau nicht zum Client.
Beim passiven FTP baut der Client eine Verbindung von einem Port zwischen 1024 und 65535 zum Server auf Port 21 auf. Danach teilt der Server dem Client ein Port zwischen 1024 und 65535 mit, auf dem der Client den Datenübertragungskanal zum Server aufbauen soll. In dem Fall baut der Server keine aktive Verbindung von sich aus zum Client auf. Daher klappt passives FTP hinter einer Firewall.

Pingu
19.07.04, 21:59
Hi,

siehe: http://de.wikipedia.org/wiki/FTP
siehe: http://www.rhyshaden.com/ftp.htm


Was mir nicht klar ist bzw. worauf ich keine Antwort gefunden habe ist, welchen Sende-Port nimmt der Client, um sich zu diesem Port zu verbinden? Den Port 21? Oder welchen?
Den den er möchte. Er muß nur größer als 1023 sein.

Pingu

bla!zilla
19.07.04, 22:05
Also ab 1024 bis 65535. Merke: Die Sourceports, also die Ports von denen ein Client eine Verbindung zum Server aufbaut, liegen immer über 1023, also über den well-known Ports. Um eine Verbindung von einem Port < 1024 aufzubauen, sind Systemverwalter-Rechte nötig. (root, Administrator, Admin)

andrehamburg
19.07.04, 22:22
Ok, ich passe meinen Text mal an. Mal sehen ob er dann stimmt ;-)

Aktives FTP:
Der Client sendet von einem Port >1024 zum Port 21 des Servers eine Anfrage zum Aufbau einer Verbindung. In dieser Anfrage teilt er dem Server einen Port mit. Der Server verbindet sich dann von seinem Port 20 zu diesem Port. Auf dieser Verbinung wird der reine Datenverkeher abgewickelt. Erstere Verbindung dient nur dazu die Datenverbindung herzustellen.

Passives FTP:
Der Client sendet von einem Port >1024 zum Port 21 des Servers eine Anfrage zum Aufbau einer Verbindung. Der Server schickt in seiner Antwort dann eine Portnr. mit. Der Client verbindet sich dann zu diesem Port von einem Port >1024.

Soweit alles richtig? Dann hätte ich noch eine Frage zum passiven FTP.
Der Sendeport des Clients für den Datenkanal, ist ein anderer als als der, den er zur Anfrage genutzt hat, oder ? Es werden doch bei FTP immer 2 Verbindungen aufgebaut? Und beide bestehen die ganze Zeit?

Danke übrigens für eure Hilfe ;)

bla!zilla
19.07.04, 22:39
So ist es korrekt. Wenn ich mich richtig erinnere ist eine Verbindung auf Port 21 immer geöffnet, und 20 nur wenn tatsächlich Daten übertragen werden.

andrehamburg
21.07.04, 13:49
Ok, Glasklar wie unsichtbar. Danke an alle, die fleissig geantwortet haben ;-)