|
|||||||||||||||
Burn, FTP, burn!Dieser Artikel ist im original auf www.pro-linux.de/t_netzwerk/burn-ftp-burn.html erschienen. Vielen Dank an die Autoren Sven Höxter und Stephan Rottmann EinleitungIch verstehe wirklich nicht, warum FTP jenseits von Anonymous FTP-Servern überhaupt noch verwendet wird, da es mindestens eineinhalb lebendige und verschlüsselte Alternativen gibt. Die »ganze« Alternative, die ich sehe ist, FTPS (beschrieben in RFC 2228), die halbe ist das SSH-Subsystem SFTP. Ich zähle SFTP nur als eine halbe Alternative, da es einige Nachteile gegenüber FTPS aufweist. Dieser Artikel versucht zu erklären, warum ich eine Lösung mit FTPS einer mit SFTP vorziehe und wie man mit Proftpd einen FTPS-Server installiert und konfiguriert. Außerdem erwähne ich natürlich passende Clients, damit der Server auch genutzt werden kann. FTPS vs. SFTPDer wohl größte Unterschied zwischen FTPS und SFTP ist, dass FTPS als TLS-Erweiterung für FTP entwickelt wurde, während SFTP als SSH-Subsystem nur einen FTP-ähnlichen Service zur Verfügung stellt, der auf das SSH-Protokoll aufsetzt. Der große Vorteil von SFTP ist, dass es sich einfacher durch NAT-Gateways hindurch verwenden läßt als FTPS. SFTP hat aber auch einige Nachteile:
Proftpd ermöglicht mit seinen vielfältigen Modulen die Nutzung von LDAP oder einer SQL-Datenbank zur Authentifizierung und besitzt standardmäßig eine chroot-Funktion mit integriertem ls-Support und vieles mehr. Clientseitig gibt es mehr FTP-Programme, die FTPS implementiert haben als SFTP. Kommandozeilenliebhaber finden mit lftp ein sehr komfortables Clientprogramm (sowohl für FTPS wie auch SFTP - vorausgesetzt, man möchte unbedingt SFTP verwenden), GUI-Nutzer können z.B. kasablanca verwenden. Auch wenn ich selbst kein Windows verwende, möchte ich an dieser Stelle kurz erwähnen, das es auch für Windows eine Reihe FTP-Programme gibt, die FTPS implementiert haben: SmartFTP, FlashFXP, WS_FTP Pro und noch einige andere.
3) Installation von Proftpd mit mod_tlsDie meisten aktuellen Linux Distributionen haben Proftpd bereits paketiert und mit mod_tls übersetzt. Um herauszufinden, ob die eigene Proftpd-Version mit mod_tls übersetzt wurde oder nicht, wird Proftpd auf der Kommandozeile mit dem Parameter -l aufgerufen.
~$ /usr/sbin/proftpd -l Compiled-in modules: mod_core.c ... mod_tls.c ...
Für alle anderen hier der kurze Weg, um Proftpd 1.2.10 aus dem Quellcode mit mod_tls zu übersetzen:
Die resultierende Binärdatei proftpd sollte sich jetzt in /usr/local/sbin befinden und das Modul mod_tls enthalten. Wer genug Geld hat, kann sich z.B. bei Thawte oder anderen sein SSL-Zertifikat signieren lassen, aber ich denke mal, das ist für die meisten User nicht erschwinglich und für den kleinen FTP-Server zu Hause auch übertrieben. Hier also der kurze Weg, um sich ein selbst signiertes Zertifikat zu erstellen. Wichtig: In dem Feld für CN (common name) muss der FQDN eingetragen werden. In meinem Fall ist dies voyager.home.hoaxter.de.
# cd /usr/local/etc # mkdir ftpcert # openssl genrsa 1024 > host.key # chmod 400 host.key # openssl req -new -x509 -nodes -sha1 -days 365 -key host.key > host.cert
Eine andere Alternative ist es, eine eigene CA einzurichten und mit diesen Keys zu signieren. Eine detailliertere Beschreibung dazu findet sich in der Apache mod_ssl FAQ. Jetzt ist nur noch die Proftpd-Konfiguration, in unserem Fall die Datei /usr/local/etc/proftpd.conf, mit dem bevorzugten Editor anzupassen. Eine sehr minimalistische Version der Konfiguration sieht in etwa so aus:
# cat /usr/local/etc/proftpd.conf ServerName "ProFTPD mod_tls Demo" ServerType standalone DefaultServer on Port 21 Umask 022 MaxInstances 30 User nobody Group nogroup DefaultRoot ~ AllowOverwrite on
# TLS <IfModule mod_tls.c> TLSEngine on TLSLog /var/log/proftpd/proftpd_tls.log TLSProtocol TLSv1 TLSRequired off TLSVerifyClient off TLSRSACertificateFile /usr/local/etc/ftpcert/host.cert TLSRSACertificateKeyFile /usr/local/etc/ftpcert/host.key </IfModule>
Detaillierte Informationen zur Konfiguration des Proftpd-Servers finden sich auf der Proftpd-Homepage www.proftpd.org und auf TJs privater Proftpd-Internetseite www.castaglia.org/proftpd/. Unser neuer Proftpd Server ist nun bereit, uns Dateien über FTPS anzubieten. |
|||||||||||||||