File Transfer Protocol

Netzwerkprotokoll zur Dateiübertragung über TCP/IP
FTP (File Transfer Protocol)
Familie: Internetprotokollfamilie
Einsatzgebiet: Datenübertragung,
Dateiverwaltung
Ports: 20/TCP DATA Port,
21/TCP Control Port
FTP im TCP/IP-Protokollstapel:
Anwendung FTP
Transport TCP
Internet IP (IPv4, IPv6)
Netzzugang Ethernet Token
Bus
Token
Ring
FDDI
Standards: RFC 354 (1972),[1]
RFC 959[2] / STD 9 (1985)

Das File Transfer Protocol [fʌɪl trɑːnsˌfəˌprəʊtəkɒl] (FTP, englisch für „Dateiübertragungsprotokoll“) ist ein Netzwerkprotokoll zur Übertragung von Dateien über IP-Netzwerke. FTP ist im RFC 959[2] von 1985 spezifiziert, zustandsbehaftet und in der Anwendungsschicht (Schicht 7) des OSI-Schichtenmodells angesiedelt. Es wird benutzt, um Dateien vom Client zum Server hochzuladen, vom Server zum Client herunterzuladen oder clientgesteuert zwischen zwei Servern zu übertragen (File eXchange Protocol). Außerdem können mit FTP Verzeichnisse angelegt sowie Verzeichnisse und Dateien umbenannt oder gelöscht werden.

Foto des ersten FTP-Transfers von der Amundsen-Scott Research Base (Südpol 1994)
Active Mode (Aktives FTP): Der Client sendet eine Anfrage auf Port 21; die Datenübertragung erfolgt über Port 20. In dem Beispiel sendet der Server die Datenpakete zum ursprünglichen Rückgabeport des Clients. Es ist aber auch möglich, dass der Client dem Server dafür einen anderen Port übermittelt, an den die Daten geschickt werden sollen.
Illustration eines passiven Verbindungsaufbaus über Port 21

Das FTP verwendet für die Steuerung und Datenübertragung jeweils separate Verbindungen: Eine FTP-Sitzung beginnt, indem vom Client zum Control Port des Servers (der Standard-Port dafür ist Port 21) eine TCP-Verbindung aufgebaut wird. Über diese Verbindung werden Befehle zum Server gesendet. Der Server antwortet auf jeden Befehl mit einem Statuscode, oft mit einem angehängten, erklärenden Text. Die meisten Befehle sind allerdings erst nach einer erfolgreichen Authentifizierung zulässig.

Verbindungsarten

Bearbeiten

Zum Senden und Empfangen von Dateien sowie zur Übertragung von Verzeichnislisten wird pro Vorgang jeweils eine separate TCP-Verbindung verwendet. FTP kennt für den Aufbau solcher Verbindungen zwei Modi:[3]

Aktives FTP

Bearbeiten

Beim aktiven FTP (auch „Active Mode“) öffnet der Client einen zufälligen Port und teilt dem Server diesen sowie die eigene IP-Adresse mittels des PORT- oder des EPRT-Kommandos mit. Dies ist typischerweise ein Port des Clients, der jenseits von 1023 liegt, kann aber auch ein anderer Server sein, der seinerseits in den Passive Mode geschaltet wurde, also auf eine Verbindung wartet (sogenanntes FXP). Heutzutage ist FXP jedoch bei den meisten FTP-Servern aus Sicherheitsgründen standardmäßig deaktiviert.[4][5] Die Datenübertragung auf der Server-Seite erfolgt dabei über Port 20. Die Kommunikation mit Befehlen erfolgt ausschließlich auf dem Control Port. Man spricht auch von der Steuerung „Out of Band“. Somit bleibt es möglich, dass während der Datenübertragung die Partner noch immer miteinander kommunizieren können.

Passives FTP

Bearbeiten

Beim passiven FTP (auch „Passive Mode“) sendet der Client ein PASV- oder ein EPSV-Kommando, der Server öffnet einen Port und übermittelt diesen mitsamt IP-Adresse an den Client. Hier wird auf der Client-Seite ein Port jenseits 1023 verwendet und auf der Server-Seite der vorher an den Client übermittelte Port. Diese Technik wird eingesetzt, wenn der Server keine Verbindung zum Client aufbauen kann. Dies ist beispielsweise der Fall, wenn der Client sich hinter einem Router befindet, der die Adresse des Clients mittels NAT umschreibt, oder wenn eine Firewall das Netzwerk des Clients vor Zugriffen von außen abschirmt. Die Firewall erlaubt in diesem Fall die Datenverbindung, weil sie ihren Ursprung innerhalb der geschützten Zone hat.

Öffentliche FTP-Server

Bearbeiten

Viele FTP-Server, vor allem Server von Universitäten, Fachhochschulen und Mirrors, bieten sogenanntes Anonymous FTP an. Solche FTP-Server werden auch als Pub (von englisch public ‚öffentlich‘) bezeichnet. Hier ist zum Einloggen neben den realen Benutzerkonten ein spezielles Benutzerkonto, typischerweise „anonymous“ und/oder „ftp“, vorgesehen, für das kein (oder ein beliebiges) Passwort angegeben werden muss. Früher gehörte es zum „guten Ton“, bei anonymem FTP seine eigene, gültige E-Mail-Adresse als Passwort anzugeben. Die meisten Webbrowser tun dies heute nicht mehr, da es aus Spamschutz-Gründen nicht zu empfehlen ist.

FTP-Client

Bearbeiten

Für die Datenübertragung benötigt der Benutzer einen sogenannten FTP-Client, den es in unterschiedlichen Varianten gibt:

Webbrowser

Bearbeiten

In einigen Webbrowsern war früher ein FTP-Client integriert. Für die Adressierung eines Servers wurde ein URL-Schema verwendet, das im Request for Comments RFC 1738[6] standardisiert wurde: ftp://[Benutzername[:Passwort]@]Servername[:Port]/Verzeichnispfad/Dateiname

Für die Browser Google Chrome und Firefox ist die FTP-Unterstützung inzwischen standardmäßig deaktiviert und wurde schrittweise abgebaut. Als Grund gaben die Browser-Hersteller an, dass das Protokoll veraltet und unsicher ist.[7] Damit sinkt die Bedeutung von FTP, so auch für den Zweck Öffentlicher FTP-Server.

WebFTP ist ein von Webservern angebotener Dienst, der den Zugriff auf FTP-Server über eine HTTP-basierte Webanwendung ermöglicht. Die Darstellung erfolgt dabei innerhalb eines Webbrowsers. Hierbei entfällt die Installation einer Client-Software auf dem Rechner des Anwenders oder kann bequemer sein als eventuell vorhandene Bordmittel des Betriebssystems.

Terminal

Bearbeiten

Die ursprünglichste Form der Benutzung von FTP ist über die Kommandozeile. Viele Betriebssysteme, die einen Terminal-Client anbieten, unterstützen auch FTP-Kommandos.

Dateimanager

Bearbeiten

Einige Dateimanager von Betriebssystemen, wie etwa der Windows Explorer, bieten auch eine Unterstützung von FTP. Über Zusatztools wie etwa WebDrive lässt sich ein FTP-Server auch als lokales Laufwerk (bzw. Laufwerksbuchstaben unter Microsoft Windows) einbinden.

Von Drittanbietern gibt es populäre Dateimanager mit größerem Funktionsumfang, wie etwa der freie WinSCP oder Shareware-Dateimanager Total Commander, zu denen typischerweise eine zweispaltige Ansicht inklusive Vergleich von FTP-Server und lokalem Verzeichnis gehört.

Spezialprogramme

Bearbeiten

Ein typischer Vertreter eines reinen FTP-Clients ist FileZilla. Im vollautomatischen Masseneinsatz im Unternehmen werden Integrationslösungen eingesetzt, die im Regelfall auch FTP beherrschen.

Sonstige

Bearbeiten

Daneben gibt es weitere Softwareprogramme die einen FTP-Client integriert haben wie etwa HTML-Editoren.

FTP-Server

Bearbeiten

PureFTPd und ProFTPD sind kostenfreie FTP-Server-Implementationen. Auch FileZilla bietet als FileZilla Server eine Server-Implementation an. Kommerzielle FTP-Serversoftware sind beispielsweise Titan FTP Server und WS FTP Server.[8]

Sicherheit und Alternativen

Bearbeiten

FTP ist ein sehr altes Protokoll, das keinerlei kryptografische Sicherheitsalgorithmen nutzt. Für bestimmte Einsatzzwecke kann das ausreichend oder sinnvoll sein, beispielsweise für maximale Kompatibilität. Wenn Verschlüsselung und Authentifizierung nach dem Stand der Technik gesichert sein müssen, dann gibt es drei Weiterentwicklungen von FTP:

Die theoretische Kombination „FTP over SSH“ (FTP über SSH-Tunnel) wurde aufgrund von Praxisproblemen durch SSH File Transfer Protocol (SFTP) verdrängt.[9]

Normen und Standards

Bearbeiten

FTP ist als Request for Comments (RFC) standardisiert. Die erste Version war RFC 114[10] aus dem Jahr 1971. Nachfolgend diejenigen Versionen die kompatibel sind mit dem heutigen Internet:

  • Jon Postel: RFC 765 – File Transfer Protocol. Juni 1980 (englisch).
  • J. Postel, J. Reynolds: RFC 959 – File Transfer Protocol. Oktober 1985 (löst RFC 765 ab, englisch).
    • S. Bellovin: RFC 1579 – Firewall-Friendly FTP. Februar 1994 (englisch).
    • M. Horowitz, S. Lunt: RFC 2228 – FTP Security Extensions. Oktober 1997 (englisch).
    • M. Allman, S. Ostermann, C. Metz: RFC 2428 – FTP Extensions for IPv6 and NATs. September 1998 (englisch).
    • B. Curtin: RFC 2640 – Internationalization of the File Transfer Protocol. Juli 1999 (englisch).

Siehe auch

Bearbeiten
Bearbeiten
Commons: File Transfer Protocol – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

Bearbeiten
  1. RFC 354 – The File Transfer Protocol. 8. Juli 1972 (englisch).
  2. a b RFC 959 – File Transfer Protocol. Oktober 1985 (löst RFC 765 ab, englisch).
  3. Active FTP vs. Passive FTP, a Definitive Explanation. In: slacksite.com. Abgerufen am 25. September 2018 (englisch).
    Artikel in Anlehnung an „Active FTP vs. Passive FTP, a Definitive Explanation“. In: alenfelder.com. Abgerufen am 25. September 2018.
  4. FXP: The Good, The Bad, and The Ugly. internetblog.org.uk
  5. ProFTPD and FXP Webseite von ProFTPD. Abschnitt FTP Bounce Attacks; abgerufen am 25. März 2016.
  6. RFC 1738 – Uniform Resource Locators (URL). Dezember 1994 (englisch).
  7. Daniel Berger: Firefox bald ohne FTP-Support. In: heise online. 23. März 2020, abgerufen am 13. Juli 2020.
  8. 4 Popular FTP Servers Reviewed. techwensch.com
  9. Oliver Müller: Datenschieberei. Sicherer Datenaustausch mit z/OS (II). In: iX. Nr. 10, 2009, S. 150–154 (heise.de [abgerufen am 1. Oktober 2021]). „Wegen der FTP-Struktur lassen sich Verbindungen nur mit einigem Aufwand mit SSH-Tunneln absichern“ (S. 151)
  10. RFC 114 – A File Transfer Protocol. 16. April 1971 (englisch).