So installierst du die Config Server Firewall (CSF) unter Debian 11

CSF, auch bekannt als „Config Server Firewall“, ist eine kostenlose und erweiterte Firewall für Linux-Systeme. Sie verfügt über einige fortschrittliche Sicherheitsfunktionen wie Intrusion-, Flood- und Login-Detektion. Sie wurde entwickelt, um viele Angriffe abzuwehren, wie z. B. Port-Scans, SYN-Floods und Brute-Force-Angriffe auf das Login. Außerdem bietet es eine Integration für cPanel, DirectAdmin und Webmin.

In diesem Tutorial werden die Installation von CSF, die grundlegende Konfiguration und die wichtigsten Befehle für CSF unter Debian 11 erklärt.

Voraussetzungen

  • Ein Server, auf dem Debian 11 läuft.
  • Ein Root-Passwort ist auf dem Server konfiguriert.

Erste Schritte

Bevor du beginnst, solltest du deine Systempakete auf die aktuelle Version aktualisieren. Das kannst du mit dem folgenden Befehl tun:

apt-get update -y

Sobald alle Pakete aktualisiert sind, installierst du die anderen erforderlichen Abhängigkeiten mit dem folgenden Befehl:

apt-get install sendmail dnsutils unzip libio-socket-ssl-perl libcrypt-ssleay-perl git perl iptables libnet-libidn-perl libio-socket-inet6-perl libsocket6-perl -y

CSF auf Debian 11 installieren

Standardmäßig ist das CSF-Paket nicht im Standard-Repository von Debian 11 enthalten. Du musst es von der offiziellen Website herunterladen.

Du kannst die neueste Version von CSF mit dem folgenden Befehl herunterladen:

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

Sobald der Download abgeschlossen ist, entpackst du die heruntergeladene Datei mit dem folgenden Befehl:

tar -xvzf csf.tgz

Wechsle dann in das Verzeichnis CSF und führe das Skript install.sh aus, um CSF auf deinem Server zu installieren.

cd csf
bash install.sh

Sobald das CSF installiert ist, solltest du die folgende Ausgabe erhalten:

Don't forget to:
1. Configure the following options in the csf configuration to suite your server: TCP_*, UDP_*
2. Restart csf and lfd
3. Set TESTING to 0 once you're happy with the firewall, lfd will not run until you do so

Adding current SSH session IP address to the csf whitelist in csf.allow:
*WARNING* URLGET set to use LWP but perl module is not installed, fallback to using CURL/WGET
Adding 106.222.22.32 to csf.allow only while in TESTING mode (not iptables ACCEPT)
*WARNING* TESTING mode is enabled - do not forget to disable it in the configuration
'lfd.service' -> '/usr/lib/systemd/system/lfd.service'
'csf.service' -> '/usr/lib/systemd/system/csf.service'
Created symlink /etc/systemd/system/multi-user.target.wants/csf.service ? /lib/systemd/system/csf.service.
Created symlink /etc/systemd/system/multi-user.target.wants/lfd.service ? /lib/systemd/system/lfd.service.
Failed to disable unit: Unit file firewalld.service does not exist.
Failed to stop firewalld.service: Unit firewalld.service not loaded.
Unit firewalld.service does not exist, proceeding anyway.
Created symlink /etc/systemd/system/firewalld.service ? /dev/null.
'/etc/csf/csfwebmin.tgz' -> '/usr/local/csf/csfwebmin.tgz'

Installation Completed

Nach der Installation überprüfst du die erforderlichen iptables-Module für CSF mit folgendem Befehl:

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

Wenn alles in Ordnung ist, solltest du die folgende Ausgabe erhalten:

Testing ip_tables/iptable_filter...OK
Testing ipt_LOG...OK
Testing ipt_multiport/xt_multiport...OK
Testing ipt_REJECT...OK
Testing ipt_state/xt_state...OK
Testing ipt_limit/xt_limit...OK
Testing ipt_recent...OK
Testing xt_connlimit...OK
Testing ipt_owner/xt_owner...OK
Testing iptable_nat/ipt_REDIRECT...OK
Testing iptable_nat/ipt_DNAT...OK

RESULT: csf should function on this server

CSF konfigurieren

Als Nächstes musst du CSF entsprechend deinen Anforderungen konfigurieren. Du kannst es konfigurieren, indem du die Datei /etc/csf/csf.conf bearbeitest.

nano /etc/csf/csf.conf

Suche zunächst die Zeile TESTING = „1“ und ändere den Wert in „0“, um den CSF zu aktivieren:

TESTING = "0"

Als Nächstes suchst du die Zeile RESTRICT_SYSLOG = „0“ und änderst den Wert auf 3, damit nur die Mitglieder der RESTRICT_SYSLOG_GROUP Zugriff auf die Syslog/rsyslog-Dateien haben:

RESTRICT_SYSLOG = "3"

Füge die gewünschten offenen TCP-Ports für eingehende Verbindungen in die folgende Zeile ein:

TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"

Füge die gewünschten ausgehenden TCP-Ports in der folgenden Zeile hinzu:

# Allow outgoing TCP ports
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995"

Füge die erforderlichen offenen UDP-Ports für eingehende Verbindungen in der folgenden Zeile hinzu:

# Allow incoming UDP ports
UDP_IN = "20,21,53,80,443"

Füge die benötigten ausgehenden UDP-Ports in der folgenden Zeile hinzu:

# Allow outgoing UDP ports
UDP_OUT = "20,21,53,113,123"

Speichere und schließe die Datei und lade die CSF-Firewall neu, damit die Änderungen übernommen werden:

csf -r

Grundlegende CSF-Befehle

Um die CSF-Firewall zu stoppen, führe den folgenden Befehl aus:

csf -s

Um die CSF-Firewall zu flushen, führe den folgenden Befehl aus:

csf -f

Um alle vom CSF hinzugefügten IPTABLES-Regeln aufzulisten, führe den folgenden Befehl aus:

csf -l

Um den CSF zu starten und zu aktivieren, dass er beim Neustart des Systems gestartet wird, führe den folgenden Befehl aus:

systemctl start csf
systemctl enable csf

Um den Status der CSF-Firewall zu überprüfen, führe den folgenden Befehl aus:

systemctl status csf

Du solltest die folgende Ausgabe erhalten:

? csf.service - ConfigServer Firewall & Security - csf
     Loaded: loaded (/lib/systemd/system/csf.service; enabled; vendor preset: enabled)
     Active: active (exited) since Sat 2021-09-18 15:42:04 UTC; 11s ago
    Process: 8022 ExecStart=/usr/sbin/csf --initup (code=exited, status=0/SUCCESS)
   Main PID: 8022 (code=exited, status=0/SUCCESS)
        CPU: 705ms

Sep 18 15:42:04 debian11 csf[8022]: ACCEPT  all opt    in * out lo  ::/0  -> ::/0
Sep 18 15:42:04 debian11 csf[8022]: LOGDROPOUT  all opt    in * out !lo  ::/0  -> ::/0
Sep 18 15:42:04 debian11 csf[8022]: LOGDROPIN  all opt    in !lo out *  ::/0  -> ::/0
Sep 18 15:42:04 debian11 csf[8022]: csf: FASTSTART loading DNS (IPv4)
Sep 18 15:42:04 debian11 csf[8022]: csf: FASTSTART loading DNS (IPv6)
Sep 18 15:42:04 debian11 csf[8022]: LOCALOUTPUT  all opt -- in * out !lo  0.0.0.0/0  -> 0.0.0.0/0
Sep 18 15:42:04 debian11 csf[8022]: LOCALINPUT  all opt -- in !lo out *  0.0.0.0/0  -> 0.0.0.0/0
Sep 18 15:42:04 debian11 csf[8022]: LOCALOUTPUT  all opt    in * out !lo  ::/0  -> ::/0
Sep 18 15:42:04 debian11 csf[8022]: LOCALINPUT  all opt    in !lo out *  ::/0  -> ::/0
Sep 18 15:42:04 debian11 systemd[1]: Finished ConfigServer Firewall & Security - csf.

Um einen bestimmten Host nach IP-Adresse zuzulassen, führe den folgenden Befehl aus:

csf -a 192.168.100.10

Um einen bestimmten Host nach IP-Adresse zu verbieten, führe den folgenden Befehl aus:

csf -d 192.168.100.11

Um eine IP aus der Zulassen-Liste zu entfernen, führe folgenden Befehl aus:

csf -ar 192.168.100.10

Um eine IP aus der Deny-Liste zu entfernen, führe den folgenden Befehl aus:

csf -dr 192.168.100.11

Du kannst vertrauenswürdige IPs hinzufügen, indem du die Datei /etc/csf/csf.allow bearbeitest:

nano /etc/csf/csf.allow

Füge deine vertrauenswürdigen IPs hinzu:

192.168.100.10

Du kannst nicht vertrauenswürdige IPs hinzufügen, indem du die Datei /etc/csf/csf.deny bearbeitest:

nano /etc/csf/csf.deny

Füge deine nicht vertrauenswürdigen IPs hinzu:

192.168.100.11

Fazit

In der obigen Anleitung haben wir erklärt, wie du die CSF-Firewall unter Debian 11 installierst. Außerdem zeigen wir dir einige grundlegende CSF-Befehle, um deinen Datenverkehr zu verwalten. Weitere Informationen findest du in derCSF-Dokumentation.

Das könnte dich auch interessieren …