Das Befehlszeilentool firewall-cmd ist Teil der Firewalld Anwendung, die standardmäßig installiert ist. Es kann verwendet werden, um permanente und nicht permanente Laufzeitänderungen vorzunehmen.
Firewalld installieren
Firewalld ist standardmäßig in der RPM-Gruppe „core“ enthalten, aber falls es nicht installiert ist, können Sie es immer mit yum installieren.
# yum install -y firewalld
Aktivieren Sie die Firewall so, dass sie beim Booten startet:
# systemctl enable firewalld
Starten Sie jetzt den Firewalld-Dienst neu.
# systemctl restart firewalld
Verfügbare Optionen mit dem Befehl firewall-cmd
# firewall-cmd --help Usage: firewall-cmd [OPTIONS...] General Options -h, --help Prints a short help text and exists -V, --version Print the version string of firewalld -q, --quiet Do not print status messages Status Options --state Return and print firewalld state --reload Reload firewall and keep state information --complete-reload Reload firewall and lose state information --runtime-to-permanent Create permanent from runtime configuration
Der Befehl firewall-cmd bietet Kategorien von Optionen wie General, Status, Permanent, Zone, IcmpType, Service, Adapt and Query Zones, Direct, Lockdown, Lockdown Whitelist und Panic. Weitere Informationen finden Sie auf der man-Seite von firewall-cmd.
Nützliche Beispiele für Firewall-Befehle
1. Alle Zonen auflisten
Verwenden Sie den folgenden Befehl, um Informationen für alle Zonen aufzulisten. Es wird nur eine Teilausgabe angezeigt.
# firewall-cmd --list-all-zones work target: default icmp-block-inversion: no interfaces: sources: services: dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules: drop target: DROP icmp-block-inversion: no interfaces: sources: services: ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules: .....
Öffentlich ist der Standardzonensatz, wenn Sie ihn nicht ändern. Verwenden Sie den folgenden Befehl, um die aktuell eingestellte Standardzone zu überprüfen:
# firewall-cmd --get-default-zone public
2. Erlaubte Dienste und Ports auf dem System auflisten
Verwenden Sie den folgenden Befehl, um den derzeit zulässigen Dienst auf Ihrem System anzuzeigen.
# firewall-cmd --list-services dhcpv6-client ssh
So listen Sie die auf Ihrem System geöffneten Ports auf:
# firewall-cmd --list-ports
Normalerweise sehen Sie hier keine Ports aufgelistet, wenn Sie gerade die Firewall aktiviert haben.
3. So aktivieren Sie alle eingehenden Ports für einen Dienst
Sie können die erforderlichen Ports für einen Dienst auch öffnen, indem Sie –add-service verwenden Möglichkeit. So erlauben Sie den Zugriff von HTTP-Clients für die öffentliche Zone:
# firewall-cmd --zone=public --add-service=http success
So listen Sie Dienste auf, die für die öffentliche Zone zugelassen sind:
# firewall-cmd --zone=work --list-services dhcpv6-client http ssh
Die Verwendung dieses Befehls ändert nur die Runtime-Konfiguration und aktualisiert nicht die Konfigurationsdateien. Die folgende Befehlsfolge zeigt, dass im Runtime-Konfigurationsmodus vorgenommene Konfigurationsänderungen verloren gehen, wenn der Firewalld-Dienst neu gestartet wird:
# systemctl restart firewalld
# firewall-cmd --zone=work --list-services dhcpv6-client ssh
Um Änderungen dauerhaft zu machen, verwenden Sie die Option –permanent. Beispiel:
# firewall-cmd --permanent --zone=public --add-service=http success
Änderungen, die im permanenten Konfigurationsmodus vorgenommen werden, werden nicht sofort implementiert. Beispiel:
# firewall-cmd --zone=work --list-services dhcpv6-client ssh
Änderungen, die in einer permanenten Konfiguration vorgenommen werden, werden jedoch in Konfigurationsdateien geschrieben. Ein Neustart des Firewalld-Dienstes liest die Konfigurationsdateien und implementiert die Änderungen.
Beispiel:
# systemctl restart firewalld
# firewall-cmd --zone=work --list-services dhcpv6-client http ssh
4. Traffic auf einem eingehenden Port zulassen
Der folgende Befehl öffnet den Port 2222 mit sofortiger Wirkung, bleibt aber nicht über Neustarts hinweg bestehen:
# firewall-cmd --add-port=[YOUR PORT]/tcp
Zum Beispiel, um den TCP-Port 2222 zu öffnen:
# firewall-cmd --add-port=2222/tcp
Der folgende Befehl erstellt eine dauerhafte Regel, wird jedoch nicht sofort wirksam:
# firewall-cmd --permanent --add-port=[YOUR PORT]/tcp
Zum Beispiel, um den TCP-Port 2222 zu öffnen:
# firewall-cmd --permanent --add-port=2222/tcp
Um die offenen Ports aufzulisten, verwenden Sie den Befehl :
# firewall-cmd –-list-ports 2222/tcp
5. Firewalld-Dienst starten und stoppen
Verwenden Sie die folgenden Befehle, um den Firewalld-Dienst zu starten/stoppen/status zu geben:
# systemctl start firewalld.service # systemctl stop firewalld.service
So überprüfen Sie den Status des Firewalld-Dienstes:
# systemctl status firewalld.service