20. April 2024
Das FTP-Protokoll, aktiv/passiv

Das FTP-Protokoll scheint immer wieder Probleme zu bereiten. Meist wird nicht berücksichtigt, daß Port 21 eben nicht ausreicht.
Bei FTP-Verbindungen werden immer zwei Kanäle geöfnet. Der eine Dient als Kanal für Kommando-/Kontrolldaten, der zweite für die Übertragung der tatsächlichen Daten.
Zudem muss man unterscheiden, ob die gewünschte Verbindung dem aktiven oder passiven FTP-Verbindungsaufbau entspricht.

Aktives FTP
Der Client startet eine Verbindungsanfrage, ausgehend von einem der loaklen Ports zwischen 1024-65535 zu dem Server-Port 21.
Für die Datenübertragung erfolgt nun eine Anfrage des Servers. er verwendet dazu den Port 20 und richtewt sie an einen der Client-Ports im Bereich 1024-65535.

Passives FTP
Der Client startet eine Verbindungsanfrage, ausgehend von einem der loaklen Ports zwischen 1024-65535 zu dem Server-Port 21.
Der Aufbau des Datenkanals erfolgt von einem der loaklen Ports zwischen 1024-65535 zu einem der Serverports zwischen 1024-65535.
Der Server baut keine (aktive) Verbindung zum Client auf.

Nochmal in Kurzform:
aktives FTP:
1.)Client-Ports 1024 – 65535 (TCP) intern – > Server-Port 21 (TCP)
Nach erfolgreichem Verbindungsaufbau teilt der Client dem Server mit auf welchem (unpriviligiertem) Port x er einen Verbindungsaufbau für die Datenübertragung erwartet. Daraufhin initiiert der Server, ausgehend von Port 20 eine Verbindung zu Port x
2.)Client-Ports 1024 – 65535 (TCP) intern < = Server-Port 20 (TCP)

passives FTP:
Client-Ports 1024 – 65535 (TCP) intern – > Server-Port 21 (TCP)
Nach erfolgreichem Verbindungsaufbau teilt der Server dem Client mit, welcher (unpriviligierte) Port x für die Datenübertragung bereitsteht.
Client-Ports 1024 – 65535 (TCP) intern – > Server-Ports 1024 – 65535 (TCP)