Artikel Datenbank Foren-Übersicht Artikel Datenbank
Computer - Internet - Multimedia
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Aktives und passives FTP

 
Neues Thema eröffnen   Neue Antwort erstellen    Artikel Datenbank Foren-Übersicht -> Netzwerke
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
GrayGhost
Site Admin


Anmeldedatum: 06.06.2007
Beiträge: 148
Wohnort: Achim (bei Bremen)

BeitragVerfasst am: 13.06.2007, 21:38    Titel: Aktives und passives FTP Antworten mit Zitat

Aktives und passives FTP

Das FTP Protokoll stammt noch aus der Zeit, als es das Internet in der heutigen Form noch nicht gab. Zu dieser Zeit ging es um das Übertragen von Daten von einem Computer auf einen anderen. Dabei kam man noch ohne Virenscanner und Firewall aus. Daher mag es auch kommen, dass das ursprüngliche FTP Protokoll eine Besonderheit aufweist, mit der einige Firewalls nicht klarkommen.

Ich werde in diesem Artikel beschreiben wie das FTP Protokoll arbeitet und was dazu führt, das manchmal ein FTP Betrieb durch Firewalls unterbunden wird. Um die typischen FTP Probleme zu beseitigen, wurde ein modifiziertes FTP Protokoll entwickelt, was ich dann im Abschnitt "Passive FTP" beschreiben werde.

"Active FTP"

Active FTP ist das originäre FTP Protokoll und bekam den Namen "Active" erst, nach dem das "Passive FTP" entwickelt wurde. FTP ist ein auf TCP basierender Service und zeichnet sich durch eine Besonderheit aus: FTP verwendet zwei Ports! Der eine Port ist der "command" Port und der andere der "data" Port. Dabei wird Port 21 für die Steuerung (command) und der Port 20 für die Daten (data) verwendet.

Möchte sich ein Client mit einem FTP Server verbinden, so öffnet der Client einen beliebigen unpriviligierten Port (alle Ports > 1024) zum "command" Port 21 des Servers und sendet diesem die Portnummer auf dem er die Daten empfangen will. Dies ist in der Regel die Portnummer N+1.

Beispiel: Client öffnet Port 1230 und sendet dem Server auf dessen Port 21 die Information "Ich erwarte Daten auf Port 1231". Der Server bestätigt den Emfang (acknowledge) und der Client öffnet den Port 1231 und lauscht (listening).

Nun öffnet der Server seinen Daten Port 20 und sendet Daten zum Port 1231 des Clients. Der Client bestätigt den Empfang jedes TCP Packetes, ganz so, wie es sich gehört.

Für eine Firewall sieht die Sache aber sehr suspekt aus. Firewalls blockieren jede Anfrage von außen. Firewalls akzeptieren nur TCP Pakete von außen, wenn diese vom empfangenden Port angefordert wurden. Aber bei FTP sieht das anders aus. Erstens hat sich plötzlich ein Port geöffnet (1231) der keine Anfrage gestellt hat und auch noch im "listening mode" ist, und dann sendet ein Port 20 Daten, die von diesem Port nicht angefordert wurden (die Anforderung stammte ja von Port 1230). In diesem Moment macht die Firewall die Klappe zu.

Das ist das Problem, wenn ihr hinter einem Proxy oder einer Firewall sitzt. Gute Firewalls erkennen einen FTP Transfer und behindern diesen nicht. Bei Proxys treten da schon häufiger Probleme auf. Um diese Probleme zu umgehen wurde eine alternative Form des FTP Transfers entwickelt, das "Passive FTP".

"Passive FTP"

Dieser Mode wird auch PASV Mode genannt, weil der FTP Befehl PASV dem Server mitteilt, das der passive Mode gewünscht ist. Im Gegensatz zum aktiven Mode leitet der Client beide Verbindungen zum Server ein. Damit wird das Firewall Problem gelöst, da damit die Firewall über beide clientseitige Verbindungen Kenntnis erhält. Der Ablauf einer solchen, passiven Verbindung, wird im Folgenden beschrieben.

Wenn der Client eine Verbindung zu einem FTP Server wünscht, so öffnet er zwei unpriviligierte Ports > 1024, z.B. Port 1030 und 1031. Nun kontaktiert der erste Port den Server auf dessen "command" Port 21. Aber anstelle dem Server mit dem "Port" Kommando mitzuteilen auf welchem Port die Daten vom Daten Port 20 erwartet werden, sendet der Client den Befehl PASV. Der Server weiß nun nicht auf welchem Port der Client die Daten empfangen will, hat aber die Information, dass der Client eine passive Verbindung wünscht.

Hier erklärt sich nun auch der Begriff "passive". Passive bedeutet aus der Sicht des Servers, dass er nicht aktiv anfangen kann auf den, vom Client geöffneten Port die Daten zu senden.

Der Server sendet nun keine Daten über seinen Port 20, sondern öffnet seinerseits einen Port > 1024 und sendet die Portnummer mittels des FTP Befehls PORT an den Client. Nun kann der Client aktiv das Geschehen lenken. Er kennt den unpriviligierten Port, den der Server anstelle des Ports 20 für den Datenverkehr geöffnet hat und fordert nun von seinem Port 1031 (in unserm Beispiel) die Daten an. Die Firewall kann dies nicht in Verlegenheit bringen, da ein Datenverkehr erfolgt, der vom Client selbst über den Port 1031 gesteuert wird.

MfG
Erhard Olszok aka GrayGhost
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen Yahoo Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Artikel Datenbank Foren-Übersicht -> Netzwerke Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de