Verständnis von SFTP vs. FTPS vs. FTP

Vergleich der Dateitransferprotokolle: FTP, FTPS und SFTP

FTP, oder File Transfer Protocol, ist eine weit verbreitete Methode zur Datenübertragung, die in vielfältigen Anwendungen zum Einsatz kommt. Es existieren auch gesicherte Varianten von FTP, bekannt als FTPS und SFTP, die sich in ihrer Funktionsweise unterscheiden. Diese Unterschiede betreffen die Art der Datenübertragung, die Sicherheitsebene, die Kommunikationsarten und die Handhabung von Firewalls.

Ein tiefgehendes Verständnis dieser Protokolle und ihrer Eigenheiten hilft dabei, das optimale Protokoll für spezifische Anforderungen auszuwählen.

FTP im Detail

FTP, ein Pionier der Dateiübertragung, wurde erstmals mit RFC 114 definiert und später durch RFC 959 standardisiert. Es nutzt zwei separate Kanäle für die Kommunikation: einen für Befehle und einen für Daten. Für den Betrieb benötigt FTP daher zwei Ports.

Der Befehlskanal lauscht auf Port 21, nimmt Verbindungen von Clients an und verarbeitet Befehle. Dieser Kanal bleibt während der gesamten FTP-Sitzung geöffnet, bis der Client den Befehl QUIT sendet oder die Verbindung serverseitig aus anderen Gründen beendet wird.

Der Datenkanal nutzt einen temporären Port, der je nach Modus (passiv oder aktiv) auf dem Server oder Client aktiv wird. Dieser Kanal dient der Übertragung von Dateien und Verzeichnislisten. Im Gegensatz zum Befehlskanal wird der Datenkanal nach jeder Datenübertragung geschlossen, sodass mehrere Ports für gleichzeitige Übertragungen benötigt werden.

FTP ist von Grund auf unsicher, da sowohl Befehls- als auch Datenkanäle unverschlüsselte Daten übertragen, die durch Man-in-the-Middle-Angriffe abgefangen werden können.

Für den Befehlskanal ist eine eingehende Verbindung auf Port 21/tcp serverseitig erforderlich. Für Datenübertragungen ist ein passiver Portbereich zu definieren, der eingehende Verbindungen erlaubt. Der genaue Prozess kann je nach FTP-Server variieren. Clientseitig sind ausgehende Verbindungen zu Port 21/tcp sowie zum definierten passiven Portbereich zuzulassen.

Authentifizierung bei FTP

Die Authentifizierung bei FTP erfolgt über den Befehlskanal. Dabei wird ein Benutzername und ein Passwort verwendet oder ein anonymer Zugriff ermöglicht.

Aktiver und passiver FTP-Modus

FTP verwendet für die Verbindung entweder den aktiven oder den passiven Modus. Im aktiven Modus verbindet sich der Client mit Port 21/tcp des Servers und sendet einen PORT-Befehl mit dem Client-Port für den Datenkanal. Der Server verbindet sich dann von Port 20/tcp mit diesem Client-Port.

Im passiven Modus verbindet sich der Client ebenfalls mit Port 21/tcp des Servers und sendet einen PASV-Befehl. Der Server antwortet mit einem zufälligen Port für den Datenkanal, zu dem sich der Client anschließend verbindet.

Aktiver Modus Passiver Modus
Verbindungsanfrage Client initiiert Client initiiert
Datenkanal Anfrage Server initiiert Client initiiert

Diese Unterschiede beeinflussen, wie Firewalls FTP-Verbindungen behandeln, da sie zwischen eingehenden und ausgehenden Verbindungen unterscheiden.

FTPS: Die sichere Variante von FTP

Aufgrund der Sicherheitsbedenken von FTP, insbesondere der unverschlüsselten Übertragung und der Anfälligkeit für Man-in-the-Middle-Angriffe, sind sichere Alternativen wie FTPS und SFTP unerlässlich geworden. FTPS, oder File Transfer Protocol Secure, nutzt SSL/TLS-Verschlüsselung, um die Kommunikation zu schützen.

FTPS wird üblicherweise auf Port 990/tcp betrieben, kann aber auch Port 21/tcp verwenden. Für den Datenkanal ist Port 989/tcp üblich, oder 20/tcp, wenn der Befehlsport 21/tcp ist.

FTPS nutzt wie FTP zwei Kanäle für die Kommunikation, wobei der Datenkanal optional oder sowohl Befehls- als auch Datenkanal verschlüsselt werden können. Die Port-Konfiguration ähnelt der von FTP, weshalb eine Reihe von Ports in der Firewall berücksichtigt werden muss.

Authentifizierung bei FTPS

Die Authentifizierung bei FTPS erfolgt mit Benutzername, Passwort und Serverzertifikat zur Verschlüsselung. Der Client verifiziert das Serverzertifikat, bevor die Verbindung fortgesetzt wird.

SFTP: Ein eigenständiges Protokoll

Im Gegensatz zu FTP und FTPS ist SFTP (SSH File Transfer Protocol) ein eigenständiges Protokoll, das auf SSH (Secure Shell) basiert. SFTP nutzt standardmäßig Port 22/tcp, kann aber auch auf einen anderen Port konfiguriert werden.

SFTP ist ein sicheres Protokoll, das Dateien über einen verschlüsselten SSH-Tunnel überträgt und somit eine robuste und sichere Methode darstellt. SFTP verwendet nur einen einzigen Kommunikationskanal für Befehle und Daten, der alle Informationen, einschließlich der Authentifizierungsdetails, verschlüsselt überträgt.

Authentifizierung bei SFTP

Die Authentifizierung bei SFTP kann mit Benutzername und Passwort erfolgen, wobei alle Details verschlüsselt übertragen werden. Alternativ kann die Authentifizierung mit SSH-Schlüsselpaaren (privater und öffentlicher Schlüssel) erfolgen, was noch sicherer ist. Es ist möglich, beide Methoden zu konfigurieren.

Zusammenfassung und Ausblick

Zusammenfassend hat dieser Artikel die Grundlagen von FTP, FTPS und SFTP beleuchtet und die wesentlichen Unterschiede hervorgehoben. Insbesondere die Notwendigkeit eines Umstiegs auf sichere Protokolle wie FTPS und SFTP wurde betont. Es wurden auch die Port-Anforderungen für Firewalls erläutert.

Die Bezeichnung „FTP“ wird häufig als Oberbegriff für diese Protokolle verwendet, auch für die neueren und sichereren Versionen. Weitere Informationen zur besten FTP-Serversoftware und FTP/SFTP-Clients sind ebenfalls von Interesse.