FTP (File Transfer Protocol)
FTP ist ein standardisiertes Netzwerkprotokoll (RFC 959), das den Austausch von Dateien zwischen einem Client und einem Server über ein TCP/IP‑Netzwerk (häufig das Internet) ermöglicht. Es arbeitet im Client‑Server‑Modell und verwendet dafür typischerweise die TCP‑Ports 21 (Steuerverbindung) und 20 (Datenverbindung im aktiven Modus).
Arbeitsweise
- Verbindungsaufbau (Steuerkanal): Der Client initiiert über Port 21 eine TCP‑Verbindung zum Server und authentifiziert sich mit Benutzername / Passwort (oder anonym – „anonymous“).
- Befehlsphase: Der Client sendet textbasierte Befehle (z. B.
LIST,RETR,STOR,DELE,MKD) und erhält statusbezogene Antworten (Code 200‑500). - Datenkanal: Für jede Datei‑ oder Verzeichnis‑Operation wird ein separater Datenkanal eröffnet:
- Aktiver Modus (PORT): Der Server stellt die Datenverbindung zum vom Client angegebenen Port her.
- Passiver Modus (PASV): Der Server öffnet einen zufälligen Port und teilt dem Client mit, wohin er sich verbinden soll – üblich, wenn Firewalls den eingehenden Verkehr blockieren.
- Datei‑Transfer: Daten werden in Binär‑ (
TYPE I) oder ASCII‑Modus (TYPE A) übertragen.
Erweiterungen
- FTPS (FTP over TLS/SSL): TLS/SSL‑Verschlüsselung für Steuer‑ und/oder Datenkanal (explizit –
AUTH TLS, implizit – Port 990). - SFTP (SSH‑File‑Transfer‑Protocol): Nicht‑kompatibel zu FTP, aber häufig als sicherer Ersatz verwendet (läuft über SSH, Port 22).
- FTP‑Extensions (RFC 3659): Unterstützen Funktionen wie
MLST/MLSD(Maschinelles Listing),SIZE,MDTM(Modifikationszeit),REST(Fortsetzen unterbrochener Übertragungen).
Sicherheitsaspekte
- Klartext‑Authentifizierung: Standard‑FTP sendet Benutzername und Passwort unverschlüsselt – anfällig für Sniffing.
- Firewall‑Problematik: Aktiver Modus erfordert eingehende Verbindungen zum Client, was bei NAT/Firewalls problematisch sein kann.
- Passiver Modus: Wird bevorzugt, da der Client die Verbindung initiiert.
Typische Anwendungsfälle
- Web‑Hosting‑Upload: Hochladen von Webseiten, Bildern, Datenbanken.
- Backup‑Lösungen: Automatisierte Skripte, die regelmäßig Dateien auf einen FTP‑Server übertragen.
- Verteilte Software‑Distribution: Bereitstellung von Installations‑ oder Update‑Paketen.
Client‑Tools
Grafische Programme (FileZilla, WinSCP, Cyberduck), Kommandozeilen‑Clients (ftp, lftp, ncftp), integrierte IDE‑Plugins und Skript‑Bibliotheken (Python ftplib, PowerShell‑Cmdlet Invoke-WebRequest mit FTP‑URI).
