FTP
FTP (File Transfer Protocol) ist eines der aeltesten und bekanntesten Netzwerkprotokolle zur Uebertragung von Dateien zwischen Computern ueber ein Client-Server-Modell. Das Protokoll wurde 1985 in RFC 959 standardisiert und bildet bis heute die Grundlage fuer viele Dateitransfer-Szenarien in Unternehmen und im Internet.
Stell dir FTP wie einen digitalen Paketdienst vor: Du packst eine Datei auf deinem Computer ein (dem Client), gibst die Adresse des Empfaengers an (dem Server) und FTP kuemmert sich um die Zustellung. Der Server bestaetigt den Empfang und du kannst bei Bedarf auch Dateien vom Server abholen.
Funktionsweise von FTP
FTP arbeitet nach dem Client-Server-Prinzip und verwendet zwei separate Verbindungen fuer die Kommunikation. Diese Trennung von Steuerung und Datenuebertragung ist ein charakteristisches Merkmal des Protokolls.
Die zwei Verbindungskanaele
FTP nutzt zwei getrennte TCP-Verbindungen, die unterschiedliche Aufgaben erfuellen:
- Steuerverbindung (Control Connection): Laeuft ueber Port 21 und bleibt waehrend der gesamten Sitzung bestehen. Hierueber werden alle Befehle und Statusmeldungen ausgetauscht.
- Datenverbindung (Data Connection): Wird fuer jeden Dateitransfer neu aufgebaut und nach Abschluss wieder geschlossen. Im aktiven Modus nutzt der Server Port 20 fuer ausgehende Verbindungen.
Diese Zwei-Kanal-Architektur hat praktische Vorteile: Du kannst beispielsweise waehrend einer laufenden Dateiuebertragung weiterhin Befehle eingeben, etwa um den Transfer abzubrechen oder Statusinformationen abzufragen.
Aktiver und passiver Modus
FTP kennt zwei verschiedene Modi fuer den Aufbau der Datenverbindung. Der Unterschied liegt darin, wer die Verbindung initiiert - ein wichtiger Aspekt besonders im Zusammenspiel mit Firewalls.
| Modus | Verbindungsaufbau | Port-Nutzung | Firewall-Freundlichkeit |
|---|---|---|---|
| Aktiver Modus | Server verbindet sich zum Client | Server: Port 20, Client: zufaelliger Port | Problematisch (eingehende Verbindung zum Client) |
| Passiver Modus | Client verbindet sich zum Server | Server: zufaelliger Port > 1023 | Besser geeignet (nur ausgehende Verbindungen vom Client) |
In der Praxis wird heute ueberwiegend der passive Modus verwendet, da die meisten Clients hinter NAT-Routern oder Firewalls sitzen. Im passiven Modus baut immer der Client beide Verbindungen auf, was NAT-Traversal deutlich vereinfacht.
Wichtige FTP-Befehle
Die Kommunikation ueber die Steuerverbindung erfolgt durch textbasierte Befehle. Als angehender Fachinformatiker fuer Systemintegration solltest du die wichtigsten Kommandos kennen:
| Befehl | Funktion |
|---|---|
USER |
Benutzername zur Authentifizierung senden |
PASS |
Passwort zur Authentifizierung senden |
LIST |
Verzeichnisinhalt auflisten |
RETR |
Datei vom Server herunterladen (retrieve) |
STOR |
Datei auf den Server hochladen (store) |
PWD |
Aktuelles Verzeichnis anzeigen (print working directory) |
CWD |
Verzeichnis wechseln (change working directory) |
MKD |
Verzeichnis erstellen (make directory) |
DELE |
Datei loeschen |
QUIT |
Verbindung beenden |
Die Server-Antworten bestehen aus dreistelligen Statuscodes, aehnlich wie bei HTTP. Codes im Bereich 200-299 signalisieren Erfolg, 400er-Codes weisen auf Client-Fehler hin und 500er-Codes auf Server-Fehler.
Uebertragungsmodi
RFC 959 definiert drei verschiedene Uebertragungsmodi:
- Stream-Modus: Die Daten werden als kontinuierlicher Byte-Strom uebertragen. Das Ende wird durch das Schliessen der Verbindung signalisiert. Dies ist der Standardmodus.
- Block-Modus: Die Datei wird in Bloecke unterteilt, jeder mit einem Header, der Laenge und Beschreibung enthaelt. Ermoeglicht Fortsetzung abgebrochener Transfers.
- Compressed-Modus: Daten werden vor der Uebertragung komprimiert. In der Praxis kaum noch verwendet, da moderne Kompressionsverfahren effizienter sind.
Sicherheitsaspekte von FTP
Das klassische FTP-Protokoll hat ein gravierendes Sicherheitsproblem: Alle Daten werden unverschluesselt uebertragen - einschliesslich Benutzername und Passwort. Ein Angreifer, der den Netzwerkverkehr mithoeren kann, sieht alle uebertragenen Informationen im Klartext.
Aus diesem Grund sollte klassisches FTP heute nur noch in vertrauenswuerdigen, isolierten Netzwerken eingesetzt werden. Fuer Uebertragungen ueber das Internet sind sichere Alternativen zwingend erforderlich.
Sichere Alternativen
| Protokoll | Verschluesselung | Ports | Beschreibung |
|---|---|---|---|
| FTPS | TLS/SSL | 990 (implizit) oder 21 (explizit) | FTP mit TLS-Verschluesselung. Erweitert das bestehende FTP-Protokoll um eine Sicherheitsschicht. |
| SFTP | SSH | 22 | Komplett anderes Protokoll, das SSH fuer Verschluesselung und Authentifizierung nutzt. Trotz des Namens kein erweitertes FTP. |
SFTP (SSH File Transfer Protocol) ist heute die bevorzugte Wahl fuer sichere Dateiuebertragungen. Es nutzt nur eine einzige Verbindung ueber Port 22, was die Firewall-Konfiguration vereinfacht, und bietet neben der Verschluesselung auch starke Authentifizierungsmethoden wie SSH-Keys.
FTP in der Praxis
Trotz seiner Sicherheitsluecken wird FTP immer noch in vielen Szenarien eingesetzt. Das liegt an der weiten Verbreitung, der Einfachheit und der Kompatibilitaet mit aelteren Systemen.
Typische Einsatzgebiete
- Webhosting: Viele Webhoster bieten FTP/SFTP-Zugang fuer das Hochladen von Website-Dateien an.
- Backup-Systeme: Automatisierte Backups werden haeufig per SFTP auf entfernte Server uebertragen.
- Software-Verteilung: Update-Server und Download-Portale nutzen FTP fuer die Bereitstellung von Dateien.
- Datenimport/-export: Unternehmen tauschen Daten mit Partnern oder Dienstleistern ueber SFTP aus.
- Embedded Systems: Viele Netzwerkgeraete und IoT-Devices bieten FTP fuer Firmware-Updates oder Log-Zugriff.
FTP-Clients und -Server
Clients:
- FileZilla: Kostenloser, plattformuebergreifender Client mit grafischer Oberflaeche
- WinSCP: Windows-Client mit Commander-Oberflaeche, unterstuetzt auch SFTP und SCP
- Cyberduck: Mac und Windows, unterstuetzt zusaetzlich Cloud-Speicher
- Kommandozeile: Alle gaengigen Betriebssysteme haben einen integrierten
ftp-Befehl
Server:
- vsftpd: "Very Secure FTP Daemon", Standard unter Linux
- ProFTPD: Flexibler FTP-Server mit Apache-aehnlicher Konfiguration
- FileZilla Server: Einfach zu konfigurierender Server fuer Windows
- IIS FTP: Integriert in Windows Server
FTP und das OSI-Modell
FTP arbeitet auf der Anwendungsschicht (Layer 7) des OSI-Modells. Es setzt auf TCP als Transportprotokoll (Layer 4) auf, das die zuverlaessige, verbindungsorientierte Uebertragung der Daten sicherstellt.
Die Nutzung von TCP garantiert, dass alle Datenpakete in der richtigen Reihenfolge ankommen und keine Daten verloren gehen - eine wichtige Voraussetzung fuer die fehlerfreie Uebertragung von Dateien.
Relevanz in der IT-Praxis
FTP gehoert zu den grundlegenden Netzwerkprotokollen, die du als IT-Fachkraft kennen solltest. In der Praxis wirst du sowohl bei der Administration von Servern als auch beim Deployment von Anwendungen mit FTP oder seinen sicheren Varianten in Beruehrung kommen.
Besonders als Fachinformatiker fuer Systemintegration gehoert die Einrichtung und Absicherung von FTP-Diensten zu den typischen Aufgaben. Dabei ist es wichtig, die Sicherheitsrisiken des klassischen FTP zu verstehen und in sensiblen Umgebungen auf SFTP oder FTPS zu setzen.