Active FTP und Passive FTP

Aus ITwiki
Wechseln zu: Navigation, Suche

Klassischerweise benutzt der FTP-Dienst zwei statt einem Port:

  • 21 für die Steuerung (Control Port) und
  • 20 für die Daten (Data Port).


Active FTP[Bearbeiten]

Beim aktiven FTP verbindet sich der Client von einem zufälligen Port (N > 1024) mit dem Server Port 21. Dann hört/wartet der Client auf Port N+1 und sendet entsprechend auch an den Server das Kommando "PORT N+1". Der Server verbindet sich mit dem Client-Data-Port N+1 von seinem Dataport 20 aus.

Freigaben bei der Server-Firewall[Bearbeiten]

  • Server Port 21 - von überall
  • Server Port 21 - auf alle Ports > 1024
  • Server Port 20 - auf alle Ports > 1024
  • Server Port 20 - von allen Ports > 1024 (wg. ACKs)

Das Problem beim Client: Dieser macht nicht selbst die Verbindung zum Datenport des Servers. Aus Sicht seiner Firewall initiiert ein außen stehendes System die Verbindung zu einem internen Clientrechner (und das wird normalerweise blockiert).

Passive FTP[Bearbeiten]

Beim passiven FTP wird anders verfahren, damit der Server keine Verbindung zum Client aufbauen muss. Beide Verbindungen werden vom Client veranlasst.

Bei passiven FTP öffnet der der Client zwei Ports (N und N+1, beide > 1024) Auf dem ersten Port N kontaktiert der Client den Server, allerdings nicht mit dem "PORT N+1"-Kommando, sondern mit dem "PASV"-Kommando.

Daraufhin öffnet der Server einen Dataport (P > 1024) und sendet seinerseits "PORT P" zurück zum Client. Der Client initiiert dann die Verbindung von seinem Data-Port (N+1) zum Data-Port des Servers (P).

Freigaben bei der Server-Firewall[Bearbeiten]

  • Server Port 21 - von überall
  • Server Port 21 - auf alle Ports > 1024
  • alle Server Ports >1024 - auf alle Ports > 1024
  • alle Server Ports >1024 - von allen Ports > 1024 (wg. ACKs)

Das Problem beim Server, dass alle Ports > 1024 frei gegeben werden müssen, wird durch Konfigurationsmöglichkeiten verringert (es ist in der Regel möglich, ein Range von Ports für den Server zu definieren).

Der Client macht jetzt selbst die Verbindung zum Datenport des Servers auf. Aus Sicht seiner Firewall findet jetzt kein Verbindungsaufbau durch ein außen stehendes System mehr statt.