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

  1. Verbindungsaufbau (Steuerkanal): Der Client initiiert über Port 21 eine TCP‑Verbindung zum Server und authentifiziert sich mit Benutzername / Passwort (oder anonym – „anonymous“).
  2. Befehlsphase: Der Client sendet textbasierte Befehle (z. B. LIST, RETR, STOR, DELE, MKD) und erhält statusbezogene Antworten (Code 200‑500).
  3. 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.
     
  4. 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).