Maksim Kabakou - Fotolia
Einen eigenen FTP-Server sicher einrichten
Auch in Zeiten der Cloud und vielfältiger Online-Dienste haben FTP-Server nicht ausgedient. Wir zeigen Ihnen, wie Sie Ihren eigenen Server auf Linux-Basis einrichten und absichern.
FTP-Server können auf zwei Arten zu einem Problem werden: Zum einen können Informationen von einem unsicheren FTP-Server in fremde Hände gelangen, zum anderen können schädliche Daten auf den Server hochgeladen werden, die dann für Chaos in der Infrastruktur sorgen. Glücklicherweise gibt es mehrere relativ einfach durchzuführende Schritte, um den Server abzusichern, um die Login-Prozeduren zu verbessern und um die Zugriffsrechte zu ordnen.
Im besten Fall wird Ihr FTP-Server während eines Hacker-Angriffs nur als eine Quelle für illegale Waren (Raubkopien) missbraucht. Im schlechtesten Fall entsteht durch die Attacke eine Hintertür in Ihr Rechenzentrum, über die Ihre bestehenden Sicherheitsmaßnahmen umgangen werden können.
Wenn Sie sich dazu entscheiden, ganz von vorne anzufangen, wenn es um die Absicherung Ihres FTP-Servers geht, dann installieren Sie zuerst den als sehr sicher geltenden VSFTPD (Very Secure File Transfer Protocol Dämon) mit einem der folgenden Distributions-abhängigen Befehle:
sudo apt-get install vsftpd (Ubuntu)
sudo yum install vsftpd (Red Hat)
Hinweis: Je nachdem, welche Linux-Variante Sie nutzen, findet sich die Konfigurationsdatei von VSFTPD an einer anderen Stelle. Auch die zur Verfügung stehenden Optionen unterscheiden sich abhängig vom verwendeten Betriebssystem und dem Speicherort der Dateien.
Besonders empfehlenswert ist das Aktivieren der Verschlüsselung für alle übertragenen Dateien. So verhindern Sie, dass Daten unterwegs mitgelesen werden können. Normalerweise werden die für FTP verwendeten Passwörter unverschlüsselt übertragen, das ist natürlich keine sichere Methode. Auch deswegen ist es äußerst wichtig, die Verschlüsselung für alle Datenübertragungen zu aktivieren, bevor Sie die Konfiguration weiter anpassen. Darüber hinaus benötigen Sie ein sicheres Passwort und die Möglichkeit, es auch auf Betriebssystemebene zu verwenden.
Nach der Verschlüsselung der Datenübertragungen gibt es verschiedene Einstellungen wie Logins, Verzeichnisse und Traffic-Filter, die Sie kontrollieren sollten, um Ihren Server weiter abzusichern. Für die folgenden Schritte verwenden wir VSFTPD auf einem Ubuntu-System.
Absichern des FTP-Servers durch Beschränkungen beim Login
Eine der einfachsten Möglichkeiten, um die Sicherheit Ihres FTP-Servers zu erhöhen, ist das Deaktivieren anonymer Logins. Wenn anonyme Anmeldungen erlaubt sind, bleibt Ihr Server nahezu offen wie ein Scheunentor.
Standardmäßig sind anonyme Logins bei VSFTPD bereits deaktiviert. Sie sollten die Einstellung vorsichtshalber aber überprüfen. Nutzen Sie dazu das Kommando sudo grep 'anonymous_enable' /etc/vsftpd.conf. Der Befehl funktioniert auch unter Red Hat, der Pfad zu der Konfigurationsdatei lautet aber möglicherweise anders.
Der obige Befehl zeigt die Konfigurationszeile und ihren Wert an. Wenn der Wert yes lautet, dann muss er in no geändert werden. Um die Änderung durchzuführen, nutzen Sie den Befehl sudo vi /etc/vsftpd.conf.
Scrollen Sie bis zu der Konfiguration anonymous_enable und ändern Sie den Wert von yes zu no. Nach dem Abspeichern der geänderten Konfigurationsdatei, müssen Sie den Server noch neu starten, um die Änderung zu aktivieren. Auf Linux-Distributionen, die systemd verwenden, können Sie dazu den Befehl sudo systemctl restart vsftpd nutzen.
Anschließend sollten Sie noch die Schreibrechte überprüfen. Standardmäßig sind sie deaktiviert. Um sie zu aktivieren, suchen Sie nach der Zeile write_enable=YES und entfernen das Kommentarzeichen davor. Dadurch erlauben Sie Ihren Nutzer, Dateien zu schreiben, wenn sie die dafür erforderlichen Rechte haben. Abhängig von Ihren Vorgaben ist dies aber möglicherweise nicht erwünscht und Ihre Nutzer sollen keine Dateien auf den Server schreiben können. Dann verzichten Sie auf die Änderung.
Festigen der Zugriffsrechte mit chroot
Eine weitere wichtige Maßnahme ist das Beschränken der Nutzer auf ihr jeweiliges Home-Verzeichnis. Abhängig von Ihrem Setup benötigen Sie eine solche Einschränkung oder aber auch nicht. Sie kann auf jeden Fall verhindern, dass die Nutzer anfangen, in fremden Daten zu stöbern. Sie können dieses Ziel mit dem Kommando chroot erreichen.
Um die Beschränkung zu aktivieren beziehungsweise um die Einstellung zu überprüfen, öffnen Sie die Konfigurationsdatei vsftpd.conf. Suchen Sie nach der Zeile, die mit chroot_list_enable beginnt und setzen Sie den Wert auf yes. Sorgen Sie zudem dafür, dass sich in chroot_list_file alle Nutzer befinden, die von der Einschränkung betroffen sein sollen. Standardmäßig ist die Liste auskommentiert. Um chroot_list_file zu aktualisieren, entfernen Sie den Kommentarhinweis vor der Zeile und öffnen Sie dann die in dem Pfad angegebene Datei.
Die relevanten Zeilen sollten dann zum Beispiel wie in dem folgenden Screenshot aussehen:
Es gibt viele mögliche Konfigurationen mit chroot. Es lohnt sich deswegen, sich ausführlicher mit den Konfigurationsmöglichkeiten und den verfügbaren Dokumentationen zu beschäftigen. Nur so stellen Sie sicher, dass Ihre Sicherheitsanforderungen auch wirklich erfüllt werden.
Es gibt aber noch ein weiteres Problem, um das Sie sich kümmern sollten: Die im System angelegten Nutzer können sich in der Regel ohne weitere Schritte einloggen. Dadurch wird dafür gesorgt, dass sie beliebige Dateien in ihr Home-Verzeichnis laden können. Anschließend können sie sich per SSH (Secure Socket Shell) anmelden, die Rechte der Datei ändern und sie danach ausführen.
Beliebige Datei-Uploads sind in den meisten produktiv genutzten Systemen aber nicht erwünscht, weil durch sie die Sicherheit des FTP-Servers gefährdet werden kann. Anwender, die die Rechte haben, sich an einer interaktiven Shell anzumelden und Daten hochzuladen, können auch schädliche Dateien einspielen und dann ausführen. Das gilt auch dann, wenn ihre Zugangsdaten durch einen Hacker geklaut wurden.
Wenn Sie vorher schon wissen, woher alle Daten auf dem Server kommen dürfen, dann sollten Sie iptables einsetzen, um Uploads auf bekannte, vertrauenswürdige IP-Adressen zu beschränken. Mit iptables ist es leicht möglich, unerwünschte Anwender zu blockieren, die keinen Zugriff haben sollen. Dadurch lässt sich die Sicherheit Ihres FTP-Servers weiter erhöhen.