So installieren, konfigurieren und verwenden Sie Firewalld in CentOS und Ubuntu

So installieren, konfigurieren und verwenden Sie Firewalld in CentOS und Ubuntu

Firewalld (Firewall -Daemon) ist eine Alternative zur iptables Der Service für dynamisch verwaltet die Firewall eines Systems mit Unterstützung für Netzwerkzonen (oder Firewall) und bietet eine D-Bus-Schnittstelle zum Verwalten von Konfigurationen. Es ist einfach zu bedienen und zu konfigurieren, und jetzt ist es das Standard -Firewall -Management -Tool auf Rhel/Centos, Fedora und mehrere andere Linux -Verteilungen.

In diesem Artikel werden wir diskutieren, wie Sie System -Firewall konfigurieren Firewall und grundlegende Paketfilterung implementieren in CentOS/Rhel 7 Und Ubuntu.

Die Grundlagen über Firewalld

Firewall besteht aus drei Schichten, die sind::

  • Kernschicht: Verantwortlich für den Umgang mit der Konfiguration und der Rücksende (unten aufgeführt).
  • D-Bus-Schnittstelle: Das Hauptmittel zum Ändern und Erstellen der Firewall -Konfiguration.
  • Backends: Für die Interaktion mit NetFilter (das für die Firewalling verwendete native Kernelmodul). Dazu gehören Iptables, IP6Tables, eBtables, IPSET, NFT, Linnftables; Netzwerk Manager; und Module.

Es verwaltet Firewall -Regeln, indem sie Netzwerk-/Firewall -Zonen implementieren, die das Vertrauensniveau von Netzwerkverbindungen oder Schnittstellen definieren. Weitere unterstützte Firewall -Funktionen umfassen Dienste, direkte Konfiguration (zum direkten Übergeben von RAW iptables -Syntax), Ipsets sowie ICMP -Typen.

Zwei Arten von Konfigurationsumgebungen werden von Firewall unterstützt:

  • Laufzeitkonfiguration, die nur bis zum Neustart des Geräts oder des Firewalld -Dienstes wirksam ist, wurde neu gestartet
  • permanente Konfiguration, die gespeichert wird und anhaltend funktioniert.

Mit dem Befehlszeilen-Tool von Firewall-CMD wird die Laufzeit und die dauerhafte Konfiguration verwaltet. Alternativ können Sie das GUI-Konfigurationstool (Firewall-Config "-Big für grafische Benutzeroberflächen verwenden, um mit dem Daemon zu interagieren.

Zusätzlich, Firewall bietet eine gut definierte Schnittstelle für andere lokale Dienste oder Anwendungen, um Änderungen an den Firewall -Regeln direkt anzufordern, wenn sie mit Root -Berechtigungen ausgeführt werden.

Die globale Konfigurationsdatei für Firewalld befindet sich unter /etc/Firewalld/Firewall.Conf und Firewall -Funktionen sind im XML -Format konfiguriert.

Wichtige Firewall -Merkmale verstehen

Das zentrale Merkmal von Firewalld sind Netzwerk-/Firewall -Zonen. Jedes andere Merkmal ist an eine Zone begrenzt. Eine Firewall -Zone beschreibt die Vertrauensebene für eine Verbindung, Schnittstelle oder Quelladressenbindung.

Die Standardkonfiguration wird mit einer Reihe vordefinierter Zonen geliefert, die nach der Standardvertrauensebene der Zonen von nicht vertrauenswürdiger zu vertrauenswürdigem: Drop, Block, öffentlich, extern, DMZ, Arbeit, Zuhause, interner und vertrauenswürdig sortiert sind. Sie sind in Dateien definiert, die unter dem gespeichert sind /usr/lib/Firewalld/Zonen Verzeichnis.

Sie können Ihre benutzerdefinierten Zonen mit dem CLI -Client konfigurieren oder hinzufügen oder einfach eine Zonendatei in erstellen oder kopieren in /etc/Firewalld/Zonen aus vorhandenen Dateien und bearbeiten Sie sie.

Ein weiteres wichtiges Konzept unter Firewalld sind Dienstleistungen. Ein Dienst wird mit Ports und Protokollen definiert. Diese Definitionen stellen einen bestimmten Netzwerkdienst dar, z. B. einen Webserver oder einen Remote -Zugriffsdienst. Dienste werden in Dateien definiert, die unter dem gespeichert sind /usr/lib/Firewalld/Services/ oder /etc/Firewalld/Services/ Verzeichnis.

Wenn Sie grundlegende Iptables/IP6Tables/eBtables -Konzepte kennen, können Sie auch die direkte Schnittstelle (oder Konfiguration) verwenden, um direkten Zugriff auf die Firewall zu erhalten. Für diejenigen ohne Iptables -Wissen können Sie jedoch die reiche Sprache verwenden, um komplexere Firewall -Regeln für IPv4 und IPv6 zu erstellen.

So installieren Sie ein Firewalld -Paket unter Linux

An Centos 7, Die Firewall Das Paket wird vorinstalliert und Sie können die Verwendung der folgenden Befehl überprüfen.

$ rpm -qa Firewalld 

An Ubuntu 16.04 Und 18.04, Sie können es mit dem Standardpaket -Manager wie gezeigt installieren.

$ sudo apt installieren Sie Firewalld 

So verwalten Sie den Firewalld -Dienst unter Linux

Firewall ist ein regulärer Systemd -Dienst, der über den SystemCTL -Befehl verwaltet werden kann.

 $ sudo systemctl starten firewalld #Start den Dienst für die mittlere Zeit $ sudo systemCTL Aktivieren Sie Firewalld #Enable Der Service zum automatischen Start zur Bootszeit $ sudo systemCTL Status Firewalld #View Service Status 

Nach dem Start Firewall Der Service können auch prüfen, ob der Daemon ausgeführt wird oder nicht, verwenden Sie die Firewall-CMD Tool (falls es nicht aktiv ist, gibt dieser Befehl "nicht läuft" aus) aus.

$ sudo firewall-cmd-State 
Überprüfen Sie den Firewall -Status

Wenn Sie zufällig Änderungen dauerhaft speichern, können Sie Firewall neu laden. Dadurch werden Firewall -Regeln neu geladen und staatliche Informationen aufbewahrt. Die aktuelle dauerhafte Konfiguration wird zu einer neuen Laufzeitkonfiguration.

$ sudo firewall-cmd-Reload 

Wie man mit Firewall -Zonen in der Firewall arbeitet

Führen Sie diese Befehle aus, um eine Liste aller verfügbaren Firewall -Zonen und -Dienste zu erhalten.

$ sudo firewall-cmd --get-zones $ sudo firewall-cmd --get-services 

Die Standardzone ist die Zone, die für jede Firewall -Funktion verwendet wird, die nicht explizit an eine andere Zone begrenzt ist. Sie können die Standardzone für Netzwerkverbindungen und Schnittstellen durch Ausführen abrufen.

$ sudo Firewall-cmd --get-Default-Zone 
Listen Sie die Standard -Firewall -Zone auf

Verwenden Sie den folgenden Befehl, um die Standardzone beispielsweise für extern zu setzen. Beachten Sie, dass das Hinzufügen der Option hinzugefügt wird --dauerhaft Legt die Konfiguration dauerhaft fest (oder ermöglicht die Abfragung von Informationen aus der dauerhaften Konfigurationsumgebung).

$ sudo firewall-cmd--Set-Default-Zone = externe oder $ sudo Firewall-cmd--Set-Default-Zone = externe --permanent $ sudo Firewall-CMD-Relad 

Schauen wir uns als nächstes an, wie Sie einer Zone eine Schnittstelle hinzufügen können. Dieses Beispiel zeigt, wie Sie Ihren drahtlosen Netzwerkadapter hinzufügen (WLP1S0) zu Zone Home, das in Heimgebieten eingesetzt wird.

$ sudo firewall-cmd --zone = home --add-interface = wlp1s0 
Fügen Sie der Firewalld Zone eine Schnittstelle hinzu

Eine Schnittstelle kann nur zu einer einzelnen Zone hinzugefügt werden. Verwenden Sie die, um es in eine andere Zone zu bewegen, die --Schnittstelle ändern Wechseln Sie wie gezeigt, oder entfernen Sie es mit der vorherigen Zone aus der vorherigen Zone -Schnittstelle entfernen Schalten Sie und fügen Sie es in die neue Zone hinzu.

Angenommen, Sie möchten eine Verbindung zu einem öffentlichen Wi-Fi-Netzwerk herstellen, sollten Sie Ihre drahtlose Schnittstelle in die öffentliche Zone wie folgt zurückschieben:

$ sudo firewall-cmd --zone = public --add-interface = wlp1s0 $ sudo Firewall-cmd --zone = public-change-interface = wlp1s0 
Ändern Sie die Zonenschnittstelle in der Firewalld

Sie können viele Zonen gleichzeitig verwenden. Um eine Liste aller aktiven Zonen mit den aktivierten Funktionen wie Schnittstellen, Diensten, Ports, Protokollen zu erhalten, laufen Sie aus:

$ sudo firewall-cmd --getaktive Zonen 
Listen Sie aktive Zonen in Firewalld auf

In Bezug auf den vorherigen Punkt, wenn Sie weitere Informationen über eine bestimmte Zone finden möchten, bin ich i, wenn Sie weitere Informationen zu einer bestimmten Zone finden möchten.e Alles, was darin hinzugefügt oder aktiviert ist, verwenden Sie einen dieser Befehle:

$ sudo firewall-cmd --zone = home-list-alle oder $ sudo firewall-cmd-Info-zone public 
Suchen Sie Informationen zur Firewall -Zone

Eine weitere nützliche Option ist --Get-Target, Das zeigt Ihnen das Ziel einer dauerhaften Zone. Ein Ziel ist eines von: Standard, Akzeptieren, Drop, ablehnen. Sie können das Ziel verschiedener Zonen überprüfen:

$ sudo firewall-cmd --permanent --zone = public --get-target $ sudo firewall-cmd --permanent --zone = block --get-target $ sudo firewall-cmd --permanent --zone = dmz- -Get-Target $ sudo firewall-cmd --permanent --zone = external --get-target $ sudo firewall-cmd --permanent-Zone = Drop --get-Target 

So öffnen und blockieren Sie Ports in Firewall

Um einen Port (oder eine Port/Protokoll -Kombination) in der Firewall zu öffnen, fügen Sie ihn einfach mit dem in eine Zone hinzu --Add-Port Möglichkeit. Wenn Sie die Zone nicht explizit angeben, wird sie in der Standardzone aktiviert.

Das folgende Beispiel zeigt, wie Sie Port hinzufügen 80 Und 443 um einen in gebundenen Webverkehr über die zu ermöglichen Http Und Https Protokolle jeweils:

$ sudo firewall-cmd --zone = public --permanent --add-port = 80/tcp --add-port = 443/tcp 

Als Nächst.

$ sudo firewall-cmd-Reload $ sudo Firewall-cmd-Info-Zone Public 

Das Blockieren oder Schließen eines Ports in der Firewall ist ebenso einfach, entfernen Sie ihn einfach mit der Zone aus einer Zone --entfernen Möglichkeit. Zum Beispiel zum Schließen von Ports 80 Und 443 in der öffentlichen Zone.

$ sudo firewall-cmd --zone = public --permanent-remove-port = 80/tcp-remove-port = 443/tcp 

Anstatt die Kombination aus der Port- oder Port/Protokoll zu verwenden, können Sie den Servicenamen verwenden, dem ein Port wie im nächsten Abschnitt erläutert wird.

So öffnen und blockieren Sie Dienste in Firewalld

Um einen Dienst in der Firewall zu eröffnen, aktivieren Sie ihn mit der --Add-Service Möglichkeit. Wenn die Zone weggelassen wird, wird die Standardzone verwendet.

Der folgende Befehl ermöglicht den HTTP -Service in der öffentlichen Zone dauerhaft.

$ sudo firewall-cmd --zone = public --permanent --add-service = http $ sudo Firewall-cmd-Reload 

Der --Service entfernen Option kann verwendet werden, um einen Dienst zu deaktivieren.

$ sudo firewall-cmd --zone = public --permanent--remove-service = http $ sudo Firewall-cmd-Reload-Reload 

So aktivieren und deaktivieren Sie IP -Maskerading mit Firewall

IP Maskerading (auch bekannt als Ipmasq oder Masq) ist ein Nat (Netzwerkadressübersetzung) Mechanismus im Linux -Netzwerk, mit dem Ihre Hosts in einem Netzwerk mit privaten IP -Adressen mit dem Internet mithilfe Ihres Linux -Servers (IPMASQ -Gateway) zugewiesen wurden, die öffentliche IP -Adresse zugewiesen wurden.

Es ist eine Eins-zu-Viele-Kartierung. Der Datenverkehr von Ihren unsichtbaren Hosts wird auf andere Computer im Internet erscheinen, als würde er von Ihrem Linux -Server kommen.

Sie können IP aktivieren, das sich in einer gewünschten Zone maskiert, beispielsweise in der öffentlichen Zone. Überprüfen Sie jedoch zunächst, ob das Maskeraden aktiv ist oder nicht (a "NEIN" bedeutet es behindert und a "Ja" bedeutet sonst).

$ sudo firewall-cmd --zone = public-query-masquerade $ sudo Firewall-cmd --zone = public --add-masquerade 

Ein typischer Anwendungsfall für das Maskeradieren ist die Durchführung der Portweiterleitung. Angenommen, Sie möchten SSH von einem Remote -Computer zu einem Host in Ihrem internen Netzwerk mit der IP von der IP von SSH 10.20.1.3, auf dem der SSHD -Daemon den Port hört 5000.

Sie können alle Verbindungen zum Port weiterleiten 22 Auf Ihrem Linux -Server zum beabsichtigten Port Ihres Zielhosts durch Ausgabe:

$ sudo firewall-cmd --zone = public --add-Forward-Port = port = 22 = proto = tcp: toport = 5000: toaddr = 10.20.1.3 

Verwenden Sie das Maskieren in einer Zone, um das Maskeraden in einer Zone zu deaktivieren --Masquerade entfernen schalten.

$ sudo firewall-cmd --zone = public-remove-masquerade 

So aktivieren und deaktivieren Sie die IMCP -Nachricht in der Firewalld

ICMP (Internet -Steuermeldungsprotokoll) Nachrichten sind entweder Informationsanfragen oder Antworten auf Informationsanforderungen oder unter Fehlerbedingungen.

Sie können ICMP -Nachrichten in der Firewall aktivieren oder deaktivieren, aber vor dieser ersten Liste alle unterstützten ICMP -Typen.

$ sudo firewall-cmd --get-icmptypes 
List unterstützte ICMP -Typen in Firewalld

Um einen gewünschten Blocktyp hinzuzufügen oder zu entfernen.

$ sudo firewall-cmd --zone = home --add-icmp-block = echo-repry oder $ sudo Firewall-cmd-Zone = Home--Remove-ICMP-Block = echo-reply 

Sie können alle ICMP -Typen in einer Zone mit dem anzeigen --List-ICMP-Blocks schalten.

$ sudo firewall-cmd --zone = home-list-ICMP-Blocks 

So verwenden Sie die direkte Schnittstelle, um Roh -Iptables -Befehle zu übergeben

Die Firewall-CMD bietet auch direkte Optionen (--Direkte) damit Sie einen direkteren Zugang zur Firewall erhalten. Dies ist nützlich für Personen mit Grundkenntnissen über Iptables.

Wichtig: Sie sollten die direkten Optionen nur als letztes Ausweg verwenden, wenn es nicht möglich ist, die reguläre Verwendung zu verwenden Firewall-CMD Optionen oben erläutert.

Hier ist ein Beispiel dafür --Add-Rules schalten. Sie können diese Regeln leicht entfernen, indem Sie ersetzt --Add-Rule mit --Rule entfernen:

$ sudo firewall -cmd - -direct --add -rule ipv4 filter in_public_allow 0 -m tcp -p tcp - -dort 80 -j Akzeptieren 

Weitere Informationen zu iptables, Siehe diese Anleitung: So richten Sie eine Iptables -Firewall ein, um den Remote -Zugriff auf Dienste unter Linux zu ermöglichen.

Wenn Sie mit Iptables Syntax nicht vertraut sind, können Sie sich für Firewalls entscheidenReiche Sprache”Für die Erstellung komplexerer Firewall -Regeln leicht zu verstehen, wie es als nächstes erklärt wird.

So verwenden Sie eine reiche Sprache in der Firewalld

Der Reiche Sprache (auch bekannt als Reiche Regeln) wird verwendet, um komplexere Firewall -Regeln für hinzuzufügen IPv4 Und IPv6 Ohne die Kenntnis der Iptables -Syntax.

Es erweitert die Zonenfunktionen (Service, Port, ICMP-Block, Maskerade und Forward-Port), die wir abgedeckt haben. Es unterstützt Quell- und Zieladressen, Protokollierung, Aktionen und Grenzen für Protokolle und Aktionen.

Der --addreiche RULE wird verwendet, um reiche Regeln hinzuzufügen. Dieses Beispiel zeigt, wie man neue zulässt IPv4 Und IPv6 Verbindungen für den Service http und protokollieren Sie 1 pro Minute mit Audit:

$ sudo firewall-cmd --add-roich-rule = 'Regeldienst name = "http" Audit Limit Value = "1/m" Akzeptieren' 

Um die hinzugefügte Regel zu entfernen, ersetzen Sie die --addreiche RULE Option mit --Rich-Rule entfernen.

$ sudo firewall-cmd--Remove-Rich-RULE = 'Rule Service Name = "Http" Audit Limit Value = "1/m" Akzeptieren' 

Diese Funktion ermöglicht auch das Blockieren oder Ermöglichung von Datenverkehr von einer bestimmten IP -Adresse. Das folgende Beispiel zeigt, wie Verbindungen von der IP abgelehnt werden können 10.20.1.20.

$ sudo firewall-cmd --zone = public --add-reichen RULE = 'Rule Family = "IPv4" Quelladress = "192.168.0.254 "ablehnen ' 

So aktivieren und deaktivieren Sie den Panikmodus in der Firewalld

Panikmodus ist ein spezieller Modus unter Firewalld, in dem alle in eingebundenen und ausgebundenen Pakete fallen gelassen werden, und aktive Verbindungen verfallen nach dem Aktivieren nach Aktivierung.
Sie können diesen Modus in Notsituationen aktivieren, in denen eine Bedrohung für Ihre Netzwerkumgebung ausgeht.

Verwenden Sie den Panikmodus, um die --Abfrage-Panic Möglichkeit.

$ sudo firewall-cmd-query-panic 

Verwenden Sie die Panikmodus, um die --Panik Möglichkeit. Sie können testen, ob es mit dem Ping -Befehl wie gezeigt funktioniert. Da das Paket fallen gelassen wird, der Name www.Google.com kann nicht behoben werden, daher der angezeigte Fehler.

$ sudo Firewall-CMD--Panic-on $ Ping -c 2 www.Google.com 
Aktivieren Sie den Panikmodus in der Firewalld

Verwenden Sie die Panikmodus, um die --Panik Möglichkeit.

$ sudo firewall-cmd-panic-off 

So sperren Sie Firewalld

Denken Sie daran, dass wir unter den Grundlagen über Firewalld erwähnt haben, dass lokale Anwendungen oder Dienste die Firewall -Konfiguration ändern können, wenn sie mit Root -Berechtigungen ausgeführt werden. Sie können steuern, welche Anwendungen Firewall -Änderungen anfordern können, indem Sie dann in einem Lockdown -Whitelist angeben.

Diese Funktion wird standardmäßig ausgeschaltet. Sie können sie mit dem aktivieren oder deaktivieren --Lockdown-On oder --Abriegelung Hörwelche umschalten.

$ sudo firewall-cmd-lockdown- oder $ sudo Firewall-cmd-lockdown-off 

Beachten Sie, dass es empfohlen wird, diese Funktion durch Bearbeiten der Hauptkonfigurationsdatei zu aktivieren oder zu deaktivieren.

$ sudo vim/etc/Firewalld/Firewall.Conf 

Finden Sie den Parameter Abriegelung und ändern seinen Wert aus NEIN (bedeutet ab) zu Ja (Mittel auf).

Lockdown = ja 

Damit diese Einstellung dauerhafte Reload -Firewalld durchführen.

$ sudo firewall-cmd-Reload 
Zusammenfassung

Firewall ist ein benutzerfreundlicher Ersatz für den Iptables -Dienst, der Iptables als Backend verwendet. In diesem Artikel haben wir gezeigt, wie das Firewalld -Paket installiert wird, erklärte die wichtigsten Funktionen von Firewalld und diskutiert, wie man sie in der Laufzeit und in dauerhaften Konfigurationsumgebungen konfigurieren kann.

Wenn Sie Fragen oder Kommentare haben, können Sie uns gerne über das folgende Kommentarformular erreichen. Weitere Informationen finden Sie auf der Firewalld Manual -Seite (Man Firewalld) oder der Firewalld -Dokumentation auf der Projektwebsite.