Sergey Nivens - Fotolia

ConfigServer Security & Firewall (CSF) für mehr Sicherheit

Die ConfigServer Security & Firewall (CSF) schützt Server und verhindert Brute Force-Angriffe auf Benutzerkonten. Dieser Beitrag zeigt die Vorgehensweise des Linux-Tools.

Bei der ConfigServer Security & Firewall (CSF) handelt es sich um ein Firewall-Konfigurationsskript. CSF hat die Aufgabe, die Einrichtung und Verwaltung von Firewalls auf Linux-Servern zu erleichtern und damit sicherer zu gestalten. Vor allem auf Linux-Webservern oder Servern, auf die zahlreiche auch wechselnde Benutzer zugreifen, kann der Einsatz von CSF sinnvoll sein. So lässt sich die Sicherheit des Servers durch die Firewall, die Benutzerüberwachung und auch die Überwachung von Verzeichnissen deutlich verbessern.

CSF bietet nach der Einrichtung auch eine grafische Oberfläche, mit der sich Sicherheitseinstellungen effektiver und übersichtlicher gestalten lassen. CSF konfiguriert die Firewall von Servern. Dabei wird zunächst der öffentliche Zugriff auf Dienste des Servers gesperrt, während bestimmte Verbindungen zugelassen werden. Die Firewall kann zusätzlich bestimmte lokale Verzeichnisse darauf hin überwachen, ob ein Angreifer versucht Daten unberechtigt auszulesen.

CSF ist zu verschiedenen Linux-Distributionen kompatibel. Dazu gehören RedHat, CentOS, CloudLinux, Fedora und Ubuntu. Auch Virtualisierungslösungen wie VMWare vSphere und Xen können mit CSF geschützt werden.

Firewall und Brute-Force-Schutz für Benutzerkonten

CSF verfügt darüber hinaus über einen Login Failure Daemon (LFD). Dieser überwacht Benutzeraktivitäten auf verschiedene Anmeldefehler, die vor allem bei Brute-Force-Angriffen genutzt werden. Wenn eine große Anzahl von Anmeldefehlern von derselben IP-Adresse aus erkannt wird, kann die lokale Firewall durch CSF diese Adresse vorübergehend für alle Dienste auf einem Server sperren.

Diese IP-Sperren laufen automatisch ab, können aber auch über die ConfigServer-Schnittstelle verwaltet werden. CSF ermöglicht ebenso das manuelle Anlegen einer White- oder Blacklist. Auch die Echtzeitüberwachung für automatische IP-Blockierungen lässt sich durchführen.

Abbildung 1: Überprüfen der CSF-Installation und Download der Installationsdateien
Abbildung 1: Überprüfen der CSF-Installation und Download der Installationsdateien

CSF unter Linux installieren

Wer seine Linux-Server schützen will, erhält mit CSF ein seit Jahren bekanntes Mittel, um auf Basis von Open Source relativ schnell und einfach für mehr Sicherheit zu sorgen. CSF kann auch mit cPanel und Plesk gesteuert werden. Im ersten Schritt überprüfen Sie mit dem folgenden Befehl, ob auf einem Server bereits CSF vorhanden ist:

/etc/init.d/csf status

Wenn CSF noch nicht installiert ist, erscheint hier die Meldung, dass die Datei nicht gefunden werden kann. Die Installation beginnt dann mit dem Download des CSF-Paketes:

wget http://download.configserver.com/csf.tgz

Bevor Sie CSF auf einem Server installieren, sollten Sie bereits vorhandene Firewalls deaktivieren. Am Beispiel von Ubuntu wäre das etwa UFW. Die Deaktivierung erfolgt mit:

ufw disable

Danach werden die Daten im Archiv extrahiert, gleich in das Installationsverzeichnis gewechselt und danach das Installationsskript gestartet. Meistens ist es sinnvoll, die Befehle gleich über sudo mit Root-Rechten auszuführen.

tar -xzf csf.tgz

cd csf

sh install.sh

Die Installation ist in den meisten Fällen in wenigen Sekunden abgeschlossen.

Abbildung 2: CSF erfolgreich installieren.
Abbildung 2: CSF erfolgreich installieren.

Grundkonfiguration von CSF

Die Konfiguration von CSF erfolgt zunächst über die Konfigurationsdatei csf.conf. Diese befindet sich im Verzeichnis etc/csf. Die Bearbeitung kann zum Beispiel mit Nano erfolgen:

nano /etc/csf/csf.conf

Das Verzeichnis hängt natürlich davon ab, wo CSF installiert wurde. Die Bearbeitung sollte idealerweise mit Root-Rechten erfolgen. In der Konfigurationsdatei wird festgelegt, welche ein- und ausgehenden Ports auf dem Server geöffnet werden. Hier lassen sich Ports hinzufügen und natürlich auch entfernen.

Nach den Änderungen speichern Sie die Datei. Damit die Firewall aktiv geschaltet wird, muss die Option Testing auf 0 gesetzt werden. Standardmäßig befindet sich CSF im Testmodus, bei dem Testing auf 1 ist.

Abbildung 3: Bearbeiten der CSF-Konfigurationsdatei.
Abbildung 3: Bearbeiten der CSF-Konfigurationsdatei.

Um bestimmte IP-Adressen manuell zu blockieren, werden diese in der Datei csf.deny eingetragen. csf.deny verweigert die Pakete für einen Port und blockiert diese komplett am Server. Eine Whitelist mit erlaubten IP-Adressen wird in der Datei csf.allow gepflegt. Die Datei csf.ignore legt fest, dass eine IP-Adresse durch Brute Force Detection (LFD) ignoriert wird, egal für welchen Port.

Generell sollten für den Betrieb von CSF auch die iptables-Module getestet werden. Diese müssen auf dem Server vorhanden sein und funktionieren, damit CSF sie nutzen kann. Der Test kann zum Beispiel mit dem folgenden Befehl erfolgen:

sudo perl /usr/local/csf/bin/csftest.pl

Nach dem Test werden alle notwendigen iptables angezeigt und auch deren Status überprüft. Nach Änderungen an CSF müssen Sie diese neu starten. Dazu verwenden Sie zum Beispiel diesen Befehl:

csf -r

Abbildung 4: In der Konfigurationsdatei lassen sich die geöffneten und gesperrten Ports steuern.
Abbildung 4: In der Konfigurationsdatei lassen sich die geöffneten und gesperrten Ports steuern.

Weboberfläche von CSF aktivieren

CSF lässt sich über Konfigurationsdateien ausreichend konfigurieren. Allerdings bietet die Firewall auch eine integrierte Weboberfläche. Diese benötigt jedoch einige Perl-Module, die auf dem entsprechenden Server erst zu installieren sind. Unter Debian-Linux erfolgt das so:

sudo apt-get install libio-socket-ssl-perl libcrypt-ssleay-perl libnet-libidn-perl libio-socket-inet6-perl libsocket6-perl

Wer CSF auf einem Red Hat-System betreibt, verwendet den folgenden Befehl:

sudo yum install perl-IO-Socket-SSL.noarch perl-Net-SSLeay perl-Net-LibIDN perl-IO-Socket-INET6 perl-Socket6

Die Web-UI aktivieren Sie ebenfalls in der Konfiguratonsdatei csf.conf. Die Option ist in der Konfigurationsdatei beschrieben. Wichtig ist, dass die Option UI auf 1 gesetzt wird, um die UI zu aktivieren. Standardmäßig ist die Weboberfläche nicht aktiviert. Über UI_PORT wird der Port für die Verwaltung von CSF mit der UI gesteuert.

In der Konfigurationsdatei lassen sich auch Anmeldenamen und Kennwort definieren. In den meisten Fällen werden Administratoren die Einstellungen sicher über das Terminal und die Konfigurationsdatei durchführen. Auch hier müssen Sie nach der Aktivierung den Dienst mit csf -r neu starten.

Abbildung 5: Überprüfen der Iptables-Module auf einem Linux-Server.
Abbildung 5: Überprüfen der Iptables-Module auf einem Linux-Server.

CSF mit nftables

CSF setzt beim Einsatz auf iptables. Es gibt mit nftables seit einigen Jahren einen Nachfolger für Iptables, der Schwachstellen bei der Verwaltung von Firewalls vermeiden soll und weitere Vorteile bietet. CSF arbeitet derzeit noch nicht mit nftables zusammen.

Das liegt auch daran, dass nftables derzeit noch zu wenig verbreitet sind und in den meisten Fällen noch iptables den Vorzug haben. Wer auf seinen Linux-Servern also mit nftables arbeiten will, kann CSF nicht nutzen. Derzeit ist es aber in der Praxis noch so, dass die Verwendung von iptables deutlich weiter verbreitet ist. In der Community von CSF wird die Unterstützung von nftables in CSF diskutiert. Es ist zu erwarten, dass die Entwickler CSF für nftables anpassen oder eine eigene Version zur Verfügung stellen werden, sobald der Marktanteil von iptables deutlich abnimmt.

In einzelnen Fällen kann es passieren, dass CSF seine Funktion einstellt, wenn auf einem Server eine Aktualisierung der Distribution stattfindet. In diesem Fall wird meistens die Absicherung des Netzwerkverkehrs von iptables auf nftables umgestellt, zum Beispiel in Debian- oder CentOS-Linux. Die Entwickler von CSF passen die Software aber ständig an, um diese Probleme zu umgehen. Wenn es zu Schwierigkeiten mit CSF auf einer Linux-Distribution kommt, sollten Sie zunächst überprüfen, ob iptables auf dem Server vorhanden sind:

iptables -L

ip6tables -L

Ist das nicht der Fall, sollten Sie iptables nachinstallieren. Nur dann können Sie auf CSF setzen. Am Beispiel von CentOS 8.x können Sie nftables so deinstallieren und iptables installieren:

systemctl stop firewalld

systemctl disable firewalld

yum remove nftables

yum install iptables ip6tables

Derzeit sind die Entwicklung aber nicht so aus, dass iptables in nächster Zeit komplett durch nftables ersetzt wird. 

Erfahren Sie mehr über Serverbetriebssysteme