CSF (ConfigServer Firewall) auf CentOS 7: Installation & Anleitung

CSF ist eine anwendungsbezogene Firewall für Linux-Server, die iptables nutzt und zusätzlich Login-/Intrusion-Detection (LFD) für Dienste wie SSH, SMTP, IMAP, FTP und mehr bietet. Dieses Tutorial führt Schritt für Schritt durch Voraussetzungen, Installation, Basiskonfiguration, häufige Kommandos und erweiterte Einstellungen — inklusive Checklisten, Absicherungs-Tipps und Wiederherstellungsabläufen.
Zielgruppe und Varianten der Suchintention
Hauptintention: CSF unter CentOS 7 installieren und konfigurieren Verwandte Suchvarianten: CSF installieren CentOS, ConfigServer Firewall Anleitung, CSF LFD konfigurieren, CSF vs fail2ban, CSF WHM cPanel Integration
Voraussetzungen
- Ein Server mit CentOS 7 (im Beispiel wird 192.168.1.101 verwendet).
- root-Privilegien oder sudo-Zugriff.
- Internetzugang zum Herunterladen von Paketen.
Was wir in diesem Leitfaden machen werden:
- Abhängigkeiten installieren
- CSF herunterladen und installieren
- CSF konfigurieren (Basis + erweiterte Optionen)
- Wichtige CSF-Kommandos und Beispiele
- Zusätzliche Best Practices, Rollback- und Incident-Playbooks
Schritt 1 — Abhängigkeiten installieren
CSF basiert auf Perl. Installiere die notwendigen Tools mit yum:
yum install wget vim perl-libwww-perl.noarch perl-Time-HiRes
Kurzdefinition: Perl — Programmiersprache, die CSF-Skripte ausführt.
Wichtig: Nutze einen Paketmanager wie yum oder dnf entsprechend deiner Distribution. Auf CentOS 7 ist yum Standard.
Schritt 2 — CSF herunterladen und installieren
Wechsle nach /usr/src/ und lade die CSF-Distribution:
cd /usr/src/
wget https://download.configserver.com/csf.tgz
Entpacke und installiere:
tar -xzf csf.tgz
cd csf
sh install.sh
Am Ende der Installation solltest du eine Bestätigung sehen, dass die Installation abgeschlossen ist.
Bildbeschreibung: Fertigstellung der CSF-Installation im Terminal mit Hinweisen auf weiterführende Dateien.
Überprüfe anschließend mit dem Testskript, ob die Umgebung geeignet ist:
cd /usr/local/csf/bin/
perl csftest.pl
Erwartetes Ergebnis:
RESULT: csf should function on this server
Bildbeschreibung: Ausgabe von csftest.pl: CSF kann auf diesem System ausgeführt werden.
Schritt 3 — CSF auf CentOS 7 konfigurieren
Hinweis: CentOS 7 nutzt standardmäßig firewalld. Stoppe firewalld und entferne es aus dem Autostart, bevor du CSF startest:
systemctl stop firewalld
systemctl disable firewalld
Bearbeite die Hauptkonfiguration unter /etc/csf/csf.conf:
cd /etc/csf/
vim csf.conf
Ändere die Test-Flagge, damit CSF aktiv wird (Zeile mit TESTING):
TESTING = "0"
Wenn dein SSH-Server nicht auf Port 22 läuft, füge den korrekten Port in TCP_IN ein (Standardzeile etwa 139 in manchen Versionen):
TCP_IN = "22,xxx"
Starte CSF und LFD und aktiviere sie für den Autostart:
systemctl start csf
systemctl start lfd
systemctl enable csf
systemctl enable lfd
Liste die aktuellen Regeln:
csf -l
Wichtig: Prüfe vor Deaktivierung/Deinstallation von firewalld, dass keine Abhängigkeiten (z. B. andere Dienste) die Standard-Firewalld-Nutzung erfordern.
Schritt 4 — Wichtige CSF-Kommandos (Übersicht)
- Firewall starten (Regeln anwenden):
csf -s
- Firewall-Regeln leeren/stoppen:
csf -f
- Firewall neu laden:
csf -r
- IP zulassen und in csf.allow eintragen:
csf -a 192.168.1.109
Beispiel-Ausgabe:
Adding 192.168.1.109 to csf.allow and iptables ACCEPT...
ACCEPT all opt -- in !lo out * 192.168.1.109 -> 0.0.0.0/0
ACCEPT all opt -- in * out !lo 0.0.0.0/0 -> 192.168.1.109
- IP aus csf.allow entfernen:
csf -ar 192.168.1.109
- IP sperren und in csf.deny eintragen:
csf -d 192.168.1.109
- IP aus csf.deny entfernen:
csf -dr 192.168.1.109
- Alle Einträge aus csf.deny löschen (entsperren):
csf -df
- Suche nach IP/Port/CIDR in den iptables-Regeln:
csf -g 192.168.1.110
Tipp: Nutze diese Kommandos zuerst in einer Testumgebung oder einer Remote-Session mit Konsole, damit du nicht aus Versehen die SSH-Verbindung blockierst.
Schritt 5 — Erweiterte Konfiguration
Öffne erneut /etc/csf/csf.conf:
cd /etc/csf/
vim csf.conf
- IGNORE_ALLOW: Sicherstellen, dass erlaubte IPs nicht von LFD blockiert werden. Setze in Zeile ~272:
IGNORE_ALLOW = "1"
Praxis: Nützlich für statische Büro- oder Heim-IP-Adressen.
- ICMP (Ping) erlauben:
ICMP_IN = "1"
ICMP_OUT = "1"
- Länder-Blocking über Ländercodes (CC_DENY / CC_ALLOW):
CC_DENY = "CN,UK,US"
CC_ALLOW = "ID,MY,DE"
Hinweis: Länder-Blocking nutzt GeoIP/CIDR-Listen und ist eine grobe Maßnahme — nicht für hochsichere Umgebungen als einzige Schutzschicht geeignet.
- E-Mail-Benachrichtigungen für SSH- und su-Events aktivieren:
LF_SSH_EMAIL_ALERT = "1"
LF_SU_EMAIL_ALERT = "1"
LF_ALERT_TO = "[email protected]"
Diese Optionen konfigurieren LFD, damit Anmeldungen und „su“-Ereignisse per Mail berichtet werden.
Weitere Optionen findest du direkt in /etc/csf/csf.conf. Lies Kommentare im File, viele Parameter sind dokumentiert.
Sicherheitshärtung und Best Practices
- Backup der Konfiguration: Vor Änderungen immer /etc/csf/csf.conf sichern.
cp /etc/csf/csf.conf /etc/csf/csf.conf.bak.$(date +%F_%T)
- SSH-Sperre vermeiden: Füge deine eigene IP zu csf.allow hinzu, bevor du Regeln testest.
- Testmodus nutzen: Während Tests kann TESTING = “1” hilfreich sein, aber setze es vor Produktivbetrieb auf “0”.
- Monitoring: Aktiviere E-Mail-Benachrichtigungen und prüfe LFD-Logs in /var/log/lfd.log.
Incident-Playbook: Wenn du dich per SSH aussperrst
- Bewahre lokalen Konsolen-/KVM-Zugriff (oder Provider-Konsole).
- Melde dich am Server an und setze TESTING temporär wieder auf “1” oder starte csf mit:
csf -f # löscht Regeln, stellt temporären Zugriff wieder her
- Überprüfe csf.allow und entferne problematische Regeln.
- Setze die gesicherte csf.conf wieder ein, reload:
cp /etc/csf/csf.conf.bak. /etc/csf/csf.conf
csf -r
Rollback SOP (Kurz)
- Schritt 1: Konfigurations-Backup restaurieren.
- Schritt 2: csf neu laden (csf -r).
- Schritt 3: Services prüfen (systemctl status csf lfd).
- Schritt 4: Logs untersuchen (/var/log/lfd.log, /var/log/messages).
Entscheidungshilfe: CSF vs Alternativen
Merke: CSF ist eine iptables-basierte Lösung mit integriertem LFD und enger Integration zu cPanel/WHM. Alternativen:
- firewalld (CentOS-Standard, abstrahiert iptables/nftables)
- nftables (Modernere Paketfilter-Engine)
- fail2ban (Fokus auf Login-Bruteforce-Schutz, kann mit iptables arbeiten)
Kurzheuristik: Wenn du cPanel/WHM nutzt oder eine integrierte LFD-Funktion möchtest, ist CSF sinnvoll. Für reine nftables-Umgebungen oder Kubernetes-Cluster sind andere Lösungen besser geeignet.
Rollenbasierte Checklisten
Systemadministrator (Vor der Installation):
- Root-Zugang prüfen
- Paketquellen aktualisieren
- Backup-Plan bestätigen
- Admin-IP zu csf.allow bereitstellen
DevOps / Plattform-Engineer (Deployment):
- Automatisierte Installation testen (Script/Ansible)
- Monitoring & Alerting konfigurieren
- Integration in CMDB und Change-Log dokumentieren
Hosting-Provider (Multi-Tenant):
- Default-Regeln für SSH/HTTP/HTTPS setzen
- Whitelisting-Prozess für Kunden implementieren
- Abuse-Handling-Prozess definieren
Helpdesk / Support:
- Anleitung zur Entsperrung (csf -ar / csf -dr) erstellen
- Kontaktadresse für LFD-Mails pflegen
- Standardantworten für Kunden bereitstellen
Wann CSF nicht die beste Wahl ist (Counterexamples)
- Wenn du bereits nftables im Einsatz hast und volle Kontrolle über nftables-Regeln brauchst.
- In containerisierten Umgebungen (z. B. Kubernetes) wo Netzwerk-Policies anders verwaltet werden.
- Wenn du nur einzelnen simplen Login-Schutz brauchst; fail2ban kann leichter sein.
Merkmale & kurze Fact-Box
- Hauptpfade: /etc/csf/csf.conf (Konfiguration), /usr/local/csf/bin (Skripte)
- Wichtiges Tool: csf, lfd (Login Failure Daemon)
- Integration: WHM/cPanel, DirectAdmin, Webmin
- Benachrichtigungen: Mailalerts für SSH/su-Fälle
Entscheidungsfluss (Mermaid)
flowchart TD
A{Hast du cPanel/WHM?} -->|Ja| B[CSF: empfohlen]
A -->|Nein| C{Nutzt du nftables?}
C -->|Ja| D[Behalte nftables]
C -->|Nein| E{Brauchst du Login-Alerts?}
E -->|Ja| B
E -->|Nein| F[fail2ban oder firewalld prüfen]
Mini-Methodologie für sichere CSF-Einführung
- Testumgebung mit identischer OS-Version aufbauen.
- Installation und automatisierte Tests durchführen.
- Konfiguration mit Whitelist für Admin-IPs anpassen.
- Monitoring & Alerting aktivieren, Probeläufe durchführen.
- Rollout schrittweise in Produktion, Change-Dokumentation.
Kompatibilität & Migrationstipps
- Wenn firewalld aktiviert ist, deaktiviere es vor CSF-Start.
- Bei Migrationspfaden von fail2ban: Exportiere Whitelists und Blocklisten, gleiche Regeln manuell in CSF nachziehen.
- Prüfe Cron-Jobs und Überwachungsskripte nach Migration.
Datenschutz & Logging
CSF/LFD protokolliert IP- und Login-Informationen. Prüfe in Regionen mit strengen Datenschutzanforderungen (z. B. DSGVO), ob Log-Aufbewahrung, Zugriffsbeschränkungen und Löschfristen umgesetzt sind.
Wichtig: Minimale Logging-Konfiguration und Zugriffsprotokolle implementieren, falls personenbezogene Daten betroffen sind.
Häufige Fragen (FAQ)
Funktioniert CSF mit systemd und firewalld?
CSF nutzt systemd-Services (csf, lfd). firewalld sollte gestoppt und deaktiviert werden, bevor CSF aktiviert wird, um Regelkonflikte zu vermeiden.
Kann CSF SSH-Verbindungen blockieren?
Ja — wenn Regeln falsch gesetzt sind. Deshalb: eigene Admin-IP vorab in csf.allow eintragen und TESTING zunächst verwenden.
Unterstützt CSF IPv6?
CSF bietet Konfigurationen für IPv6, prüfe die csf.conf und teste IPv6-Regeln separat.
Schlussbemerkung
CSF bietet eine praktikable, gut integrierbare Firewall-Lösung für klassische Hosting-Umgebungen auf iptables-Basis. Mit sorgfältiger Vorbereitung, Whitelisting und Aktivierung von Monitoring ist CSF eine solide Wahl für Administratoren, die neben Paketfilterung auch Login-/Intrusion-Detection benötigen.
Wichtig
- Immer Backups erstellen, bevor du Firewall-Regeln änderst.
- Teste Änderungen in einer sicheren Umgebung, bevor du sie in Produktion setzt.
Ähnliche Materialien

AirDrop: Dateien drahtlos zwischen iPhone und Mac

TF1 in den USA schauen – 4 sichere Methoden

Origin Fehler 65546:0 schnell beheben

Feedburner: 0‑Abonnenten‑Fehler beheben

Dateien zwischen iPad und Android übertragen
