CSF, auch "Config Server Firewall" genannt ist eine Stateful Packet Inspection (SPI)-Firewall für Linux-Betriebssysteme. Es bietet grundlegende Firewall-Funktionalität sowie andere Sicherheitsfunktionen, einschließlich Anmeldung, Eindringungs- und Überschwemmungserkennung. Sie können CSF auch mit DirectAdmin, cPanel und Webmin integrieren. Mit CSF können Sie viele Arten von Angriffen wie Port-Scans, SYN-Floods und Login-Brute-Force-Angriffe auf viele Dienste erkennen.
In diesem Beitrag zeigen wir Ihnen, wie Sie die CSF-Firewall auf Rocky Linux 8 installieren und konfigurieren.
Voraussetzungen
- Ein Server, auf dem Rocky Linux 8 auf der Atlantic.Net Cloud Platform ausgeführt wird
- Ein auf Ihrem Server konfiguriertes Root-Passwort
Schritt 1 – Atlantic.Net Cloud-Server erstellen
Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie Rocky Linux 8 als Betriebssystem mit mindestens 2 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.
Sobald Sie sich bei Ihrem Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.
dnf update -y
Schritt 2 – CSF unter Rocky Linux 8 installieren
CSF ist in Perl geschrieben, daher müssen Sie alle erforderlichen Perl-Module auf Ihrem System installieren. Sie können alle mit dem folgenden Befehl installieren:
dnf install @perl perl-libwww-perl.noarch perl-LWP-Protocol-https.noarch -y
Nachdem Sie alle erforderlichen Module installiert haben, laden Sie die neueste Version von CSF mit dem folgenden Befehl herunter:
wget https://download.configserver.com/csf.tgz
Sobald der Download abgeschlossen ist, extrahieren Sie die heruntergeladene Datei mit dem folgenden Befehl:
tar xzf csf.tgz
Navigieren Sie als Nächstes zum extrahierten Verzeichnis und installieren Sie CSF mit dem folgenden Befehl:
cd csf sh install.sh
Sobald CSF installiert ist, erhalten Sie die folgende Ausgabe:
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: Adding 27.61.171.115 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 → /usr/lib/systemd/system/csf.service. Created symlink /etc/systemd/system/multi-user.target.wants/lfd.service → /usr/lib/systemd/system/lfd.service. Created symlink /etc/systemd/system/firewalld.service → /dev/null. '/etc/csf/csfwebmin.tgz' -> '/usr/local/csf/csfwebmin.tgz' Installation Completed
Überprüfen Sie als Nächstes, ob alle erforderlichen iptables-Module verfügbar sind.
perl /usr/local/csf/bin/csftest.pl
Wenn alles korrekt eingerichtet ist, erhalten Sie folgende Ausgabe:
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
Sie können jetzt die CSF-Version mit dem folgenden Befehl überprüfen:
csf -v
Sie erhalten die folgende Ausgabe:
csf: v14.12 (generic) *WARNING* TESTING mode is enabled - do not forget to disable it in the configuration
Schritt 3 – CSF konfigurieren
nano /etc/csf/csf.conf
Ändern Sie TESTING =„1“ in TESTING =„0“ und fügen Sie zulässige eingehende und ausgehende Ports gemäß Ihren Anforderungen hinzu:
# lfd will not start while this is enabled TESTING = "0" # Allow incoming TCP ports TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995" # Allow outgoing TCP ports TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995"
Speichern und schließen Sie die Datei, wenn Sie fertig sind, und starten und aktivieren Sie dann die CSF- und LFD-Dienste:
systemctl start csf lfd systemctl enable csf lfd
Sie können den Status von CSF mit dem folgenden Befehl überprüfen:
systemctl status csf
Sie sollten die folgende Ausgabe sehen:
● csf.service - ConfigServer Firewall & Security - csf Loaded: loaded (/usr/lib/systemd/system/csf.service; enabled; vendor preset: disabled) Active: active (exited) since Wed 2021-11-17 08:41:05 UTC; 3s ago Process: 13236 ExecStart=/usr/sbin/csf --initup (code=exited, status=0/SUCCESS) Main PID: 13236 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 11411) Memory: 0B CGroup: /system.slice/csf.service Nov 17 08:41:05 rockylinux csf[13236]: ACCEPT all opt in * out lo ::/0 -> ::/0 Nov 17 08:41:05 rockylinux csf[13236]: LOGDROPOUT all opt in * out !lo ::/0 -> ::/0 Nov 17 08:41:05 rockylinux csf[13236]: LOGDROPIN all opt in !lo out * ::/0 -> ::/0 Nov 17 08:41:05 rockylinux csf[13236]: csf: FASTSTART loading DNS (IPv4) Nov 17 08:41:05 rockylinux csf[13236]: csf: FASTSTART loading DNS (IPv6) Nov 17 08:41:05 rockylinux csf[13236]: LOCALOUTPUT all opt -- in * out !lo 0.0.0.0/0 -> 0.0.0.0/0 Nov 17 08:41:05 rockylinux csf[13236]: LOCALINPUT all opt -- in !lo out * 0.0.0.0/0 -> 0.0.0.0/0 Nov 17 08:41:05 rockylinux csf[13236]: LOCALOUTPUT all opt in * out !lo ::/0 -> ::/0 Nov 17 08:41:05 rockylinux csf[13236]: LOCALINPUT all opt in !lo out * ::/0 -> ::/0 Nov 17 08:41:05 rockylinux systemd[1]: Started ConfigServer Firewall & Security - csf.
Sie können auch die offenen Ports überprüfen, wenn CSF ausgeführt wird, indem Sie den folgenden Befehl verwenden:
csf -p
Beispielausgabe:
Ports listening for external connections and the executables running behind them: Port/Proto Open Conn PID/User Command Line Executable 22/tcp 4/6 1 (709/root) /usr/sbin/sshd -D -oCiphers=aes256-g... /usr/sbin/sshd 80/tcp 4/6 - (8954/root) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd 80/tcp 4/6 - (8957/apache) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd 80/tcp 4/6 - (8958/apache) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd 80/tcp 4/6 - (8959/apache) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd 80/tcp 4/6 - (9172/apache) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd 323/udp -/- - (552/chrony) /usr/sbin/chronyd /usr/sbin/chronyd
Schritt 4 – Verwendung von CSF
Führen Sie den folgenden Befehl aus, um alle CSF-Regeln zu leeren:
csf -f
Um die CSF-Firewall neu zu laden, führen Sie den folgenden Befehl aus:
csf -r
Führen Sie den folgenden Befehl aus, um eingehende Verbindungen von der bestimmten IP zuzulassen:
csf -a remote-ip-address
Führen Sie den folgenden Befehl aus, um Verbindungen von der bestimmten IP abzulehnen:
csf -d remote-ip-address
Sie können auch die csf.deny bearbeiten und csf.allow Datei, um die Liste der erlaubten und verweigerten IPs auf der Firewall zu definieren.
Schritt 5 – CSF-Benutzeroberfläche aktivieren
CSF bietet auch eine webbasierte Schnittstelle zur Verwaltung der Firewall. Es ist standardmäßig deaktiviert.
Installieren Sie vor dem Aktivieren der CSF-Benutzeroberfläche die erforderlichen Module mit dem folgenden Befehl:
dnf install perl-IO-Socket-SSL perl-Net-SSLeay perl-IO-Socket-INET6 perl-Socket -y
Als nächstes bearbeiten Sie die CSF-Konfigurationsdatei:
nano /etc/csf/csf.conf
Aktivieren Sie die Benutzeroberfläche, definieren Sie den Listening-Port und legen Sie den Admin-Benutzernamen und das Passwort wie unten gezeigt fest:
# 1 to enable, 0 to disable web ui UI = "1" # Set port for web UI. The default port is 6666, but # I change this to 1025 to easy access. Default port create some issue # with popular chrome and firefox browser (in my case) UI_PORT = "8080" # Leave blank to bind to all IP addresses on the server UI_IP = "" # Set username for authetnication UI_USER = "admin" # Set a strong password for authetnication UI_PASS = "securepassword" UI_ALLOW = "0"
Speichern und schließen Sie die Datei und starten Sie dann den CSF- und LFD-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart lfd systemctl restart csf
Schritt 6 – Greifen Sie auf die CSF-Benutzeroberfläche zu
Öffnen Sie nun Ihren Webbrowser und greifen Sie über die URL https://your-server-ip:8080 auf die CSF-Benutzeroberfläche zu . Sie sollten die CSF-Anmeldeseite sehen:
Geben Sie Ihren Admin-Benutzernamen und Ihr Passwort ein und klicken Sie auf Anmelden Taste. Sie sollten die CSF-Weboberfläche auf dem folgenden Bildschirm sehen:
Schritt 7 – CSF-Firewall entfernen
Wenn Sie die CSF-Firewall vollständig von Ihrem Server entfernen möchten, führen Sie einfach das folgende Skript aus:
bash /etc/csf/uninstall.sh
Dadurch wird die CSF-Firewall mit allen Dateien, Verzeichnissen und Regeln entfernt, die von CSF erstellt wurden.
Schlussfolgerung
In der obigen Anleitung haben wir erklärt, wie man CSF und CSF UI auf Rocky Linux 8 installiert. Wir haben auch erklärt, wie man bestimmte IP-Adressen mit CSF sperrt und entbannt. Sie können jetzt CSF auf Ihrem Server implementieren und ihn vor verschiedenen Arten von Angriffen schützen. Probieren Sie es auf Ihrem VPS von Atlantic.Net aus!