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.