File Transfer Protocol (FTP)

File Transfer Protocol (FTP)

Inhaltsverzeichnis

Was ist FTP?

Das File Transfer Protocol (FTP) ist ein standardisiertes Netzwerkprotokoll der Anwendungsschicht zur Übertragung und Verwaltung von Dateien zwischen Client und Server über separate Steuer- und Datenverbindungen.

 

FTP-Diagramm mit Server und Client; getrennte Verbindungen für Steuerkanal (Control Connection) und Datenkanal (Data Connection).

FTP ist ein standardisiertes Protokoll der Anwendungsschicht, das Dateiübertragung, Verzeichnislisten und Dateiverwaltung über aktive oder passive Verbindungsmodi ermöglicht.

 

Einordnung und Zweck

FTP wurde bereits in den frühen ARPANET-Tagen spezifiziert, um Dateien zuverlässig und effizient zwischen Hosts zu übertragen und die bequeme Nutzung externer Dateispeicher zu ermöglichen. In seiner heute maßgeblichen Form ist FTP in RFC 959 beschrieben; es gehört zur Anwendungsschicht und nutzt darunter TCP als Transportprotokoll.

Auch wenn FTP historisch verbreitet ist, gilt es ohne zusätzliche Sicherungen als inhärent unsicher. Moderne Anwendungsfälle setzen daher häufig auf abgesicherte Varianten (FTPS) oder Alternativen wie SFTP oder HTTPS/WebDAV.

 

Architektur und Funktionsprinzip

Steuer- und Datenkanal

FTP verwendet zwei TCP-Verbindungen pro Sitzung:

  • Steuerverbindung (Control Channel) vom Client zum Server, standardmäßig TCP-Port 21. Darüber werden Befehle und Statuscodes ausgetauscht.
  • Datenverbindung (Data Channel) für Dateitransfers und Verzeichnislisten. In der ursprünglichen Spezifikation nutzt der Server hierfür TCP-Port 20 oder einen ausgehandelten Nicht-Standard-Port.

Diese Trennung von Steuer- und Datenkanal erlaubt es, während laufender Übertragungen weitere Befehle zu verarbeiten.

Befehle und Antwortcodes

FTP definiert ein Set von Textbefehlen (z. B. USER, PASS, PWD, CWD, LIST, RETR, STOR) und dreistellige Antwortcodes (1xx–5xx) zur Synchronisation von Aktionen. Die Spezifikation beschreibt Syntax, Sequenzen und Statuslogik ausführlich.

 

Verbindungsmodi: Aktiv vs. Passiv

FTP kennt zwei grundlegende Modi für den Aufbau der Datenverbindung:

  • Aktiver Modus (Active Mode): Der Client übermittelt dem Server mittels PORT die eigene IP-Adresse und einen Port. Der Server initiiert daraufhin die Verbindung zurück zum Client. Das kann an Firewalls und NATs scheitern, die eingehende Verbindungen blockieren.
  • Passiver Modus (Passive Mode): Der Client sendet PASV; der Server öffnet einen Port und teilt Adresse und Port im PASV-Antworttext mit, worauf der Client aktiv dorthin verbindet. Der Passive Mode ist NAT- und Firewall-freundlicher.

Für IPv6 und bessere NAT-Kompatibilität wurden die erweiterten Kommandos EPRT und EPSV eingeführt, welche die IPv4-gebundenen PORT/PASV ablösen.

In Unternehmensumgebungen ist Passive FTP oft die Voreinstellung, auch um Missbrauchsformen wie Bounce-Angriffe über das PORT-Kommando zu vermindern. Azure Firewall etwa aktiviert standardmäßig passives FTP und deaktiviert aktiven Modus, kann ihn aber optional erlauben.

Praxis-Tipp: Konfigurieren Sie beim Passivmodus am Server einen festen Ephemeral-Portbereich und öffnen Sie ausschließlich diesen Bereich in der Firewall. Das verhindert Zeitüberschreitungen bei Datenkanälen.

 

Datenrepräsentation, Modi und Datei-Management

FTP unterstützt unterschiedliche Darstellungs- und Übertragungsmodi:

  • ASCII und Binary/Image als Datentypen; Binary ist heute Standard, um Dateiinhalte unverändert zu übertragen.
  • Stream-, Block- und Compressed-Mode für verschiedene Transferanforderungen.
  • Dateiverwaltung umfasst u. a. Anlegen und Löschen von Verzeichnissen (MKD, RMD), Umbenennen (RNFR/RNTO) und Systemabfragen (SYST).

Diese Mechanismen sind in RFC 959 beschrieben und werden von gängigen Servern und Clients breit unterstützt.

 

Wichtige Erweiterungen des FTP-Standards

Die IETF hat FTP im Laufe der Jahre um praxisrelevante Erweiterungen ergänzt:

  • RFC 3659 (Extensions to FTP): Führt unter anderem SIZE, MDTM (Zeitstempel), REST-Erweiterungen zum Wiederaufsetzen abgebrochener Transfers sowie MLST/MLSD ein, die maschinenlesbare Verzeichnislisten bereitstellen und das uneinheitliche LIST verbessern.
  • RFC 2428 (IPv6 und NAT): Definiert EPRT/EPSV für Protokollunabhängigkeit und bessere Interoperabilität in heterogenen Netzumgebungen.
  • RFC 2228 (Security Extensions): Legt Sicherheits- und Authentifizierungs-Erweiterungen fest, die die Basis für TLS-Absicherung bilden.
  • RFC 4217 (FTPS): Beschreibt die Absicherung von FTP mit TLS.

 

Sicherheit: Klartext-FTP, FTPS und heutige Empfehlungen

Klartext-FTP überträgt Anmeldedaten und Nutzdaten unverschlüsselt. Dies ermöglicht Mitschnitte und Identitätsdiebstahl, insbesondere in gemeinsam genutzten oder unsicheren Netzen. Entsprechend raten Sicherheitsrichtlinien von Klartext-FTP ab und empfehlen sichere Alternativen.

FTPS (FTP over TLS)

FTPS verschlüsselt Steuer- und/oder Datenkanal mittels TLS und stützt sich auf die in RFC 2228 definierten Sicherheits-Erweiterungen. RFC 4217 spezifiziert das Verfahren inklusive Zertifikatsauthentifizierung und Verhandlung des Schutzniveaus. In der Praxis existieren Explizit-FTPS (Start in Klartext, Upgrade via AUTH TLS) und Implizit-FTPS (historisch, dedizierter Port). Beide folgen dem FTP-Dialogmodell.

SFTP ist nicht FTP

SFTP (SSH File Transfer Protocol) ist ein eigenes Protokoll der SSH-Suite und kein FTP. Es läuft typischerweise über Port 22 und besitzt eine eigene Befehlssyntax sowie ein anderes Verbindungsmodell. Historisch war SFTP ein IETF-Entwurf; aktuell existiert eine neue Internet-Draft von 2025, die SFTP erneut standardisiert. Nutzen Sie SFTP nicht als Synonym für FTPS.

Merksatz:

  • FTPS = FTP + TLS gemäß RFC 4217.
  • SFTP = eigenständiges Protokoll über SSH, ohne FTP-Semantik.

 

Browser-Support und aktuelle Entwicklung

Moderne Browser haben FTP-Unterstützung entfernt, da der Nutzen gering und das Risiko durch unverschlüsselte Verbindungen hoch ist. Firefox deaktivierte FTP ab Version 88 und entfernte die Unterstützung final in Version 90. Chrome entfernte FTP schrittweise und deaktivierte die Implementierung vollständig. Für einfache Downloads bieten sich heute HTTPS-basierte Alternativen oder WebDAV an.

 

Typische Einsatzszenarien

  • Legacy-Integrationen: Ältere Systeme, Tools oder Maschineninterfaces, die FTP sprechen und nicht kurzfristig migrierbar sind.
  • Controlled Environments: Interne Netze mit zusätzlicher Transportverschlüsselung oder Tunnelung, in denen Kompatibilität Vorrang hat.
  • Massenverteilung großer Dateien: Noch vereinzelt bei Mirror-Infrastruktur. Hier ist jedoch HTTPS etabliert.

Wenn Schutzbedarf besteht, sollten Sie FTPS oder SFTP einsetzen. In Cloud-Umgebungen können auch S3/HTTPS oder Managed File Transfer-Lösungen sinnvoll sein.

 

Best Practices für Betrieb und Konfiguration

  1. Passivmodus bevorzugen
    Setzen Sie EPSV/EPRT ein und definieren Sie am Server einen engen Passiv-Portbereich. Öffnen Sie nur diese Ports in der Firewall. Das erhöht Robustheit hinter NAT und vereinfacht das Regelwerk.
  2. TLS oder SSH erzwingen
    Vermeiden Sie Klartext-FTP. Für bestehende FTP-Workflows nutzen Sie FTPS mit soliden Cipher Suites und Zertifikatsvalidierung. Wenn möglich, migrieren Sie langfristig auf SFTP.
  3. Maschinenlesbare Listings
    Verwenden Sie MLSD/MLST statt LIST, um portable, parsebare Verzeichnisdaten zu erhalten.
  4. Wiederaufsetzen und Integrität
    Aktivieren Sie Resume via REST sowie Größen-/Zeitstempel-Abfragen (SIZE, MDTM). Ergänzen Sie Prüfsummen auf Anwendungsebene, da FTP selbst keine End-to-End-Integrität sicherstellt.
  5. Zeichenkodierungen berücksichtigen
    Achten Sie bei Dateinamen und Listings auf kodierungsneutrale Verarbeitung oder UTF-8-Unterstützung; historische Implementierungen sind hier uneinheitlich.
  6. Server-Hardening
    Deaktivieren Sie anonyme Logins und FXP/Server-zu-Server-Transfers, wenn nicht zwingend nötig. Beschränken Sie Befehle, isolieren Sie Benutzer (Chroot/Jail), setzen Sie Rate Limits und Logging. Hinweise zu Bounce-Angriffen beachten.
  7. Monitoring und Protokollierung
    Überwachen Sie Steuer- und Datenkanal, Statuscodes, Transferzeiten und Fehlerraten. Hinterlegen Sie Explizit-FTPS sauber in Load-Balancern/Proxies.

 

Häufige Missverständnisse, sauber geklärt

  • „SFTP = sicheres FTP“Falsch. SFTP ist kein FTP, sondern ein eigenständiges Protokoll über SSH. Sicheres FTP im Sinne von „FTP mit Verschlüsselung“ heißt FTPS.
  • „Für FTP reicht Port 21 und 20“Nur teilweise. Im Passivmodus werden ephemere Ports verwendet, die Sie in der Firewall gezielt freigeben müssen.
  • „FTP im Browser ist noch Praxis“Nicht mehr. Chrome und Firefox haben die Unterstützung entfernt. Nutzen Sie stattdessen einen FTP-Client oder HTTPS-basierte Wege.

 

Zusammenfassung

FTP ist ein historisch bedeutender, funktional reifer Standard für Dateiübertragung mit klarer Trennung von Steuer- und Datenkanal. In heutigen Sicherheitsanforderungen hat Klartext-FTP jedoch kaum noch Platz. Setzen Sie FTPS dort ein, wo FTP-Semantik erforderlich ist, oder migrieren Sie konsequent auf SFTP bzw. HTTPS/WebDAV. Prüfen Sie Ihre Firewall-Regeln für passives FTP und nutzen Sie moderne Erweiterungen wie MLSD, SIZE, MDTM und REST, um Interoperabilität, Automatisierung und Resilienz zu verbessern.

Weitere passende Glossareinträge

Das Frontend ist der sichtbare Teil einer Website oder Anwendung, der für die Benutzeroberfläche, das Design und die Interaktivität verantwortlich ist.
Ein Fallback ist eine vordefinierte Ausweichlösung, die automatisch greift, wenn eine bevorzugte Ressource, Funktion oder Verbindung ausfällt, um Nutzbarkeit sicherzustellen.
Das Farbspektrum umfasst alle sichtbaren Farben des Lichts und erklärt, wie diese durch unterschiedliche Wellenlängen entstehen.
Back to top