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.
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.
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?
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:
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 nun anhand eines Beispiels aus dem nächsten.
Dieses Mal möchte ich mit dieser Konfiguration fortfahren.
Lassen Sie mich einen Überblick geben.
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.
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
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.
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.
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 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.
Recommended Posts