firewalld ist der Firewall-Dienst von RHEL, CentOS, Fedora und weiteren Distributionen. Statt langer Regelketten verwaltet er Zonen, denen Netzwerkschnittstellen zugeordnet sind. Die Werkzeuge heißen firewall-cmd (Kommandozeile) und firewall-config (GUI).
Dienst starten und Status prüfen
sudo systemctl enable --now firewalld
sudo firewall-cmd --state # running / not running
sudo firewall-cmd --list-all # Regeln der Standardzone (public)
sudo firewall-cmd --get-zones # verfügbare Zonen anzeigen
Zonen verstehen
Jede Zone ist ein Regelpaket mit eigenem Vertrauensgrad. Die wichtigsten: public (Standard, eingeschränkt), home/work (vertrauter), trusted (alles erlaubt) und drop (alle Pakete verwerfen). Eine Schnittstelle ordnet man einer Zone zu:
sudo firewall-cmd --zone=public --change-interface=eth0
Dienste und Ports freigeben
sudo firewall-cmd --zone=public --add-service=ssh
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-port=8080/tcp
sudo firewall-cmd --zone=public --list-services
sudo firewall-cmd --runtime-to-permanent
Ohne --permanent gilt eine Änderung nur bis zum Neustart (Laufzeit). Mit --reload lädt firewalld die permanenten Regeln neu, ohne die Verbindung zu unterbrechen.
Verdächtige Anmeldeversuche erkennt automatisch fail2ban; große Blocklisten verwaltet ipset.
Erweiterte Regeln
sudo firewall-cmd --zone=public --add-masquerade # NAT für ausgehendes Routing
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" service name="ssh" accept'
sudo firewall-cmd --permanent --add-ipset=blacklist # Quelle aus einer ipset-Menge
Verwandte Grundlagen: iptables-Befehle, nftables-Befehle und Firewall-Grundlagen.