Als das Internet noch in den Kinderschuhen steckte, aber bereits Computernetze existierten, bestand die Notwendigkeit, Dateien von einem Computer zum anderen zu übertragen. 1971 waren die Datenverbindungen noch nicht so zuverlässig (und nicht so schnell) wie heute, so dass man ein Hilfsmittel brauchte, um Dokumente über eine größere Entfernung miteinander auszutauschen. Benutzerfreundlichkeit und Zuverlässigkeit beim Senden und Empfangen waren die wichtigsten Anforderungen. Das FTP-Protokoll war ein solches Werkzeug.
Wie es funktioniert
FTP steht für File Transfer Protocol. Es unterscheidet sich von anderen Protokollen dadurch, dass bei einer Übertragung ein Fehler auftritt, der Prozess angehalten und dem Benutzer eine Meldung angezeigt wird. Wenn kein Fehler auftritt, hat der Benutzer die korrekte Datei erhalten, unversehrt und ohne fehlende Elemente. Mit dem FTP-Protokoll können Sie alles herunterladen: Filme, Musik, Dokumente, Software, Treiber und Bilder. Viele Hardware-Hersteller laden jetzt Gerätetreiber auf FTP-Server hoch, die jeder herunterladen kann. In einer Unternehmensumgebung wird FTP verwendet, um die lokale Speicherung von internen Dokumenten und Dateien für die Arbeit zu organisieren. Dort können zum Beispiel Videovorträge oder archivierte Dokumentenscans gespeichert werden. FTP ermöglicht es Ihnen auch, Ihre Dateien auf einen Server hochzuladen, damit jeder sie herunterladen kann.
Programmierer verwenden diese Server manchmal für den Dateiaustausch und die Codesicherung, obwohl viele Leute GIT bevorzugen. Über GIT werden wir gesondert sprechen.
Client und Server
FTP erfordert zwei Dinge: einen FTP-Server und einen FTP-Client. Was der Server macht:
- bietet Zugang zu den erforderlichen Dateien mit Login und Passwort;
- zeigt dem Benutzer nur die Dateien und Ordner an, die er anzeigen oder in die er herunterladen kann;
- überwacht die Qualität der Übertragung und stellt sicher, dass es keine Fehler gibt;
- verwaltet die Verbindungseinstellungen im passiven Modus.
Da FTP noch aus der Zeit der UNIX-Systeme stammt, sind für jede Verbindung ein Login und ein Passwort erforderlich. Wenn ein Benutzer keine hat, wird er vom Server nicht durchgelassen. Um jedoch Dateien für alle zugänglich zu machen, wird ein anonymer Modus verwendet. Hier ist das Login das Wort anonymous und das Passwort eine beliebige E-Mail Adresse. Moderne Browser wissen, wie sie auf anonyme FTP-Server zugreifen und Ihre E-Mails ersetzen können. Von außen sieht es so aus, als gäbe es kein Login und kein Passwort, aber es gibt eines. Wenn der FTP-Server gestartet wird, erhält er die Nachricht: “Lieber Server, hier ist die Liste der Dateien und Ordner, die auf dem Server angezeigt werden sollen. Wenn ein Benutzer mit diesem Login und Passwort bei Ihnen anklopft, zeigen Sie ihm alles, und wenn er dieses Login hat, geben Sie ihm nur diesen Ordner. Anonyme Namen sind nicht erlaubt. Ein weiterer obligatorischer Parameter ist die Serveradresse und der Port, über den die Dateien übertragen werden. Um eine Verbindung zu einem Server herzustellen, benötigen Sie ein spezielles Programm, das auch FTP-Client genannt wird. Viele Clients sind für jedes Betriebssystem verfügbar, z.B. FileZilla oder CuteFTP. Diejenigen, die mit Linux-ähnlichen Systemen arbeiten, verwenden häufig die Befehlszeile.
Diese Anordnung wird häufig beim Shared Hosting verwendet, wenn Sie auf den Inhalt einer Website zugreifen oder Konfigurationsdateien ändern müssen.
Was ist der Sinn der Sache?
Und es scheint – was verhindert die Übertragung von Dateien, wie üblich, durch Websites über HTTP? Es gibt zahlreiche Websites und Foren, auf denen Dateien zu finden sind und leicht heruntergeladen werden können. Der Unterschied ist der folgende:
- Für FTP benötigen Sie keine Website, d. h. keine Weboberfläche. Sie brauchen keinen Webserver zu betreiben, keine Vorlagen für die Ausgabe von Dateilisten zu konfigurieren und kein separates Programm zu starten, das uns diese Dateien liefert (wie WordPress). FTP ist wie der Zugriff auf einen entfernten Ordner: Sie sehen die Dateien sofort und können sie ohne Zwischenhändler herunterladen. Andererseits benötigen Sie eine Art Programm, das das Dateisystem für Sie “zeichnet” und eine Verknüpfung zu den Dateien herstellt.
- FTP implementiert bereits Autorisierungs- und Rechteprobleme. Auf der anderen Seite müssen Sie sie im Web erstellen: Sie können zum Beispiel das gleiche WordPress installieren und Plug-ins mit dem Zugangssystem anhängen. Oder Apache einzurichten, Zugriffsschlüssel zu generieren, Konfigurationsdateien in Ordnern anzuordnen, ist viel weniger elegant als FTP einzurichten.
- In FTP können Sie einzelnen Benutzern das Hochladen von Dateien auf einen FTP-Server erlauben oder verbieten. Im Internet ist das Hochladen von Dateien vom Benutzer auf den Server um eine Größenordnung komplizierter.
Anfälligkeit und Zuverlässigkeit
Das FTP-Protokoll selbst ist sicher und liefert garantiert die vom Benutzer gewünschten Dateien, solange die Verbindung in Ordnung ist. Das Problem besteht darin, dass das Protokoll von Anfang an unsicher ist und man davon ausgeht, dass der Übertragungskanal immer sicher ist. Deshalb überträgt FTP alles im Klartext: Dateien, Kennwörter, Benutzernamen und alle Daten. Die Standardannahme ist nun, dass jeder Kanal unsicher ist und dass die Daten ebenfalls verschlüsselt werden müssen. FTP unterstützt dies nicht. Wenn jemand Ihren Wi-Fi-Verkehr abfängt oder eine Verbindung zu Ihrem lokalen Netzwerk herstellt, kann er all diese Daten erfassen und parallel zu Ihnen auf sich selbst herunterladen. Ein weiteres Problem ist die Anmeldesicherheit: Das FTP-Protokoll bietet standardmäßig keinen Schutz vor Brute-Force-Passwörtern und Anmeldeversuchen, so dass jemand die verfügbaren Passwörter einfach aushebeln könnte, um Zugang zu den Ordnern zu erhalten. Wenn Sie in Hacker-Filmen gesehen haben, wie sie beim Einloggen Passwörter mit roher Gewalt erzwingen, ist dies eine wahrscheinliche Situation für FTP. Im Hinblick auf moderne Sicherheit ist die richtige Lösung, eine der verschlüsselten FTP-Implementierungen (FTPS, SFTP) zu verwenden oder FTP über VPN zu nutzen.