FTP
FTP (File Transfer Protocol) ist eines der ältesten und bekanntesten Netzwerkprotokolle zur Übertragung von Dateien zwischen Computern über ein Client-Server-Modell. Das Protokoll wurde 1985 in RFC 959 standardisiert und bildet bis heute die Grundlage für 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 Empfängers an (dem Server) und FTP kümmert sich um die Zustellung. Der Server bestätigt 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 für die Kommunikation. Diese Trennung von Steuerung und Datenübertragung ist ein charakteristisches Merkmal des Protokolls.
Die zwei Verbindungskanäle
FTP nutzt zwei getrennte TCP-Verbindungen, die unterschiedliche Aufgaben erfüllen:
- Steuerverbindung (Control Connection): Läuft über Port 21 und bleibt während der gesamten Sitzung bestehen. Hierüber werden alle Befehle und Statusmeldungen ausgetauscht.
- Datenverbindung (Data Connection): Wird für jeden Dateitransfer neu aufgebaut und nach Abschluss wieder geschlossen. Im aktiven Modus nutzt der Server Port 20 für ausgehende Verbindungen.
Diese Zwei-Kanal-Architektur hat praktische Vorteile: Du kannst beispielsweise während einer laufenden Dateiübertragung weiterhin Befehle eingeben, etwa um den Transfer abzubrechen oder Statusinformationen abzufragen.
Aktiver und passiver Modus
FTP kennt zwei verschiedene Modi für 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: zufälliger Port | Problematisch (eingehende Verbindung zum Client) |
| Passiver Modus | Client verbindet sich zum Server | Server: zufälliger Port > 1023 | Besser geeignet (nur ausgehende Verbindungen vom Client) |
In der Praxis wird heute überwiegend 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 über die Steuerverbindung erfolgt durch textbasierte Befehle. Als angehender Fachinformatiker für 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 löschen |
QUIT |
Verbindung beenden |
Die Server-Antworten bestehen aus dreistelligen Statuscodes, ähnlich wie bei HTTP. Codes im Bereich 200-299 signalisieren Erfolg, 400er-Codes weisen auf Client-Fehler hin und 500er-Codes auf Server-Fehler.
Übertragungsmodi
RFC 959 definiert drei verschiedene Übertragungsmodi:
- Stream-Modus: Die Daten werden als kontinuierlicher Byte-Strom übertragen. Das Ende wird durch das Schließen der Verbindung signalisiert. Dies ist der Standardmodus.
- Block-Modus: Die Datei wird in Blöcke unterteilt, jeder mit einem Header, der Länge und Beschreibung enthält. Ermöglicht Fortsetzung abgebrochener Transfers.
- Compressed-Modus: Daten werden vor der Übertragung 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 unverschlüsselt übertragen - einschließlich Benutzername und Passwort. Ein Angreifer, der den Netzwerkverkehr mithören kann, sieht alle übertragenen Informationen im Klartext.
Aus diesem Grund sollte klassisches FTP heute nur noch in vertrauenswürdigen, isolierten Netzwerken eingesetzt werden. Für Übertragungen über das Internet sind sichere Alternativen zwingend erforderlich.
Sichere Alternativen
| Protokoll | Verschlüsselung | Ports | Beschreibung |
|---|---|---|---|
| FTPS | TLS/SSL | 990 (implizit) oder 21 (explizit) | FTP mit TLS-Verschlüsselung. Erweitert das bestehende FTP-Protokoll um eine Sicherheitsschicht. |
| SFTP | SSH | 22 | Komplett anderes Protokoll, das SSH für Verschlüsselung und Authentifizierung nutzt. Trotz des Namens kein erweitertes FTP. |
SFTP (SSH File Transfer Protocol) ist heute die bevorzugte Wahl für sichere Dateiübertragungen. Es nutzt nur eine einzige Verbindung über Port 22, was die Firewall-Konfiguration vereinfacht, und bietet neben der Verschlüsselung auch starke Authentifizierungsmethoden wie SSH-Keys.
FTP in der Praxis
Trotz seiner Sicherheitslücken wird FTP immer noch in vielen Szenarien eingesetzt. Das liegt an der weiten Verbreitung, der Einfachheit und der Kompatibilität mit älteren Systemen.
Typische Einsatzgebiete
- Webhosting: Viele Webhoster bieten FTP/SFTP-Zugang für das Hochladen von Website-Dateien an.
- Backup-Systeme: Automatisierte Backups werden häufig per SFTP auf entfernte Server übertragen.
- Software-Verteilung: Update-Server und Download-Portale nutzen FTP für die Bereitstellung von Dateien.
- Datenimport/-export: Unternehmen tauschen Daten mit Partnern oder Dienstleistern über SFTP aus.
- Embedded Systems: Viele Netzwerkgeräte und IoT-Devices bieten FTP für Firmware-Updates oder Log-Zugriff.
FTP-Clients und -Server
Clients:
- FileZilla: Kostenloser, plattformübergreifender Client mit grafischer Oberfläche
- WinSCP: Windows-Client mit Commander-Oberfläche, unterstützt auch SFTP und SCP
- Cyberduck: Mac und Windows, unterstützt zusätzlich Cloud-Speicher
- Kommandozeile: Alle gängigen Betriebssysteme haben einen integrierten
ftp-Befehl
Server:
- vsftpd: "Very Secure FTP Daemon", Standard unter Linux
- ProFTPD: Flexibler FTP-Server mit Apache-ähnlicher Konfiguration
- FileZilla Server: Einfach zu konfigurierender Server für 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 zuverlässige, verbindungsorientierte Übertragung der Daten sicherstellt.
Die Nutzung von TCP garantiert, dass alle Datenpakete in der richtigen Reihenfolge ankommen und keine Daten verloren gehen - eine wichtige Voraussetzung für die fehlerfreie Übertragung von Dateien.
Relevanz in der IT-Praxis
FTP gehört 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 Berührung kommen.
Besonders als Fachinformatiker für Systemintegration gehört 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.