FirewallD ist ein Firewall-Verwaltungstool, das standardmäßig auf CentOS 7-Servern verfügbar ist. Es ist eine Art von Firewall-Verwaltungslösung, die iptables-Regeln verwaltet. Grundsätzlich ersetzt FirewallD iptables als Standard-Firewall-Management-Tool.
Hier bei LinuxAPT helfen wir unseren Kunden im Rahmen unserer Server Management Services regelmäßig bei der Durchführung verwandter FirewallD-Abfragen.
In diesem Zusammenhang werden wir untersuchen, wie ein Firewalld auf einem CentOS 7-Server eingerichtet wird, und einige grundlegende FirewallD-Konzepte.
Grundlegende Konzepte in Firewalld
FirewallD verwendet Konzepte von Diensten und Zonen anstelle von iptables-Regeln und -Ketten. Damit können Sie konfigurieren, welcher Datenverkehr zum und vom System zugelassen oder nicht zugelassen werden soll. FirewallD verwendet das Dienstprogramm firewall-cmd, um Ihre Firewall-Konfiguration zu verwalten.
FirewallD-Zonen
Zonen sind Regelsätze, die festlegen, welcher Datenverkehr zugelassen werden soll, abhängig von der Vertrauensstufe, die Sie in die Netzwerke haben, mit denen Ihr Computer verbunden ist. Sie können einer Zone Netzwerkschnittstellen und -quellen zuweisen.
Es folgen vordefinierte Zonen, die in FirewallD enthalten sind, in der Reihenfolge der Vertrauensstufe der Zone vom am wenigsten vertrauenswürdigen zum am meisten vertrauenswürdigen:
- drop:Alle eingehenden Verbindungen werden ohne Antwort abgebrochen. Es sind nur ausgehende Verbindungen erlaubt. Dies ist die niedrigste Vertrauensstufe.
- block:Dies ist dasselbe wie oben, aber alle eingehenden Verbindungen werden mit einer icmp-host-prohibited- oder icmp6-adm-prohibited-Nachricht abgewiesen. Nur ausgehende Verbindungen sind erlaubt.
- öffentlich:Dies sind nicht vertrauenswürdige öffentliche Bereiche. Sie vertrauen anderen Computern im Netzwerk nicht, erlauben aber möglicherweise ausgewählte eingehende Verbindungen.
- extern:Externe Netze für den Fall, dass Sie die Firewall als Gateway verwenden. Es ist für NAT-Masquerading konfiguriert, sodass Ihr internes Netzwerk privat, aber erreichbar bleibt.
- intern:Für Computer in Ihrem internen Netzwerk werden nur ausgewählte eingehende Verbindungen akzeptiert.
- dmz:Demilitarisierte DMZ-Zone, öffentlich zugänglich mit eingeschränktem Zugriff auf das interne Netzwerk, nur ausgewählte eingehende Verbindungen werden akzeptiert.
- work:Wird für Arbeitsmaschinen verwendet. Vertrauen Sie den meisten Computern im Netzwerk. Ein paar mehr Dienste könnten erlaubt sein.
- home:Wird für Heimmaschinen verwendet. Andere Computer im Netzwerk sind im Allgemeinen vertrauenswürdig. Nur ausgewählte eingehende Verbindungen sind erlaubt.
- trusted:Alle Netzwerkverbindungen sind akzeptabel. Vertrauen Sie allen Computern im Netzwerk.
Firewall-Dienste
FirewallD-Dienste sind XML-Konfigurationsdateien mit vordefinierten Regeln, die innerhalb einer Zone gelten und die erforderlichen Einstellungen definieren, um eingehenden Datenverkehr für einen bestimmten Dienst zuzulassen. xml-Konfigurationsdateien werden in den Verzeichnissen /usr/lib/firewalld/services/ und /etc/firewalld/services/ gespeichert.
Wie installiert und aktiviert man FirewallD?
Bevor Sie mit diesem Installationsvorgang fortfahren, stellen Sie sicher, dass Sie sich mit einem sudo-fähigen Benutzerkonto oder mit einem Root-Benutzer anmelden.
Standardmäßig ist Firewalld auf Ihrem CentOS 7 verfügbar. Wenn es nicht auf Ihrem System vorhanden ist, können Sie das Paket installieren, indem Sie den folgenden Befehl ausführen:
$ sudo yum install firewalld
Der Firewalld-Dienst ist standardmäßig deaktiviert. Sie können den Firewall-Status überprüfen mit:
$ sudo firewall-cmd --state
Wenn Sie jetzt installiert oder vorher nicht aktiviert haben, wird es nicht ausgeführt gedruckt, andernfalls wird es ausgeführt gedruckt.
Sie können den FirewallD-Dienst starten und beim Booten aktivieren, indem Sie Folgendes eingeben:
$ sudo systemctl start firewalld
$ sudo systemctl enable firewalld
Wie konfiguriere ich meine Firewall mit FirewallD ?
Standardmäßig ist nach dem Aktivieren des FirewallD-Dienstes die öffentliche Zone die Standardzone. Sie können eine Liste der Standardzone abrufen, indem Sie Folgendes eingeben:
$ sudo firewall-cmd --get-default-zone
Um eine Liste aller verfügbaren Zonen zu erhalten, führen Sie den folgenden Befehl aus:
$ sudo firewall-cmd --get-zones
Allen Netzwerkschnittstellen wird die Standardzone zugewiesen. Um zu überprüfen, welche Zonen von Ihrer/Ihren Netzwerkschnittstelle(n) verwendet werden, geben Sie Folgendes ein:
$ sudo firewall-cmd --get-active-zones
Sie können die Zonenkonfigurationseinstellungen ausdrucken mit:
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0 eth1
sources:
services: ssh dhcpv6-client
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
So ändern Sie die Firewall-Standardzone ?
Um die Standardzone zu ändern, verwenden Sie das Flag –set-default-zone gefolgt vom Namen der Zone, die Sie als Standardzone festlegen möchten. Um beispielsweise die Standardzone auf home zu ändern, sollten Sie den folgenden Befehl ausführen:
$ sudo firewall-cmd --set-default-zone=dmz
Überprüfen Sie die Änderungen mit:
$ sudo firewall-cmd --get-default-zone
Zulassen der FirewallD-Regel für HTTP und HTTPS
Um permanente Dienstregeln für HTTP und HTTPS zur dmz-Zone hinzuzufügen, führen Sie Folgendes aus:
$ firewall-cmd --zone=dmz --add-service=http --permanent
$ firewall-cmd --zone=dmz --add-service=https --permanent