Definition

FTP (File Transfer Protocol)

Was ist das File Transfer Protocol (FTP)?

Das File Transfer Protocol (FTP) ist ein Netzwerkprotokoll zur Übertragung von Dateien zwischen Computern über TCP/IP-Verbindungen. Innerhalb der TCP/IP-Familie wird FTP als Protokoll der Anwendungsschicht betrachtet.

FTP ist für jeden nützlich, der Dateien über das Internet oder die Cloud hoch- oder herunterlädt, sowie für Entwickler, die Webseiten verwalten.

Bei einer FTP-Transaktion wird der Computer des Endanwenders in der Regel als lokaler Host bezeichnet. Der zweite an der FTP-Transaktion beteiligte Computer ist ein entfernter Host oder Remote-Host, in der Regel ein Server. Beide Computer müssen über ein Netzwerk miteinander verbunden und für den Dateitransfer per FTP entsprechend konfiguriert sein. Server müssen so konfiguriert sein, dass sie FTP-Dienste ausführen können, und auf dem Client muss FTP-Software installiert sein, um auf diese Dienste zugreifen zu können.

Obwohl viele Dateiübertragungen mit HTTP (einem anderen Protokoll der TCP/IP-Suite) durchgeführt werden können, wird FTP immer noch häufig für die Übertragung von Dateien im Hintergrund für andere Anwendungen verwendet, zum Beispiel für Bankdienstleistungen. Manchmal wird es auch zum Herunterladen neuer Anwendungen über Webbrowser genutzt.

Es gibt mehrere kostenlose FTP-Clients, die heruntergeladen werden können, aber die meisten Webbrowser sind auch mit FTP-Clients ausgestattet.

Wie funktioniert FTP?

FTP ist ein Client-Server-Protokoll, das auf zwei Kommunikationskanälen zwischen Client und Server basiert: einem Befehlskanal zur Steuerung der Kommunikation und einem Datenkanal zur Übertragung der Dateiinhalte.

Eine typische FTP-Übertragung läuft folgendermaßen ab:

  1. In der Regel muss sich ein Benutzer beim FTP-Server anmelden, obwohl einige Server einen Teil oder alle Inhalte auch ohne Anmeldung zur Verfügung stellen (anonymes FTP).
  2. Der Client initiiert die Kommunikation mit dem Server, wenn der Benutzer den Download einer Datei anfordert.
  3. Mit FTP kann ein Client Dateien auf einen Server hochladen, herunterladen, löschen, umbenennen, verschieben und kopieren.

FTP-Sitzungen funktionieren entweder im aktiven oder im passiven Modus:

  • Aktiver Modus: Nachdem ein Client eine Sitzung über eine Befehlskanalanforderung initiiert hat, baut der Server eine Datenverbindung zum Client auf und beginnt mit der Datenübertragung.
  • Passiver Modus: Der Server verwendet den Befehlskanal, um dem Client die Informationen zu senden, die er benötigt, um einen Datenkanal zu öffnen. Da der Client alle Verbindungen im passiven Modus initiiert, funktioniert dies gut über Firewalls und NAT-Gateways hinweg.
Aktives FTP vs. passives FTP.
Abbildung 1: Während aktives FTP eine Datenverbindung über Port 20 initiiert, initiiert passives FTP Datenverbindungen von einem hohen Port auf dem Client zu einem hohen Port auf dem Server.

Benutzer können mit FTP über eine einfache Befehlszeilenschnittstelle von einer Konsole oder einem Terminalfenster unter Microsoft Windows, Apple MacOS oder Linux aus arbeiten. Eine weitere Möglichkeit ist die Verwendung einer grafischen Benutzeroberfläche, die speziell für FTP entwickelt wurde. Als FTP-Client kann auch ein Webbrowser verwendet werden. Die Nutzung von FTP über einen FTP-Client ist der häufigste Anwendungsfall, da FTP-Clients einfacher zu verwalten, flexibler und leistungsfähiger sind.

Nutzung und Vorteile von FTP

FTP ist ein Standard-Netzwerkprotokoll, das umfangreiche Dateiübertragungsfunktionen über IP-Netzwerke ermöglicht. Neben FTP kann die Übertragung von Dateien und Daten auch mit anderen Mechanismen verwaltet werden, zum Beispiel per E-Mail oder über einen HTTP-Webdienst. Diese anderen Möglichkeiten bieten jedoch nicht die Klarheit, Präzision und Kontrolle, die FTP und seine späteren Versionen bereitstellen. Ohne die Fähigkeit von FTP, große Dateien gleichzeitig zu übertragen, müssten die Benutzer mehrere große Dateien einzeln übertragen.

FTP wird für die Übertragung von Dateien zwischen Systemen verwendet und hat mehrere häufige Anwendungsfälle, darunter die folgenden:

  • Backup: Backup-Dienste oder einzelne Benutzer können FTP verwenden, um Daten von einem Standort auf einen sicheren Backup-Server zu sichern, auf dem FTP-Dienste laufen.
  • Replikation: Ähnlich wie beim Backup werden bei der Replikation Daten von einem System auf ein anderes kopiert, jedoch mit einem umfassenderen Ansatz, um eine höhere Verfügbarkeit und Ausfallsicherheit zu gewährleisten. Auch hier kann FTP verwendet werden, um diesen Prozess zu vereinfachen.
  • Zugriff und Datenübertragung: FTP wird häufig auch für den Zugriff auf gemeinsam genutzte Web-Hosting- und Cloud-Dienste verwendet, um Daten auf ein entferntes System zu laden.
  • Übertragung großer Dateien: FTP wird häufig für die Übertragung großer Mediendateien wie zum Beispiel Code-Repositories, Videos und Backups zwischen Produktionsteams verwendet.

Obwohl FTP für die Übertragung großer Dateien geeignet ist, können Aktivitäten wie das Streaming von Videoinhalten, das Spielen von Online-Spielen, die Nutzung von Cloud-Storage und die gemeinsame Nutzung von Dateien fortschrittlichere Protokolle erfordern.

FTP-Typen

Ein FTP-Server und eine Client-Software können eine Dateiübertragung per FTP auf folgende Arten durchführen:

  • Anonymes FTP: Diese einfachste Form von FTP unterstützt Datenübertragungen ohne Verschlüsselung der Daten oder die Verwendung von Benutzername und Passwort. Sie wird häufig zum Herunterladen von Material verwendet, das für die uneingeschränkte Verbreitung freigegeben ist. Es funktioniert im aktiven Modus über Port 20 und für Steuerbefehle über Port 21.
  • Passwortgeschütztes FTP: Dies ist ebenfalls ein grundlegender FTP-Dienst, der jedoch die Verwendung eines Benutzernamens und eines Passworts erfordert und möglicherweise nicht verschlüsselt oder gesichert ist. Er funktioniert über die gleichen Ports wie anonymes FTP.
  • FTP Secure (FTPS): Dieser Ansatz, der manchmal auch als FTP Secure Sockets Layer (FTP-SSL) bezeichnet wird, aktiviert implizit Transport Layer Security (TLS), sobald eine FTP-Verbindung aufgebaut ist. FTPS wurde ursprünglich entwickelt, um eine sicherere Form der FTP-Datenübertragung zu ermöglichen. Standardmäßig wird Port 990 für implizites FTPS und Port 21 für explizites FTPS verwendet.
  • FTP über explizites SSL/TLS (FTPES): Dieser Ansatz ermöglicht die Unterstützung von explizitem TLS, indem eine FTP-Verbindung über Port 21 in eine verschlüsselte Verbindung umgewandelt wird. Web- und File-Sharing-Dienste verwenden diesen Ansatz häufig, um sichere Dateiübertragungen zu ermöglichen.
  • Secure FTP (SFTP): Technisch gesehen ist dies kein FTP-Protokoll, funktioniert aber ähnlich. SFTP ist vielmehr eine Untermenge des SSH-Protokolls (Secure Shell), das auf Port 22 läuft. Systemadministratoren verwenden SSH häufig für den sicheren Fernzugriff auf Systeme und Anwendungen, und SFTP bietet innerhalb von SSH einen Mechanismus für die sichere Dateiübertragung.

FTP-Sicherheit

Standardmäßig verschlüsselt FTP den Datenverkehr nicht, so dass Außenstehende Pakete abfangen und Benutzernamen, Passwörter und andere Daten lesen können. FTP ist anfällig für Brute-Force-Angriffe auf die Benutzer- und Passwortauthentifizierung, FTP-Bounce-Angriffe oder DDoS-Angriffe. FTP wurde ursprünglich 1971 definiert, also vor TCP und IP. Seitdem erfuhr es mehrere Revisionen, um neue Technologien zu unterstützen, einschließlich der Verwendung von TCP/IP, RFC 765, RFC 959, IPv6 und RFC 2428.

FTP wurde auch mehrfach aktualisiert, um die FTP-Sicherheit zu verbessern. Dazu gehören die genannten FTP-Typen, die über eine implizite TLS-Verbindung (FTPS) oder eine explizite TLS-Verbindung (FTPES) verschlüsseln oder SFTP verwenden.

FTP-Clients

FTP-Clients werden zum Hochladen, Herunterladen und Verwalten von Dateien auf einen Server verwendet. Beispiele für FTP-Clients sind unter anderem:

  • FileZilla ist ein kostenloser FTP-Client für die Betriebssysteme Windows, macOS und Linux. Er unterstützt FTP, FTPS und SFTP.
  • Transmit ist ein FTP-Client für macOS von Panic Inc. und unterstützt FTP und SFTP.
  • WinSCP ist ein kostenloser FTP-Client für Windows und unterstützt FTP, FTPS und SFTP.
  • WS_FTP ist ein FTP-Client für Windows von Progress Software und unterstützt FTP, FTPS und SFTP.

Erfahren Sie mehr über Netzwerksoftware