Für den Up- und Download von Dateien auf einen Server ist das mittlerweile dreißig Jahre alte FTP-Protokoll immer noch De-facto-Standard - obwohl es sehr unsicher ist: Die gesamte Datenübertragung erfolgt unverschlüsselt, Angreifer müssen sich kaum anstrengen, um alle Passwörter mitzulesen.
Außerdem macht die Art, wie FTP arbeitet, die Konfiguration von Firewalls kompliziert[1]. Das Protokoll benötigt bei der Kommunikation nämlich zwei TCP-Verbindungen. Je nach Modus baut entweder der Server oder der Client eine Verbindung zu einem beliebigen, ausgehandelten Zielport bei der Gegenseite auf. Kommt eine derartige Anfrage zum Verbindungsaufbau bei der Firewall an, muss sie wissen, dass es sich um einen FTP-Transfer handelt.
Als eine sichere und kompatible Alternative zu FTP gibt es FTPS, das im RFC 2228 beschrieben ist[2]. FTPS arbeitet genau wie FTP mit zwei unterschiedlichen TCP-Verbindungen und verschlüsselt alle Daten ähnlich wie HTTPS. FTPS ist allerdings nie über das Stadium eines RFC-Entwurfs hinausgekommen und nur sehr wenige Clients und Server implementieren dieses Protokoll.
Alternativen nicht in Sicht
Die HTTP-Protokollerweiterung WebDAV (RFC 2518,[3]) bietet die Möglichkeit, Dateien auf den Server zu laden und dort direkt zu bearbeiten. Wenn die Kommunikation per TLS/SSL erfolgt, ist auch die Verschlüsselung der Daten gesichert. Der Einsatz von WebDAV hat allerdings einige Nachteile: Beim Apache Webserver unterstützt das Modul keinen Wechsel der User-ID. Daher greifen alle WebDAV-Benutzer mit derselben User-ID auf das Dateisystem zu. Mit Apache und WebDAV ist eine Rechteverwaltung also nicht möglich. Zudem ist für die meisten eingesetzten Webserver in der Regel kein WebDAV-Modul installiert oder passend konfiguriert.
Sicherer Ersatz
Als Ersatz zu FTP bieten sich daher bei Unix-Systemen vor allem die im SSH-Paket mitgelieferten Programme SCP (Secure Copy) und SFTP an. Mit SCP lassen sich Dateien verschlüsselt durch einen SSH-Tunnel transportieren. Die zu kopierenden Dateien gibt der Benutzer über die Kommandozeile an. Das Protokoll SFTP ist nicht zu verwechseln mit FTPS, mit dem es nichts zu tun hat. SFTP benötigt nur eine TCP-Verbindung, da es wie SCP über SSH arbeitet. Es lässt sich allerdings im Gegensatz zu SCP wie ein FTP-Client interaktiv bedienen.
Diese beiden Varianten erfordern auf Server- und auf Client-Seite keine umfangreiche Konfiguration. Ein SSH-Server ist auf vielen Rechnern bereits standardmäßig eingerichtet und die meisten Firewalls lassen SSH-Verbindungen zu. Leider gibt es aber auch bei diesen sicheren Lösungen einige Nachteile:
-
Nicht auf allen Betriebssystemen sind grafische
SCP-Clientprogramme installiert.
-
Die SCP- und SFTP-Programme in den (Open)SSH-Paketen sind
für viele Anwender zu unkomfortabel.
-
SCP setzt einen interaktiven SSH-Zugang voraus. Die
SCP-Benutzer sind daher auch in der Lage, sämtliche
Shellbefehle auszuführen.
-
Die Möglichkeit einer Chroot-Konfiguration, wie sie einige
FTP-Server bieten, beherrscht der SSH-Daemon nicht nativ.
Die Entwicklung von OpenSSH (siehe Artikelserie in[4]) findet primär nur für OpenBSD statt, doch es gibt Portierungen auf viele Systeme, darunter Linux, Cygwin und Mac OS X. Dank des Cygwin-Ports lässt sich OpenSSH auch unter Windows installieren. Für Windows-Clients eignet sich jedoch Putty besser[5]. Neben den OpenSSH-Client-Programmen »scp« und »sftp« gibt es für Linux, Windows und Mac OS X auch grafische Frontends (siehe Kasten "Grafische SCP-Clients"). Die Lizenzen dieser Clients erlauben oftmals eine kostenlose Nutzung.
|
Für SSH unter Linux, Windows und Mac OS X gibt es mehrere grafische Clients. Einige dieser Programme wie Gftp[6] (Abbildung 1) sind im Grunde FTP-Clients, die auch den Zugriff mittels SCP und SFTP beherrschen. Andere wiederum sind reine SCP-Programme, etwa WinSCP[7] für Microsoft Windows. Die Oberflächen unterscheiden sich kaum voneinander. Alle Applikationen zeigen ein zweigeteiltes Fenster (eine Seite für den lokalen und eine für den entfernten Verzeichnisbaum), in dem sich Dateien und Ordner per Drag&Drop hin und her kopieren lassen.
Die Datei-Attribute stellt der Anwender in den meisten Fällen mit einem Klick auf die rechte Maustaste ein. Zusätzlich ist oft noch eine Bookmark- und Passwortverwaltung integriert. Benutzer von WinSCP sollten die aktuelle Version 3 nutzen, da dort etliche Fehler der Vorversion behoben sind. Fehlermeldungen aufgrund eines nicht funktionierenden »groups«-Kommandos auf dem Server lassen sich vermeiden, wenn die Option »lookup user groups« in WinSCP deaktiviert ist. Als Alternative zu WinSCP ist noch der Windows-Client Filezilla[8] zu empfehlen.
KDE-Benutzer haben eine sehr komfortable Möglichkeit, um SCP zu benutzen. Sie geben einfach »fish:// Server« in die Eingabezeile des Konqueror ein und kopieren Dateien, als lägen sie auf der lokalen Festplatte. Unter Mac OS X gibt es das Programm Fugu[9]. Es ist im Quellcode verfügbar und unterstützt FTP, SFTP sowie SCP.
|
Es gibt viele Umgebungen, in denen Nutzer keine Login-Shell bekommen sollten. Bei großen Webspace-Anbietern liegen zum Beispiel Tausende von Webseiten auf einem einzigen Rechner. Voller Shellzugriff könnte fatale Auswirkungen haben, ein solches System ist zudem komplex und aufwändig zu warten.