Login
Newsletter
Werbung

Do, 1. Mai 2014, 12:00

Daten über verschlüsseltes FTP senden

Das Protokoll FTP ist zum Übertragen von Dateien unschlagbar schnell, dafür aber völlig unverschlüsselt. FTP plus SSL/TLS schafft als FTPS sichere Übertragungswege.

Was im eigenen lokalen Netzwerk oder im VPN über die Leitung geht, ist vor fremden Augen sicher. Eine Verschlüsselung von Anmeldedaten ist selten nötig, solange alle anderen Netzwerk-Clients vertrauenswürdig sind. Ganz anders sieht es aus, wenn die Daten über eine Internetverbindung oder zunächst über ein öffentliches LAN/WLAN gehen: Im öffentlichen Netzwerk kann jeder andere Teilnehmer unverschlüsselten Netzwerk-Traffic über Tools wie Wireshark mitschneiden und Anmeldedaten im Klartext lesen. Und auch die Vorstellung, dass Nachrichtendienste die Möglichkeit haben, Daten im großen Stil direkt an den Internet Exchange Points (IX) abzugreifen, ist keine angenehme Vorstellung – trotz aller Beteuerungen, dass diese Überwachung nur dem allgemeinen Wohl dient. Paranoia hat Hochkonjunktur, nur schien sie selten so angebracht zu sein wie jetzt. Sicher verschlüsselnde Protokolle sind eine Antwort auf die rhetorische Frage, wie sicher übertragene Daten im Internet und in öffentlichen Netzwerken sind.

Was FTPS anders macht

FTP hat sich seit der Entstehung des Internets als einfaches Client-Server-Protokoll für Dateioperationen gehalten. Es erlaubt eine Benutzeranmeldung mit Namen und Passwort sowie eine anonyme Nutzung ohne eindeutiges Login. Eine weitere Besonderheit ist, dass es einen aktiven und passiven Modus unterstützt: Im aktiven Modus initiiert der Client über TCP zum Server eine Verbindung auf dem dortigen Port 21, die zur Übertragung der Kontrollbefehle dient. Zur eigentlichen Datenübertragung baut der Server zum Client einen Rückkanal auf. Da dies nicht immer funktioniert, weil der Client etwa hinter einer Firewall sitzt, gibt es auch passives FTP. Dazu laufen Kontroll- und Datenverbindungen auf einem einzigen Port zum Server, und der Client braucht keine eingehenden Verbindungen zu akzeptieren. FTPS behält dieses Konzept bei, nur mit dem Unterschied, dass die Kanäle wie bei HTTPS mit einem Public-Key-Verfahren über TLS (Transport Layer Security) oder dem älteren SSL (Secure Socket Layer) verschlüsselt werden.

Zertifikat selbst gemacht: Für SSL/TLS brauchen Sie keine kostenpflichtige CA. Auf dem eigenen Server genügt ein selbst signiertes Zertifikat, das Sie sich auf diesem Weg ausstellen

David Wolski

Zertifikat selbst gemacht: Für SSL/TLS brauchen Sie keine kostenpflichtige CA. Auf dem eigenen Server genügt ein selbst signiertes Zertifikat, das Sie sich auf diesem Weg ausstellen

Vorbereitung: Die Zertifikate erstellen

Die Zertifikate für TSL/SSL sind die gleichen wie bei Webservern, und es gelten dieselben Anforderungen: Im Falle eines öffentlichen Hosts, der bereits über ein CT-Signiertes Zertifikat verfügt, kann das gleiche Zertifikat zum Einsatz kommen. Auch selbst signierte Zertifikate sind völlig in Ordnung – vorausgesetzt, es werden nur sichere Verschlüsselungsmethoden verwendet. Nicht alle Methoden gelten als sicher, so etwa RC4, RC2. Ein selbst signiertes Zertifikat kann auf dem FTP-Server mit OpenSSL erstellt werden, das bei den meisten Distributionen vorinstalliert ist. In Debian und Ubuntu wird es, falls noch nicht vorhanden, als root oder mit vorangestelltem sudo mittels sudo apt-get install openssl installiert. Ein guter Speicherort für SSL-Zertifikate ist das Verzeichnis /etc/ssl/certs/, das auf vielen Distributionen bereits besteht.

Führen Sie folgenden Befehl mit root-Rechten beziehungsweise sudo aus.

/usr/bin/openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout \ /etc/ssl/certs/ftps.pem -out /etc/ssl/certs/ftps.pem

Damit erstellen Sie ein selbst signiertes Schlüsselpaar, bei dem das lokale System gleichzeitig als CA fungiert (Zertifizierungsstelle, Certification Authority). Die Rückfragen können Sie beliebig ausfüllen, nur den Host-Namen (FQDN) müssen Sie korrekt angeben. Bei Servern im Internet ist dies der Domain-Name, im LAN einfach der selbst vergebene Rechnername.

FTPS mit dem Server vsftpd

Nun fehlt noch ein FTP-Server, der Verschlüsselung nach SSL/TLS unterstützt. Ein empfehlenswerter und weit verbreiteter FTP-Server für Linux ist vsftpd. Dieser benötigt für FTPS nur eine kleine Anpassung der Konfiguration. Falls das Programm noch nicht installiert ist, finden Sie das Paket als »vsftpd« in den Paketquellen aller wichtigen Linux-Distributionen. Nach der Installation bearbeiten Sie die Konfigurationsdatei /etc/vsftpd.conf mit root-Rechten und schalten dort mit der Zeile

ssl_enable=YES

SSL/TLS ein. Ferner machen Sie mit

force_local_logins_ssl=YES
force_local_data_ssl=YES

die Verschlüsselung für alle nicht-anonymen Anmeldungen und für die Datenübertragung verbindlich. Als Nächstes definieren Sie mit

ssl_sslv2=NO
ssl_sslv3=NO
ssl_tlsv1=YES
ssl_ciphers=HIGH

die erlaubten SSL/TLS-Versionen, wobei in diesem Beispiel nur noch das neuere TLS 1.0 zum Einsatz kommt. Schließlich fehlt noch die Angabe des vorher mit Open SSL erzeugten Schlüssels:

rsa_cert_file=/etc/ssl/certs/ftps.pem

Damit die geänderte Konfiguration aktiv wird, starten Sie vsftpd anschließend neu. Unter Debian/Ubuntu verwenden Sie dafür als root oder mit sudo folgendes Kommando:

/etc/init.d/vsftpd restart

Um die FTPS-Verbindung zu testen, ist unter Linux, Windows und Mac OS X das freie Programm Filezilla bestens geeignet.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung