Verständnis von SFTP vs. FTPS vs. FTP

FTP oder File Transfer Protocol ist eine der beliebtesten Datenübertragungsmethoden, die für verschiedene Anwendungsfälle verfügbar sind.

FTP verfügt über verschiedene sichere Varianten, bekannt als FTPS und SFTP, die einige subtile und einige nicht so subtile Unterschiede in ihrer Funktionsweise aufweisen. Diese Unterschiede beziehen sich auf die Art und Weise, wie Daten ausgetauscht werden, die Ebene und Art der Sicherheit bei der Kommunikation und Überlegungen zu Firewalls.

Wenn Sie wissen, wie diese Protokolle funktionieren und welche Unterschiede zwischen diesen gängigen Übertragungsmechanismen bestehen, können Sie auswählen, welches für Ihre Anforderungen am besten geeignet ist.

FTP

FTP ist das jahrzehntealte Dateiübertragungsprotokoll, das ursprünglich unter RFC 114 vorgeschlagen wurde. Später entwickelte es sich zu RFC 959, dem heute verwendeten Standard.

FTP arbeitet zum Austausch von Informationen auf zwei Kanälen: einer für Befehle und der andere für Daten. Damit FTP funktioniert, sind zwei Ports erforderlich – der Befehlskanal und der Datenkanal.

Der Befehlskanal arbeitet auf Port 21, der Verbindungen von Clients akzeptiert und die Übergabe von Befehlen übernimmt. Der Befehlskanal bleibt für die gesamte Dauer der FTP-Sitzung offen, bis der Client den QUIT-Befehl sendet oder der Server aufgrund von Inaktivität oder einem anderen möglichen Grund die Verbindung zwangsweise trennt.

Der Datenkanal verwendet einen bedarfsgesteuerten temporären Port, der auf dem Server (passiver Modus) oder dem Client (aktiver Modus) lauscht. Dieser Kanal ist für den Austausch tatsächlicher Daten zwischen Server und Client in Form von Verzeichnislisten und Dateiübertragungen verantwortlich.

Im Gegensatz zum Befehlskanal bleibt der Datenkanal nur für die Dauer der Dateiübertragung geöffnet, und sobald sie beendet ist, wird der Datenkanal geschlossen. Für die gleichzeitige Übertragung mehrerer Dateien oder Verzeichnislisten sind mehrere Datenkanalports erforderlich.

FTP ist ein von Natur aus unsicheres Protokoll, da sowohl Befehls- als auch Datenkanäle Informationen in unverschlüsselter Form übertragen, die leicht von jedem abgefangen werden kann, der Man-in-the-Middle-Angriffe verwendet.

Wie bereits erwähnt, erfordert FTP eine eingehende Verbindung auf Port 21/tcp auf der Serverseite für den Befehlskanal. Für Dateiübertragungen und Verzeichnislisten ist ein passiver Portbereich definiert, der eingehende Verbindungen zulässt. Dieser Definitionsprozess kann je nach verwendetem FTP-Server variieren. Weitere Einzelheiten finden Sie in der zugehörigen Dokumentation. Auf der Clientseite sollten ausgehende Verbindungen auf Port 21/tcp zusammen mit dem auf dem Server definierten passiven Portbereich zugelassen werden.

  So klonen Sie ein GitHub-Repository

Authentifizierung bei FTP

FTP-Authentifizierungsinformationen werden während des anfänglichen Verbindungsaufbaus über den Befehlskanal weitergegeben. FTP kann einen Benutzernamen und ein Passwort zur Authentifizierung verwenden, oder es kann anonym sein, damit sich jeder anmelden und auf den Server zugreifen kann.

Aktiver und passiver FTP-Modus

FTP verwendet für den Verbindungsaufbau entweder den aktiven oder den passiven Modus.

Im aktiven Modus verbindet sich ein Benutzer von einem beliebigen Port auf dem FTP-Client mit dem FTP-Port 21/tcp auf dem Server und sendet den PORT-Befehl, der den Client-Port angibt, zu dem der Server eine Verbindung herstellen soll. Dieser Port wird für den Datenkanal verwendet.

Der Server verbindet sich dann von Port 20/tcp mit dem zuvor vom Client mit dem PORT-Befehl angegebenen Client-Port. Dieser Datenkanal wird dann für Dateiübertragungen zwischen Server und Client verwendet.

Im passiven Modus verbindet sich der Client von einem beliebigen Port des FTP-Clients mit Port 21/tcp auf dem Server und sendet den PASV-Befehl. Der Server antwortet dann mit einem zufälligen Port, der für den Datenkanal verwendet werden soll. Der Client verwendet dann einen anderen zufälligen Port, um sich mit dem Port zu verbinden, der im vorherigen Schritt von einem Server geantwortet wurde. Diese Datenkanalverbindung wird dann für die Dateiübertragung zwischen Server und Client verwendet.

Im aktiven Modus wird also die anfängliche Verbindungsanforderung vom Client initiiert, während die Datenkanal-Verbindungsanforderung vom Server initiiert wird.

Andererseits werden im passiven Modus sowohl anfängliche Verbindungsanforderungen als auch nachfolgende Datenkanalanforderungen vom Client an den Server initiiert. Dieser feine Unterschied wirkt sich manchmal darauf aus, wie eine Firewall herkömmliche FTP-Anforderungen aufgrund der Richtung des eingehenden/ausgehenden Verbindungstyps zulässt/blockiert.

  So schließen Sie geöffnete Fenster auf dem iPhone 11

FTPS

Selbst wenn Sie bereit sind, Risiken einzugehen, die FTP mit unverschlüsselter Datenübertragung und Main-in-the-Middle-Angriffen mit sich bringt, zwingen Sie die Branchenanforderungen, eine sicherere Alternative wie FTPS und SFTP zu verwenden, die vergleichsweise viel sicherer sind.

Im Jahr 1990, als sich die Sicherheitslandschaft veränderte, entwickelte Netscape das SSL- oder Secure Sockets Layer (SSL, jetzt bekannt als TLS)-Protokoll, um die Kommunikation über ein Netzwerk zu schützen. SSL wurde auf FTP angewendet, das zu FTPS oder File Transfer Protocol Secure wurde. FTPS oder FTP/S läuft normalerweise auf Port 990/tcp, kann aber auch auf Port 21/tcp gesehen werden. In ähnlicher Weise ist für den Datenkanal Port 989/tcp der gemeinsame Port, der für FTPS verwendet wird. Wenn der Befehlsport 21/tcp ist, wird erwartet, dass sein Datenport 20/tcp ist.

Wie FTP verwendet FTPS zwei Kanäle für die Kommunikation: Befehls- und Datenkanal. Entweder kann der Datenkanal mit FTPS verschlüsselt werden, oder sowohl Befehls- als auch Datenkanäle können für mehr Sicherheit verschlüsselt werden.

FTPS verwendet wie FTP auch mehrere Ports für Befehls- und Datenkanäle. Port 21/tcp wird also für die anfängliche Verbindung und die Übertragung von Authentifizierungsinformationen verwendet. Später werden verschiedene Ports benötigt, um Datenkanäle für jede Dateiübertragungs- oder Verzeichnislistenanforderung vom Client einzurichten. Daher benötigt es wie FTP eine Reihe von Ports, die in Ihrer Firewall zugelassen werden müssen.

Authentifizierung bei FTPS

Die Authentifizierung für FTPS funktioniert mit einem Benutzernamen und einem Passwort zusammen mit einem Serverzertifikat zur Verschlüsselung. Wenn der FTPS-Client eine Verbindung zu einem Server herstellt, prüft er, ob dem Zertifikat des Servers vertraut wird, um mit der Verbindung fortzufahren. Dieses Zertifikat kann vom Client und vom Server angefordert werden.

SFTP

Im Gegensatz zu FTP und FTPS ist SFTP (SSH File Transfer Protocol) ein völlig anderes Protokoll, das auf SSH (oder Secure Shell) basiert. SFTP funktioniert standardmäßig auf Port 22/tcp, genauso wie SSH, obwohl es so konfiguriert werden kann, dass es einen benutzerdefinierten freien Port auf dem Server verwendet.

  So lassen Sie Siri Artikel auf Ihrem Mac vorlesen

SFTP ist ein sicheres FTP-Protokoll, das SSH darunter verwendet, um Dateien zu senden und zu empfangen. Da SSH vollständig verschlüsselt ist, ist SFTP eine robuste und sichere Methode, um Dateien über ein Netzwerk zu übertragen.

SFTP verwendet im Gegensatz zu FTP und FTPS einen einzigen Kommunikationskanal, um Befehle und Datenverkehr zu übertragen, die alle zusammen mit der anfänglichen Authentifizierung in verschlüsselter Form weitergegeben werden.

Authentifizierung in SFTP

Die Authentifizierung bei SFTP kann über einen einfachen Benutzernamen und ein Passwort erfolgen, aber im Gegensatz zu FTP werden alle Informationen, einschließlich Authentifizierungsdetails, verschlüsselt über das Netzwerk übertragen.

SFTP unterstützt auch die Authentifizierung mit einer Kombination aus SSH-Schlüsselpaar, privatem und öffentlichem Schlüssel, wobei der Client den privaten Schlüssel für den angegebenen Benutzer bereitstellt und der Server über den entsprechenden öffentlichen Schlüssel verfügen sollte, damit die Authentifizierung erfolgreich ist. Es ist sicherer als die Verwendung einer Kombination aus Benutzername und Passwort. Es ist möglich, denselben Benutzer mit Passwort und SSH-Schlüsseln zu authentifizieren, wenn beide Methoden auf dem SFTP-Server konfiguriert sind.

Zusammenfassung

Dieser Artikel fasst die grundlegenden Funktionen verschiedener beliebter Dateiübertragungsprotokolle, nämlich FTP, FTPS und SFTP, zusammen und hebt die feinen und großen Unterschiede zwischen diesen Protokollen hervor. Es deckt die Ports ab, die man in einer Firewall zulassen muss, um einen funktionierenden FTP/FTPS/SFTP-Server einzurichten, und betont gleichzeitig die Notwendigkeit, auf sicherere Protokolle wie FTPS und SFTP umzusteigen.

Wenn ich hier FTP sage, beziehe ich mich auf alle in diesem Artikel besprochenen Protokolle. Der Grund dafür ist, dass FTP Jahrzehnte alt ist, und selbst neuere sichere Versionen werden manchmal als FTP bezeichnet, anstatt mit ihrem eigentlichen Namen für den täglichen Gebrauch.

Sie könnten auch daran interessiert sein, die beste FTP-Serversoftware und FTP/SFTP-Clients zu kennen.