[LINUX] Stellen Sie Firewalld einfach in mehreren Zonen ein

Einführung

Neulich schrieb ich einen Artikel "Erlaube ssh nur für bestimmte IP-Adressen mit Firewalld" (https://qiita.com/kimisyo/items/553d8879808834077fb1), aber mit der Option -add-rich-rule Korrespondenz durch die Sonderregel von Gorigori wurde gefangen. Firewalld ist eine relativ neue Bibliothek, die iptables folgt, und es sollte einen ausgefeilteren und besseren Weg geben, dies zu tun.

Infolge verschiedener Untersuchungen gab es. Sein Name ist ** Mehrzonenfunktion **. Durch die Verwendung dieser Funktion habe ich festgestellt, dass sie sehr flexibel und effizient eingestellt werden kann. Daher möchte ich mitteilen, was ich diesmal untersucht habe.

Umgebung

Vorteile von Firewalld

Lassen Sie uns zunächst überprüfen, was an Firewalld gut ist. Gemäß Referenz [1] sind die Vorteile der Firewall gegenüber iptables:

In der Tat scheint es wichtig, ** Zonen ** gut zu nutzen. Übrigens hat mein letzter Artikel das Hinzufügen einer Regel zur öffentlichen Zone erzwungen.

Was ist eine Zone?

Als nächstes schauen wir uns die Zonen an. Wiederum zeigt Referenz [1], dass ** Intarface ** und ** Source ** wichtige Konzepte für das Verständnis von Zonen sind.

Interface --Intaface ist der Systemname für Hardware- und virtuelle Netzwerkadapter.

Source

--Quelle ist der Quell-IP-Adressbereich, der auch einer Zone zugewiesen werden kann.

Ich habe die Zone selbst nicht erklärt, aber hast du sie irgendwie verstanden?

Was ist Multi-Zone?

Multi-Zone ist ein Begriff, der in Referenz [1] verwendet wird. Kurz gesagt, es ist gut, ** mehrere aktive Zonen ** anstelle von nur einer Zone zu verwenden. ** Betrachten Sie es als eine Möglichkeit, Regeln festzulegen.

Gemäß Referenz [1] werden häufig die Regeln für die Anwendung von Firewalld im Fall von Mehrzonen ungefähr wie folgt beachtet. (Hinweis) Es ist ziemlich viel geschrieben. Wenn Sie es also genau verstehen möchten, lesen Sie Referenz [1] oder das Firewalld-Handbuch.

――Die Rolle der aktiven Zone hängt davon ab, ob es sich um die mit Intaface verknüpfte Zone oder die mit Source verknüpfte Zone handelt. Es ist jedoch möglich, beide Rollen zu spielen. --Firewalld verarbeitet Pakete in der folgenden Reihenfolge:

  1. Wenn es eine Zone mit einer Quelle gibt, die dem Paket entspricht (möglicherweise nicht), wird diese in dieser Zone verarbeitet, da das Paket die Rich-Regel erfüllt, der Dienst auf die Whitelist gesetzt ist usw. Wenn es endet. Wenn nicht, fahren Sie mit dem nächsten fort.
  2. Es endet, wenn es von der Zone verarbeitet wird, deren Schnittstelle dem Paket entspricht. Wenn nicht, fahren Sie mit dem nächsten fort.
  3. Es gelten die Standardaktionen der Firewall. Das heißt, icmp-Pakete werden akzeptiert und alles andere wird abgelehnt.

Wichtig ist, dass die Quellzone Vorrang vor der Schnittstellenzone hat. Daher besteht ein gängiges Entwurfsmuster für Mehrzonenkonfigurationen darin, einer bestimmten IP den Zugriff auf einen bestimmten Dienst in der Quellzone zu ermöglichen und den Zugriff auf alle anderen Benutzer in der Schnittstellenzone zu beschränken. werden.

Versuchen wir es mit einer Pseudokonfiguration

Versuchen wir nun anhand eines Beispiels aus dem nächsten.

Netzwerkkonfiguration

Dieses Mal möchte ich mit dieser Konfiguration fortfahren.

image.png

Lassen Sie mich einen Überblick geben.

Firewalld-Regeln, die Sie erreichen möchten

Wenn Sie es also in Sätzen schreiben, ist es mehrdeutig. Erstellen wir also eine Tabelle mit den Regeln, die Pakete auf dem WEB-Server zulassen.

Absender Protokoll Zonenname Zonenrolle
ANY https, http public Schnittstellenzone
192.168.11.24 mysql, nfs share Quellzone
192.168.11.29 ssh mainte Quellzone

Es ist eine Regel, alles außer den oben genannten abzulehnen. Darüber hinaus enthält die Tabelle bereits Spalten "Zonenname" und "Zonenrolle" sowie Beschreibungen von Zonen mit Namen wie "public", "share", "mainte". Von nun an wenden ** diese Mehrfachzonen ** tatsächlich die oben genannten Regeln an. Lass es uns einstellen.

Einstellungen für öffentliche Zonen

Die öffentliche Zone möchte die Standardzone ändern.

firewall-cmd --permanent --zone=public --remove-service=dhcpv6-client
firewall-cmd --permanent --zone=public --remove-service=cockpit
firewall-cmd --permanent --zone=public --remove-service=ssh
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --permanent --zone=public --set-target=DROP
firewall-cmd --reload

Einstellungen für die Hauptzone

Da die Hauptzone ursprünglich nicht vorhanden ist, wird sie nach dem Erstellen einer neuen Zone festgelegt.

firewall-cmd --permanent --new-zone=mainte
firewall-cmd --permanent --zone=mainte --add-service=ssh
firewall-cmd --permanent --zone=mainte --add-source=192.168.11.29
firewall-cmd --reload

In der zweiten Zeile wird ssh als zulässiger Dienst angegeben, und in der dritten Zeile wird die IP des Wartungsterminals als zulässige Quell-IP angegeben.

Zoneneinstellungen teilen

Da die Freigabezone ursprünglich nicht vorhanden ist, wird sie nach dem Erstellen einer neuen festgelegt.

firewall-cmd --permanent --new-zone=share		
firewall-cmd --permanent --zone=share --add-port=2049/tcp		
firewall-cmd --permanent  --zone=share --add-port=3306/tcp		
firewall-cmd --permanent --zone=share  --add-source=192.168.11.24		
firewall-cmd --reload		

Die nfs- und mysql-Ports werden in der 2. und 3. Zeile als zulässige Ports angegeben, und die Sicherungsserver-IP wird in der 4. Zeile als zulässige Quell-IP angegeben.

Bestätigung!

Lassen Sie uns zunächst nmap vom Wartungsterminal aus ausführen.

[kimisyo@localhost ~]$ nmap 192.168.11.26
Starting Nmap 7.70 ( https://nmap.org ) at 2020-10-25 20:59 JST
Nmap scan report for 192.168.11.26
Host is up (0.00063s latency).
Not shown: 997 filtered ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https

Natürlich können Sie ssh zusätzlich zum http / https-Port sehen. (Im Gegenteil, nfs und mysql sind nicht sichtbar)

Als nächstes führen wir nmap vom Sicherungsserver aus.

(base) kimisyo@ubuntu20:~$ nmap 192.168.11.26
Starting Nmap 7.80 ( https://nmap.org ) at 2020-10-25 11:59 UTC
Nmap scan report for 192.168.11.26
Host is up (0.0011s latency).
Not shown: 996 filtered ports
PORT     STATE SERVICE
80/tcp   open  http
443/tcp  open  https
2049/tcp open  nfs
3306/tcp open  mysql

Zusätzlich zum http / https-Port sehen Sie 2049 / tcp und 3306 / tcp. (Im Gegenteil, ssh ist nicht sichtbar)

abschließend

Abschließend werde ich die Vorzüge von Multi-Zone zusammenfassen, die ich tatsächlich empfunden habe.

――Wenn in einer Zone viele Kombinationen aus Protokoll (Dienst) und Quell-IP-Adresse vorhanden sind, ist die Auswirkung der Änderung des Dienstes oder der Quell-IP groß, in Mehrzonen jedoch nur Add-Service oder Add-Source Es ist genug. Wenn Sie beispielsweise in diesem Beispiel dem Wartungsterminal ein weiteres Terminal hinzufügen möchten, fügen Sie einfach eine Regel wie "Firewall-cmd --permanent --zone = mainte --add-source = 192.168.11.19" hinzu Es ist genug.

Verweise

Recommended Posts

Stellen Sie Firewalld einfach in mehreren Zonen ein
Gacha geschrieben in Python-Addition der Periodeneinstellungsfunktion-
Einstellungen für die einfache Auswahl mehrerer Kernel in Jupyter
Umgang mit Zitaten in [bash]
Teilweise bei Problemen
Japanische Lokalisierungseinstellung von PyCharm
Liste der Knoten in Diagrammen
Objektäquivalenzbeurteilung in Python
Einfaches Passwortfeld in Python
Implementierung der schnellen Sortierung in Python