Detaillierte Erläuterung der grundlegenden Befehle der Firewalld-Firewall in Centos7

Detaillierte Erläuterung der grundlegenden Befehle der Firewalld-Firewall in Centos7

1. Grundlagen der Linux-Firewall

Das Linux-Firewall-System arbeitet hauptsächlich auf der Netzwerkebene und filtert und beschränkt TCP/IP-Datenpakete in Echtzeit. Es handelt sich um eine typische Paketfilter-Firewall (oder Netzwerkebenen-Firewall). Das Firewall-System des Linux-Systems basiert auf der Koexistenz des Kernels: Firewalld, Iptables und Ebtables. Standardmäßig wird Firewalld zum Verwalten des Netfilter-Subsystems verwendet.

  • Netfilter: Bezieht sich auf die interne Struktur der Paketfilter-Firewall im Linux-Kernel. Sie existiert nicht in Form eines Programms oder einer Datei und gehört zum Firewall-Funktionssystem "Kernelstatus".
  • Firewalld: bezieht sich auf das Befehlsprogramm zum Verwalten der Linux-Firewall, das zum Firewall-Verwaltungssystem „Benutzermodus“ gehört.

1. Übersicht über Firewalld

Die Rolle von Firewalld besteht darin, passende Regeln (oder Richtlinien) für den Paketfiltermechanismus bereitzustellen. Durch verschiedene Regeln teilt es Netfilter mit, wie mit Datenpaketen umgegangen werden soll, die von einer bestimmten Quelle kommen, an ein bestimmtes Ziel gehen oder bestimmte Protokolleigenschaften aufweisen. Um Firewalls bequemer zu organisieren und zu verwalten, bietet Firewalld dynamische Firewall-Verwaltungstools, die Netzwerkverbindungen und durch Netzwerkzonen definierte Schnittstellensicherheitsstufen unterstützen. Unterstützt IPv4- und IPv6-Firewalleinstellungen sowie Ethernet-Bridge und verfügt über zwei Konfigurationsmodi:

  • Ausführungskonfiguration
  • Permanente Konfiguration

Es unterstützt auch Dienste oder Anwendungen, um Schnittstellen für Firewall-Regeln direkt hinzuzufügen.

2. Firewalld-Netzwerkbereich

Firewalld unterteilt den gesamten Netzwerkdatenverkehr in mehrere Zonen und vereinfacht so die Firewall-Verwaltung. Firewall-Regeln, die den Datenverkehr anhand von Bedingungen wie der Quell-IP-Adresse des Datenpakets oder der eingehenden Netzwerkschnittstelle in den entsprechenden Bereich umleiten.

Bei Paketen, die in das System gelangen, muss zunächst die Quelladresse überprüft werden:

  • Wenn die Quelladresse einem bestimmten Bereich zugeordnet ist, werden die für diesen Bereich festgelegten Regeln ausgeführt.
  • Wenn die Quelladresse keiner bestimmten Zone zugeordnet ist, wird die Zone der eingehenden Netzwerkschnittstelle verwendet und die für diese Zone definierten Regeln werden ausgeführt.
  • Wenn die Netzwerkschnittstelle keiner bestimmten Zone zugeordnet ist, wird die Standardzone verwendet und die für diese Zone definierten Regeln werden ausgeführt.

Die Standardzone ist keine separate Zone, sondern verweist auf eine andere im System definierte Zone. Standardmäßig ist die Standardzone öffentlich, dies kann jedoch geändert werden. Die oben genannten Übereinstimmungsregeln gelten in der richtigen Reihenfolge, und die erste übereinstimmende Regel gewinnt. In jedem Bereich können Sie eine Reihe von Diensten oder Ports konfigurieren, die geöffnet oder geschlossen werden sollen. Jeder vordefinierte Bereich von Firewalld ist mit Diensten eingestellt, die standardmäßig geöffnet sind.

3. Beschreibung der vordefinierten Bereiche von Firewalld

  • Vertrauenswürdig (Vertrauenszone): kann alle Netzwerkverbindungen empfangen;
  • öffentlich: (Öffentliche Zone): Eingehenden Datenverkehr ablehnen, sofern er nicht mit ausgehendem Datenverkehr zusammenhängt oder den vordefinierten Diensten des SSH- oder DHCPv6-Clients entspricht.
  • Arbeit (Arbeitszone): Eingehenden Datenverkehr ablehnen, sofern er nicht mit ausgehendem Datenverkehr zusammenhängt oder den vordefinierten Diensten ssh, ipp-client und dhcpv6-client entspricht. Wird für die Arbeitszone verwendet.
  • home (Heimzone): Eingehenden Datenverkehr ablehnen, sofern er nicht mit ausgehendem Datenverkehr zusammenhängt oder den vordefinierten Diensten ssh, ipp-client, mdns, samba-client und dhcpv6-client entspricht. Wird für Heimnetzwerke verwendet.
  • interne Zone: Lehnt eingehenden Datenverkehr ab, sofern er nicht mit ausgehendem Datenverkehr zusammenhängt oder den vordefinierten Diensten ssh, ipp-client, mdns, samba-client und dhcpv6-client entspricht. Wird für interne Netzwerke verwendet.
  • extern (externe Zone): Eingehenden Datenverkehr ablehnen, sofern er nicht mit ausgehendem Datenverkehr zusammenhängt oder dem vordefinierten SSH-Dienst entspricht.
  • DMZ (entmilitarisierte Zone): Lehnt eingehenden Datenverkehr ab, sofern dieser nicht mit ausgehendem Datenverkehr zusammenhängt oder dem vordefinierten SSH-Dienst entspricht.
  • blocak (gesperrte Zone): verweigert den gesamten eingehenden Datenverkehr, sofern er nicht mit ausgehendem Datenverkehr zusammenhängt;
  • Drop (Drop Zone): verwirft den gesamten eingehenden Datenverkehr, sofern er nicht mit ausgehendem Datenverkehr zusammenhängt, und generiert keine Fehlerantworten, einschließlich ICMP.

2. Konfigurationsmethode der Firewalld-Firewall

Im Centos 7-System kann Firewalld auf drei Arten konfiguriert werden:

  • grafisches Tool firewalld-config;
  • Befehlszeilentool firewalld-cmd;
  • Konfigurationsdateien in /etc/firewalld/;

Im Allgemeinen wird nicht empfohlen, die Konfigurationsdatei direkt zu bearbeiten.

1. Grundlegende Befehle von Firewalld-cmd

[root@centos01 ~]# systemctl start firewalld <!--Starte Firewall-->
[root@centos01 ~]# systemctl enable firewalld<!--Stellt Firewalld so ein, dass es beim Booten automatisch gestartet wird-->
[root@centos01 ~]# systemctl status firewalld <!--Überprüfen Sie den Betriebsstatus der Firewall-->
[root@localhost ~]# firewall-cmd --state <!-- Den Berechtigungsstatus der Firewall anzeigen -->
läuft
[root@centos01 ~]# systemctl stop firewalld<!--Stop firewalld-->
[root@centos01 ~]# systemctl disable firewalld<!--Stellt Firewall so ein, dass sie beim Booten nicht automatisch gestartet wird-->
[root@centos01 ~]# firewall-cmd --get-zones <!--Die vordefinierten Bereiche der Firewall anzeigen-->
[root@centos01 ~]# firewall-cmd --get-service <!--Von der Firewall unterstützte vordefinierte Diensttypen anzeigen-->
[root@centos01 ~]# firewall-cmd --get-default-zone <!--Standardzone des Systems anzeigen-->
[root@localhost /]# firewall-cmd --reload <!--Firewall neu laden-->
[root@centos01 ~]# firewall-cmd --get-active-zones <!--Aktivierte Bereiche anzeigen-->

[root@centos01 ~]# firewall-cmd --get-icmptypes <!--Vordefinierte ICMP-Typen anzeigen-->
Adresse nicht erreichbar, ungültiger Header, Kommunikation verboten, Ziel nicht erreichbar 
Echo-Antwort Echo-Anforderung Fragmentierung erforderlich Host-Prioritätsverletzung Host verboten
Host-Umleitung, Host unbekannt, Host nicht erreichbar, IP-Header schlecht, Nachbar-Werbung
Nachbarwerbung, Netzwerk verboten, Netzwerkumleitung, Netzwerk unbekannt 
Netzwerk nicht erreichbar, keine Route, Paket zu groß, Parameterproblem, Port nicht erreichbar
Vorrang-Abschaltung, Protokoll nicht erreichbar, Weiterleitung, erforderliche Option fehlt
Router-Werbung, Router-Anfrage, Source-Quench, Source-Route-Fehler, Zeit überschritten
Zeitstempel-Antwort Zeitstempel-Anfrage Tos-Host-Umleitung Tos-Host-nicht erreichbar 
Tos-Netzwerk-Umleitung Tos-Netzwerk-nicht erreichbar TTL-Null während der Reassemblierung 
TTL-Null während der Übertragung, unbekannter Header-Typ, unbekannte Option

Die Bedeutung einiger Blockierungstypen in den Ausführungsergebnissen des Befehls „firewall-cmd --get-icmptypes“ ist wie folgt:

  • Ziel nicht erreichbar: Die Zieladresse ist nicht erreichbar.
  • Echo-Antwort: Antwort;
  • Parameterproblem: Parameterproblem;
  • umleiten: umleiten;
  • Router-Werbung: Router-Werbung;
  • Router-Anfrage: Router-Anfrage;
  • Source-Quench: Quellen-Ende-Unterdrückung;
  • Zeit überschritten: Zeitüberschreitung;
  • Zeitstempel-Antwort: Zeitstempel-Antwort;
  • Zeitstempelanforderung: Zeitstempelanforderung;

2. Firewalld-Zonenverwaltungsoptionen

  • --get-default-zone: Zeigt die Standardzone einer Netzwerkverbindung oder -schnittstelle an.
  • --set-default-zone=<zone>: Legen Sie die Standardzone für die Netzwerkverbindung oder Schnittstelle fest;
  • --get-active-zones: Alle aktivierten Zonen anzeigen;
  • --get-zone-of-interface=<Schnittstelle>: Zeigt die an die angegebene Schnittstelle gebundene Zone an;
  • --zone=<Zone> --add-interface=<Schnittstelle>: gibt die Zone an, an die die Schnittstelle gebunden werden soll;
  • --zone=<Zone> --change-interface=<Schnittstelle>: Ändern Sie die gebundene Netzwerkschnittstelle für die angegebene Zone;
  • --zone=<Zone> --remove-interface=<Schnittstelle>: Löscht die gebundene Netzwerkschnittstelle für die angegebene Zone;
  • --list-all=zones: Alle Zonen und ihre Regeln anzeigen;
  • [--zone=<zone>] --list-all: Zeigt alle Regeln für alle angegebenen Zonen an. Wenn --zone=<zone> weggelassen wird, bedeutet dies, dass nur die Standardzone ausgeführt wird.

Nachfolgend sehen Sie ein Beispiel für die Gebietsverwaltung:

[root@centos01 ~]# firewall-cmd --get-default-zone <!--Zeige die Standardzone im aktuellen System-->
[root@centos01 ~]# firewall-cmd --list-all<!--Alle Regeln des Standardbereichs anzeigen-->
[root@centos01 ~]# firewall-cmd --get-zone-of-interface=ens32 <!-- Zone anzeigen, in der sich die ens32-Schnittstelle befindet -->
intern
[root@centos01 ~]# firewall-cmd --zone=internal --change-interface=ens32 <!--Ändern Sie den Bereich, der der ens32-Schnittstelle entspricht, in den internen Bereich-->
 Die Schnittstelle wird von NetworkManager gesteuert, die Zone wird auf „intern“ eingestellt.
Erfolg
[root@centos01 ~]# firewall-cmd --zone=internal --list-interface <!--Schnittstellenliste im internen Bereich anzeigen-->
ens32
[root@centos01 ~]# firewall-cmd --get-active-zones <!--Alle aktivierten Zonen anzeigen-->
intern
 Schnittstellen: ens32

3. Firewalld-Dienstverwaltung

Zur einfacheren Verwaltung definiert Firewalld viele Dienste vor, die im Verzeichnis /usr/lib/firewalld/services/ gespeichert sind. Dienste werden über eine einzige XML-Konfigurationsdatei angegeben. Diese Konfigurationsdateien werden im folgenden Format benannt: service-name.xml. Jede Datei entspricht einem bestimmten Netzwerkdienst, beispielsweise dem SSH-Dienst. Wir müssen die Dienstkonfigurationsdatei im Verzeichnis /etc/firewalld/services/ platzieren. Die Servicekonfiguration bietet folgende Vorteile:

Die Verwaltung von Regeln nach Dienstnamen ist benutzerfreundlicher;

Der Modus zum Organisieren von Portgruppen nach Dienst ist effizienter. Wenn ein Dienst mehrere Netzwerkports verwendet, entspricht die Dienstkonfigurationsdatei einer Verknüpfung für Stapeloperationen zur Regelverwaltung dieser Ports.

1) Beschreibung allgemeiner Optionen zur Dienstverwaltung im Befehlsbereich von firewalld-cmd:

  • [--zone=<zone>] --list-services: Zeigt alle Dienste an, auf die in der angegebenen Zone zugegriffen werden darf.
  • [--zone=<zone>] --add-service=<service>: Legen Sie einen Dienst fest, auf den für die angegebene Zone zugegriffen werden darf.
  • [--zone=<zone>] --remove-service=<dienst>: Löscht einen Dienst, auf den in der angegebenen Zone zugegriffen werden darf.
  • [--zone=<zone>] --list-ports: Zeigt alle Portnummern an, auf die in der angegebenen Zone zugegriffen werden darf.
  • [--zone=<zone>] --add-port=<portid>[-<portid>]/<protocol>: Legen Sie eine Portnummer/einen Portbereich (einschließlich Protokollnummer) fest, auf den für die angegebene Zone zugegriffen werden darf.
  • [--zone=<zone>] --remove-port=<portid>[-<portid>]/<protocl>: Löscht die Portnummer (einschließlich Protokollname), auf die in der angegebenen Zone zugegriffen werden darf.
  • [--zone=<zone>] --list-icmp-blocaks: Zeigt alle ICMP-Typen an, die den Zugriff in der angegebenen Zone verweigern;
  • [--zone=<zone>] --add-icmp-block=<icmptype>: Legen Sie einen bestimmten ICMP-Typ fest, um den Zugriff auf die angegebene Zone zu verweigern;
  • [--zone=<zone>] --remove-icmp-block=<icmptype>: Löscht einen bestimmten ICMP-Typ, der so eingestellt ist, dass er den Zugriff in der angegebenen Zone verweigert. Wenn --zone=<zone> weggelassen wird, bedeutet dies, dass der Vorgang in der Standardzone ausgeführt wird.

2) Nachfolgend sehen Sie ein Beispiel für die Dienstverwaltung von Firewalld (Einstellen der Dienste, auf die für die Standardzone zugegriffen werden darf):

 [root@centos01 ~]# firewall-cmd --list-services <!--Alle Dienste anzeigen, auf die im Standardbereich zugegriffen werden darf-->
dhcpv6-Client ssh 
[root@centos01 ~]# firewall-cmd --add-service=http <!--Legen Sie den Standardbereich fest, um den Zugriff auf den HTTP-Dienst zuzulassen-->
Erfolg
[root@centos01 ~]# firewall-cmd --add-service=https <!--Legen Sie den Standardbereich fest, um den Zugriff auf den https-Dienst zuzulassen-->
Erfolg
[root@centos01 ~]# firewall-cmd --list-services <!--Alle Dienste anzeigen, auf die im Standardbereich zugegriffen werden darf-->

dhcpv6-client ssh https http

3) Nachfolgend sehen Sie ein Beispiel für die Dienstverwaltung von Firewalld (Einstellen von Diensten, auf die für die interne Zone zugegriffen werden darf):

[root@centos01 ~]# Firewall-cmd --zone=internal --add-service=mysql 
       <!--Legen Sie den internen Bereich fest, um den Zugriff auf den MySQL-Dienst zu ermöglichen-->
Erfolg
[root@centos01 ~]# Firewall-cmd --zone=internal --remove-service=samba-client 
     <!--Stellen Sie den internen Bereich so ein, dass der Zugriff auf den Samba-Client-Dienst nicht erlaubt ist-->
Erfolg
[root@centos01 ~]# Firewall-cmd --zone=internal --list-services 
       <!--Alle Dienste anzeigen, auf die im internen Bereich zugegriffen werden darf-->
SSH, MDNS, DHCPv6-Client, MySQL

4. Hafenmanagement

Bei der Konfiguration der Dienste können vordefinierte Netzwerkdienste über den Dienstnamen konfiguriert werden und die an den Diensten beteiligten Ports werden automatisch geöffnet. Für nicht vordefinierte Dienste können Sie jedoch nur Ports für die angegebene Zone manuell hinzufügen. Sie können beispielsweise Port 443/TCP in der internen Zone öffnen, indem Sie die folgenden Vorgänge ausführen: Hier ist ein Beispiel:

 [root@centos01 ~]# Firewall-cmd --zone=internal --add-port=443/tcp
         <!--Öffnen Sie Port 443/tcp im internen Bereich-->
Erfolg

Wenn Sie den Zugriff auf Port 443/TCP in der internen Zone verbieten möchten, führen Sie den folgenden Befehl aus:

 [root@centos01 ~]# Firewall-cmd --zone=internal --remove-port=443/tcp
        <!--Zugriff auf Port 443/tcp im internen Bereich verbieten-->
Erfolg

Die obigen Konfigurationen sind alle temporäre Konfigurationen. Wenn Sie die aktuelle Konfiguration als permanente Konfiguration speichern möchten, können Sie den folgenden Befehl verwenden:

 [root@centos01 ~]# Firewall-cmd --runtime-to-permanent
Erfolg

Um es direkt als permanente Regel zu konfigurieren, müssen Sie die Option --permanent wie folgt einschließen:

[root@centos01 ~]# firewall-cmd --add-icmp-block=echo-request --permanent <!--Ping verbieten-->

Erfolg
[root@centos01 ~]# Firewall-cmd --zone=external --add-icmp-block=echo-request --permanent      
      <!--Externen Bereich so konfigurieren, dass Ping verboten wird-->
Erfolg

3. Zwei Konfigurationsmodi von Firewalld

Wie bereits erwähnt, verfügt das Befehlstool Firewall-CMD über zwei Konfigurationsmodi: Der Laufzeitmodus bezieht sich auf die aktuell im Speicher ausgeführte Firewall-Konfiguration, die ungültig wird, wenn das System oder der Firewalld-Dienst neu gestartet oder gestoppt wird. Der permanente Modus bezieht sich auf die Regelkonfiguration beim Neustart oder Neuladen der Firewall, die dauerhaft in der Konfigurationsdatei gespeichert wird.

Das Befehlstool Firewall-cmd bietet drei Optionen in Bezug auf den Konfigurationsmodus:

  • --reload: lädt die Firewall-Regeln neu und speichert die Statusinformationen, d. h. wendet die dauerhafte Konfiguration als Laufzeitkonfiguration an;
  • --permanent: Befehle mit dieser Option werden verwendet, um permanente Regeln festzulegen. Diese Regeln werden erst wirksam, wenn die Firewall-Regeln neu gestartet oder neu geladen werden. Ohne diese Option bedeutet dies, dass sie zum Festlegen von Laufzeitregeln verwendet wird.
  • --runtime-to-permanent: Schreibt die aktuelle Laufzeitkonfiguration in die Regelkonfigurationsdatei, wodurch die aktuellen Regeln im Speicher zu einer permanenten Konfiguration werden.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der grundlegenden Verwendung der CentOS7-Firewall unter Linux
  • Eine kurze Einführung in die einfache Verwendung der CentOS7-Firewall und offener Ports
  • Centos7 (Firewall) Firewall öffnet allgemeine Portbefehle
  • Einfaches Konfigurationstutorial zur CentOS7 Docker-Firewall
  • So deaktivieren Sie die Standard-Firewall und aktivieren die iptables-Firewall in CentOS 7.0
  • Zusammenfassung der allgemeinen Befehle der Firewall in CentOS 7
  • Vollständige Liste der CentOS7-Firewall-Betriebsbefehle

<<:  Grafisches Tutorial zur Installation und Konfiguration der MySQL 5.7.21-Dekomprimierungsversion

>>:  Detaillierte Erläuterung der Laderegeln der require-Methode in node.js

Artikel empfehlen

Detaillierte Schritte zur Installation von ros2 in Docker

Inhaltsverzeichnis Hauptthema 1. Installieren Sie...

Detaillierte Schritte zur Installation von Tomcat, MySQL und Redis mit Docker

Inhaltsverzeichnis Tomcat mit Docker installieren...

Beispielcode zur Implementierung einer schwebenden Seitenbox basierend auf JS

Wenn die Bildlaufleiste nach unten gezogen wird, ...

CentOS8-Installationstutorial für JDK8/Java8 (empfohlen)

Vorwort Zuerst wollte ich es mit wget auf CentOS8...

MySQL-Batch löschen großer Datenmengen

MySQL-Batch löschen großer Datenmengen Angenommen...

JavaScript-Code zur Implementierung eines einfachen Rechners

In diesem Artikelbeispiel wird der spezifische Ja...

Vorteile und Nachteile des MySQL Advanced Learning Index sowie Nutzungsregeln

1. Vor- und Nachteile von Indizes Vorteile: schne...