Das File Transfer Protocol (FTP) ist eines der ältesten Netzwerkprotokolle – entwickelt 1971, standardisiert in RFC 959. Es dient ausschließlich der Übertragung von Dateien zwischen einem FTP-Client und einem FTP-Server.
FTP war jahrzehntelang der Standard für Dateiübertragungen – heute wird es wegen fehlender Verschlüsselung zunehmend durch sicherere Alternativen wie SFTP oder FTPS ersetzt.
FTP verwendet als einziges verbreitetes Protokoll zwei separate TCP-Verbindungen:
Verbindung | Zweck | |
|---|---|---|
Steuerverbindung | TCP 21 | Befehle und Antworten (bleibt während der ganzen Sitzung offen) |
Datenverbindung | TCP 20 (aktiv) oder dynamisch (passiv) | Eigentliche Dateiübertragung (wird für jede Übertragung neu aufgebaut) |
Client Server
│──── Steuerverbindung ───────▶Port 21
│──── PORT-Befehl ────────────▶│ "Verbinde dich mit mir auf Port X"
│◀─── Datenverbindung ─────────Port 20 → Client Port XProblem: Der Server baut die Datenverbindung zum Client auf. Firewalls blockieren eingehende Verbindungen oft – aktiver Modus funktioniert hinter NAT/Firewall häufig nicht.
Client Server
│──── Steuerverbindung ───────▶Port 21
│──── PASV-Befehl ────────────▶│ "Auf welchem Port wartest du?"
│◀─── Port-Antwort ────────────│ "Verbinde dich mit mir auf Port Y"
│──── Datenverbindung ─────────▶Port YLösung: Der Client baut beide Verbindungen auf. Funktioniert problemlos hinter NAT und Firewalls. Passiver Modus ist heute Standard.
Befehl | Bedeutung |
|---|---|
Benutzername senden | |
| Passwort senden |
| Verzeichnisinhalt anzeigen |
| Datei vom Server herunterladen |
| Datei auf Server hochladen |
| Datei auf Server löschen |
| Verzeichnis erstellen |
| Verzeichnis wechseln |
| Verbindung beenden |
| Passiven Modus aktivieren |
Code | Bedeutung |
|---|---|
220 | Server bereit |
230 | Login erfolgreich |
331 | Passwort erforderlich |
425 | Datenverbindung konnte nicht geöffnet werden |
530 | Login fehlgeschlagen |
550 | Datei nicht gefunden oder kein Zugriff |
FTP überträgt alles im Klartext – Benutzername, Passwort und Dateiinhalte. Ein Angreifer im gleichen Netzwerk kann alles mitlesen:
Wireshark-Mitschnitt eines FTP-Logins:
220 FTP Server ready
USER admin
331 Password required
PASS geheimesPasswort123 ← Im Klartext sichtbar!
230 Login successfulProtokoll | Port | Basis | Verschlüsselung |
|---|---|---|---|
FTP | 21/20 | Eigenständig | Keine |
FTPS | 990 (implizit) / 21 (explizit) | FTP + TLS | TLS/SSL |
SFTP | 22 | SSH-Subsystem | SSH (vollständig) |
22 | SSH | SSH (vollständig) |
SFTP ist kein FTP mit SSH – es ist ein völlig eigenständiges Protokoll das als Subsystem von SSH läuft. Es verwendet nur eine einzige verschlüsselte Verbindung auf Port 22 und ist heute die empfohlene Alternative zu FTP.
Vorteile von SFTP gegenüber FTP:
✓ Vollständige Verschlüsselung (Befehle + Daten)
✓ Nur ein Port (22) – firewall-freundlich
✓ Authentifizierung per SSH-Key möglich
✓ Kein aktiv/passiv Problem
✓ Auf praktisch jedem Linux-Server verfügbarVerbindung per Kommandozeile:
sftp benutzer@server.example.com
Wichtige SFTP-Befehle:
ls → Verzeichnis auflisten
cd ordner → Verzeichnis wechseln
get datei → Datei herunterladen
put datei → Datei hochladen
rm datei → Datei löschen
mkdir name → Verzeichnis erstellen
exit → Verbindung beenden
Mit SSH-Key (ohne Passwort):
sftp -i ~/.ssh/id_rsa benutzer@server.example.comFTP ist das File Transfer Protocol – entwickelt 1971, Port 21 (Steuerung) und 20 (Daten)
FTP verwendet zwei Verbindungen – Steuerverbindung und Datenverbindung
Aktiver Modus: Server baut Datenverbindung auf – problematisch hinter NAT/Firewall
Passiver Modus: Client baut beide Verbindungen auf – heute Standard
FTP überträgt alles im Klartext – Passwörter sind abfangbar
SFTP läuft als SSH-Subsystem auf Port 22 und verschlüsselt alles
FTPS ist FTP mit TLS-Verschlüsselung
In modernen Umgebungen sollte FTP nicht mehr eingesetzt werden