it-begreifen-podcast-it-manager-ingo-luecker-it-laegue

Die Abkürzung FTP steht für File-Transfer-Protocol und ist die englische Bezeichnung für „Dateiübertragungsprotokoll”. Bei diesem Protokoll handelt es sich genauer gesagt um ein Netzwerkprotokoll, welches den Transfer von Daten zwischen einem Server und Client in einem IP-Netzwerk ermöglicht.

Die ursprüngliche Spezifikation des File-Transfer-Protocol 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. Somit gilt das File-Transfer-Protocol als eines der ältesten Protokolle, die es im Zusammenhang mit dem Internet gibt. 

Das File-Transfer-Protocol dient primär dem Austausch von Dateien zwischen einem Client und einem Server oder der Übertragung zwischen zwei Servern. Hierbei sind mehrere Konstellationen denkbar:

  • vom Server zum Client
  • Client zum Server

und

  • von einem Server zu einem anderen Server. Hier spricht man in der Regel von einem Dateiaustausch mittels des File Exchange Protocols.

Sobald eine FTP-Verbindung hergestellt worden ist, können FTP-User nicht nur Dateien hoch- und herunterladen, sondern auch neue Verzeichnisse anlegen, verändern, auslesen oder löschen. Außerdem können sie Dateien umbenennen, verschieben und löschen. Zudem ermöglicht das File Transfer Protocol die Berechtigungsverwaltung für Dateien. Sprich, man kann festlegen, ob gespeicherte Dateien nur vom Besitzer, von einer bestimmten Gruppe oder von der Öffentlichkeit gelesen, geändert oder ausgeführt werden dürfen.

Aber lassen Sie mich die Dateiübertragung mittels des File Transfer Protokolls noch etwas näher erklären.

Um einen FTP-Server zu erreichen, ist zunächst einmal der Verbindungsaufbau durch eine Benutzerauthentifizierung und einen FTP-Client notwendig. Beim FTP-Client handelt es sich um eine Software, die in den meisten Betriebssystemen standardmäßig integriert ist und welches das FTP-Protokoll zur Übertragung von Dateien nutzt.

Ein FTP-Verbindungsaufbau sieht vor, dass das FTP zwei separate Verbindungen zwischen Client und Server herstellt. Eine Verbindung ist der Steuerkanal über den TCP-Port 21. Dieser Kanal dient ausschließlich zur Übertragung von FTP-Befehlen, auch Kommandos genannt und deren Antworten. Die zweite Verbindung ist der Datenkanal über den TCP-Port 20. Dieser Kanal dient ausschließlich zur Übertragung von Daten.

Im ersten Schritt wird also der Steuerkanal vom FTP-Client zum FTP-Server aufgebaut. Steht der Steuerkanal werden sowohl Befehle des Clients zum Server gesendet als auch die Antworten des Servers zum Client übertragen. Im zweiten Schritt wird Datenverbindung vom FTP-Server zum FTP-Client initiiert, um die Daten auszutauschen, wie es in den Kommandos festgelegt wurde. Sobald die Dateiübertragungen abgeschlossen sind, werden die Verbindungen vom Benutzer oder vom Server (Timeout) beendet.

Grundsätzlich gibt es zwei unterschiedliche Herangehensweisen, einen Datei-Transfer zwischen Client und Server zu initialisieren: den aktiven und den passiven Verbindungs-Modus.

Beiden gemein ist, dass zuerst eine Steuerverbindung aufgebaut wird, über die FTP-Kommandos gesendet werden, und anschließend zum Datentransfer eine Datenverbindung aufgebaut wird.

Der Unterschied liegt darin, wer diese Verbindungen aufbaut – Client oder Server. Im Detail läuft das folgendermaßen ab:

  • Beim aktiven Verbindungsmodus reserviert der Client 2 TCP-Ports. Über den ersten Port baut er die Steuerverbindung zu Port 21 des Servers auf und teilt dem Server die 2. Port-Nummer mit, auf welchem der Client die Daten erwartet.
  • Beim passiven Verbindungsmodus reserviert der Client 2 TCP-Ports zur eigenen Verwendung und baut über den ersten Port die Steuerverbindung zu Port 21 des Servers auf. Da eine passive Verbindung gewünscht ist, sendet der Client aus dem angesprochenen FTP-Befehlssatz das Kommando PASV. Damit weiß der Server: Eine passive Verbindung ist erwünscht, woraufhin er für sich einen TCP-Port für den Datentransfer reserviert und diesen Port dem Client mitteilt.

Neben dem aktiven und dem passive Verbindungs-Modus kennt das FTP zwei verschiedene Übertragungsmodi: Den ASCII-Modus und den Binary-Modus, wobei sich die beiden Modi in der Art der Codierung unterscheiden.

  • Der ASCII-Modus wird zur Übertragung von reinen Text-Dateien verwendet. Hier muss die Zeilenstruktur des Textes umcodiert werden. Bei diesem Vorgang wird der Zeichensatz dieser Datei an das Zielsystem angepasst.
  • Der Binary-Modus hingegen überträgt die Dateien byteweise ohne die Daten zu ändern. Dieser Modus wird am häufigsten genutzt. Vorzugsweise natürlich bei Binär-Dateien.

Außerdem bieten viele FTP-Server, vor allem Server von Universitäten ein sogenanntes Anonymous FTP an. 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.

Bevor wir nun zum Ende unseres heutigen Podcast kommen, möchte Ihnen kurz die Begriffe FTPS und SFTP erläutern und vor allem warum sie zum Einsatz kommen.

Zunächst einmal müssen Sie wissen, obwohl ein -User zum FTP-Verbindungsaufbau stets ein Kennwort und Passwort eingeben muss, erfolgt die Übertragung von Dateien zwischen Client und Server immer unverschlüsselt. Das bedeutet, dass mit etwas Know-How und den richtigen Tools die gesamte Kommunikation einfach abgehört und auch verändert werden kann. Daher kann bei einer FTP-Verbindung kein Datenschutz oder und ein Schutz der Datenintegrität gewährleistet werden.

Um die Sicherheitsprobleme des FTPs zu umgehen hat man nun zwei Möglichkeiten: den Einsatz von SFTP oder FTPS.

  • FTPS erweitert das FTP-Protokoll um eine SSL-Verschlüsselung. Da FTPS aber auch unsichere Verbindungen auf FTP-Basis ermöglicht, ist es nicht unbedingt das sicherste Protokoll.
  • Im Gegensatz dazu basiert SFTP auf einem neueren Protokoll: SSH (Secure Shell). Dabei werden sämtliche Verbindungen verschlüsselt über einen zuverlässigen Kanal übermittelt. Eine unverschlüsselte Verbindung ist mit SSH somit ausgeschlossen.

Kontakt: Ingo Lücker, ingo.luecker@itleague.de