So installieren, konfigurieren und verwenden Sie Firewalld in CentOS und Ubuntu
- 2349
- 628
- Ilja Köpernick
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-ZoneListen 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 = wlp1s0Fü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 ZonenListen 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 publicSuchen 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-icmptypesList 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.comAktivieren 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.
- « NIX - Der rein funktionale Paketmanager für Linux
- Hegemon - Ein modulares Systemüberwachungsinstrument für Linux »