FTP (File Transfer Protocol)
Inhaltsverzeichnis
Definition
Das File Transfer Protocol, abgekürzt FTP, ist ein Netzwerkprotokoll zur Übertragung von Dateien, typischerweise zwischen einem Computer und einem Server. Das FTP Protokoll gibt es seit über 40 Jahren, es hat sich jedoch in dieser Zeit erheblich verändert. Die ursprüngliche Spezifikation wurde am 16. April 1971 als RFC 114 veröffentlicht. (RFC steht für Request for Comments und bezeichnet ein formelles Dokument der Internet Engineering Task Force). Im Oktober 1985 wurde mit RFC 959 die heute noch gültige Spezifikation des File Transfer Protocol eingeführt. In nachfolgenden Änderungen wurden lediglich Sicherheitserweiterungen, ein passiver Übertragungsmodus und eine Unterstützung für IPv6 (Internet Protocol Version 6) hinzugefügt. FTP wird in der heutigen Zeit immer weniger genutzt, da sicherere Methoden zur Dateiübertragung vorhanden sind.
FTP und SFTP
Standardmäßig ist FTP nicht sicher. Daten, die zwischen einem Client und Server übertragen werden, sind also nicht verschlüsselt und können möglicherweise von Dritten gelesen oder verändert werden. Für sensible Dateien gibt es daher eine sicherere Variante namens SFTP.
SFTP steht für Secure File Transfer Protocol. Es baut auf der gleichen FTP-Technologie auf, enthält aber SSH-Komponenten (Secure Shell), um die Sicherheit zu erhöhen. SFTP verschlüsselt Dateien während der Übertragung und schützt sie so vor dem Zugriff durch Dritte.
Selbst wenn Sicherheit nicht unbedingt höchste Priorität hat, bietet sich SFTP anstelle von FTP an. Der Prozess bleibt für Nutzer gleich, es entsteht also kein Mehraufwand. SFTP fügt dennoch zusätzliche Sicherheitsmaßnahmen hinzu und bietet somit gegenüber FTP nur Vorteile.
Einsatzmöglichkeiten für FTP
FTP dient primär dem Austausch von Dateien zwischen einem Client und einem Server oder der Übertragung zwischen zwei Servern. Mittels FTP kann eine Datei sowohl vom Client zum Server als sogenannter Upload wie auch vom Server zum Client als sogenannter Download übertragen werden.
FTP-Server unterstützen oft flexible Zugriffsberechtigungen, so dass es möglich ist, bestimmte Ordner nur als Download zu markieren oder den Zugriff etwa nach Benutzerkonto zu beschränken.
Funktionsweise des File Transfer Protocols
Das File Transfer Protocol nutzt für die Kommunikation das Client-Server-Prinzip mit zwei logischen Verbindungen - einem Steuerkanal über den TCP-Port 21 und einem Datenkanal über den TCP-Port 20. Über den Steuerkanal werden ausschließlich FTP-Kommandos und die Antworten auf diese Kommandos übertragen. Mit den Kommandos wird beispielsweise eine Datenübertragung eingeleitet oder beendet. Über den Datenkanal werden nur Daten übertragen.
Der Verbindungsaufbau erfolgt beim aktiven FTP Modus durch den Aufbau des Steuerkanals vom Client zum Server. Anschließend wird der Datenkanal vom Server zum Client aufgebaut. Befindet sich der Client hinter einer Firewall oder einem NAT-Router, muss der Verbindungsaufbau im passiven Modus erfolgen. Im passiven Modus wird der Datenkanal anders als beim aktiven Modus vom Client zum Server initiiert.
FTP bietet zwei verschiedene Übertragungsmodi - einen ASCII-Modus und einen Binary-Modus. Für die Übertragung von reinen Textdateien wird in der Regel der ASCII-Modus verwendet. Bei einer Übertragung im ASCII-Modus wird die Struktur der Textzeilen neu codiert und der Zeichensatz der Datei wird an den Zeichensatz des Zielcomputers angepasst. Im Binary-Modus werden die Daten ohne Änderung byteweise vom Client zum Server oder umgekehrt übertragen. Der Binary-Modus ist der am häufigsten verwendete Übertragungsmodus. Mit dem Binary-Modus können sowohl binäre Daten wie auch Daten im ASCII-Format übertragen werden.
Verbindungsaufbau zum FTP-Server durch den Nutzer
Für die Verbindung zu einem Server über das File Transfer Protocol muss auf dem Server ein FTP-Zugang eingerichtet sein. Die Verbindung erfolgt entweder über einen eigenständigen FTP-Client wie FileZilla, der auf dem Computer des Users installiert wird, einen in verschiedene Browser integrierten FTP-Client oder über einen Dienst wie WebFTP. WebFTP ist ein FTP-Client, auf den über das Internet zugegriffen wird und der den Browser des Users für die Ausführung und Darstellung nutzt.
Screenshot des FTP Interfaces von WebFTP.de
Um eine Verbindung aufbauen zu können, benötigen User die Adresse des FTP-Servers, die Portnummer des FTP-Zugangs sowie den Benutzernamen und das Passwort für den FTP-Zugang. Diese Daten sind notwendig, um sich beim FTP-Zugang einzuloggen. Bei einem eigenständigen Client wie FileZilla müssen die Daten nur einmal in die dafür vorgesehen Felder eingegeben und können dort gespeichert werden. Erfolgt die Verbindung über den im Browser integrierten Client, wird der FTP-Server in der Adresszeile des Browsers adressiert. Die allgemeine Syntax für die Adressierung lautet:
ftp://[ftp_benutzername[:ftp_passwort]@]Servername[:Port]
Bei der Verwendung von WebFTP oder einem anderen webbasierten Client werden für den Login die gleichen Zugangsdaten wie für einen eigenständigen FTP Client wie FileZilla benötigt.
Anonymer FTP Zugang
Bei vielen öffentlichen Servern im Internet können Benutzer ohne eigenes Benutzerkonto über FTP Dateien herunterladen, indem sie sich anonym anmelden. Dies ist oft bei Hochschulservern oder Servern, von denen Open-Source Software heruntergeladen werden kann, möglich. Die Anmeldung erfolgt über ein als "Anonymous" bezeichnetes Benutzerkonto. Die Eingabe eines Passwortes ist meist nicht erforderlich. Bei verschiedenen Servern muss gegebenenfalls die eigene E-Mail-Adresse anstelle eines Passwortes eingegeben werden. Aus Sicherheitsgründen wird bei vielen öffentlichen Servern zumindest die IP-Adresse des Benutzers registriert, um diese bei Regelverstößen gegebenenfalls blockieren zu können.
Weiterführende Links
- https://themanifest.com/development/how-evaluate-your-file-transfer-protocol-system
- https://blog.ipswitch.com/file-transfer-protocol-ftp-managed-file-transfer-mft