← Zurück zur Übersicht
Protokolle

FTP & SFTP

Dateiübertragung im Netzwerk

FTPSFTPSCPDateiübertragungPort 21SSH

FTP (File Transfer Protocol) ist das klassische Protokoll zur Dateiübertragung – aber unverschlüsselt. SFTP (SSH File Transfer Protocol) und SCP überträgt Dateien sicher über SSH. FTP sollte heute nur noch mit TLS (FTPS) oder gar nicht mehr genutzt werden.

FTP (unverschlüsselt)Port 21 – Kommando-KanalPort 20 / Dyn. – Daten-KanalAktiv-Modus: Server → ClientPassiv-Modus: Client → Server Kein TLSPasswort im Klartext!Firewall-Probleme beiAktiv-ModusSFTP / SCPPort 22 – SSH-KanalAlles verschlüsseltSFTP: SSH File Transfer ProtocolSCP: Secure Copy (scp)✓ SicherSchlüssel-AuthentifizierungEin Kanal, keineFirewall-Probleme

Entstehung und Beteiligte

FTP wurde von Abhay Bhushan am MIT entworfen und 1971 als RFC 114 beschrieben. Das Protokoll wurde mehrfach überarbeitet. SFTP ist trotz des ähnlichen Namens kein abgesichertes FTP, sondern ein eigenes Dateiübertragungsprotokoll des SSH-Ökosystems.

Welches Problem sollte gelöst werden?

Forscher im ARPANET wollten Dateien zwischen unterschiedlichen Rechnern übertragen, Verzeichnisse auflisten und Benutzer authentifizieren. Lokale Dateiformate, Zeichensätze und Betriebssysteme unterschieden sich stark.

Technische Hürden und Lösungen

FTP trennt Steuer- und Datenverbindung. Active und Passive Mode reagieren unterschiedlich auf Firewalls und NAT. Passwörter und Inhalte bleiben ohne TLS unverschlüsselt. SFTP löst viele Netzprobleme durch einen einzigen SSH-Kanal, ist aber nicht protokollkompatibel.

Standardisierung und Einordnung

Internetprotokolle werden überwiegend in offenen RFC-Dokumenten beschrieben. Ein RFC kann ein historischer Vorschlag, ein aktueller Standard oder inzwischen überholt sein. Implementierungen müssen nicht nur das Papier befolgen, sondern mit fehlerhaften Gegenstellen, Paketverlust, Zeitüberschreitungen, Sicherheitsangriffen und jahrzehntealten Erweiterungen umgehen. Interoperabilität entsteht dadurch, dass unabhängige Hersteller dieselben Zustandsautomaten, Nachrichtenformate und Fehlerfälle testen.

Technik im praktischen Betrieb

Für den produktiven Einsatz zählt die konkrete Protokollversion. Alte und neue Varianten können denselben Port verwenden, besitzen aber völlig unterschiedliche Sicherheits- und Funktionsmerkmale. Administratoren sollten daher Aushandlung, Zertifikate, Timeouts, maximale Nachrichtengrößen und Fehlercodes sichtbar machen. Proxys, NAT und Firewalls verändern häufig den Datenpfad. Gute Tests erfolgen aus derselben Netzposition wie die betroffene Anwendung und prüfen nicht nur einen offenen Port, sondern einen vollständigen gültigen Vorgang.

Warum das Thema heute noch relevant ist

Die ursprüngliche Entstehungszeit erklärt viele heutige Sicherheitslücken: Frühe Internetgemeinschaften waren klein und Vertrauen wurde vorausgesetzt. Authentifizierung, Verschlüsselung und Missbrauchsschutz kamen oft erst später als Erweiterung hinzu. Moderne Implementierungen müssen deshalb sichere Voreinstellungen verwenden, alte Varianten abschalten und dennoch mit Gegenstellen kommunizieren, die einen älteren Stand besitzen. Versionsnummer, Aushandlung und tatsächlich aktive Option sind aussagekräftiger als der bloße Protokollname.

Daten und Meilensteine

  • 1971: erstes FTP-Dokument RFC 114.
  • 1985: RFC 959 wird zentrale FTP-Spezifikation.
  • FTPS bedeutet FTP über TLS.
  • SFTP läuft üblicherweise als SSH-Subsystem über TCP 22.

FTP – das klassische Protokoll

FTP (File Transfer Protocol, RFC 959) wurde 1971 entwickelt und ist eines der ältesten Netzwerkprotokolle. Es nutzt zwei TCP-Verbindungen: einen Kommando-Kanal (Port 21) für Befehle wie USER, PASS, LIST, RETR und einen Daten-Kanal (Port 20 oder dynamisch) für die eigentliche Dateiübertragung.

Kritisch: FTP überträgt alles im Klartext – Benutzername, Passwort und Daten. Jeder im Netzwerk kann mitsniffen. FTP sollte nur noch als FTPS (FTP over TLS) oder gar nicht verwendet werden.

SFTP und SCP – sichere Alternativen

SFTP (SSH File Transfer Protocol) ist kein "sicheres FTP" im Wortsinn, sondern ein eigenständiges Protokoll, das über SSH läuft. Es nutzt Port 22 und verschlüsselt Befehle und Daten in einem einzigen Kanal – keine Firewall-Probleme wie bei FTP.

SCP (Secure Copy Protocol) ist ein älteres SSH-basiertes Tool für einfache Kopier-Operationen. rsync über SSH ist die modernere Alternative für Synchronisation. SFTP unterstützt mehr Operationen: Resume, Verzeichnisbrowsing, Berechtigungen setzen.

FTP-Modi und FTPS

FTP kennt zwei Modi: Aktiv-Modus (Server initiiert Datenverbindung zum Client – scheitert oft an Firewalls/NAT) und Passiv-Modus (Client initiiert beide Verbindungen – NAT-freundlich, daher Standard).

FTPS (FTP Secure) erweitert FTP um TLS – entweder Explicit FTPS (startet unverschlüsselt, wechselt mit STARTTLS zu TLS, Port 21) oder Implicit FTPS (immer TLS, Port 990). FTPS behält das Zwei-Kanal-Problem von FTP.