GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So konfigurieren Sie FirewallD in RHEL, CentOS und Fedora

Netzfilter Wie wir alle wissen, ist es eine Firewall in Linux. Firewall ist ein dynamischer Daemon zur Verwaltung von Firewalls mit Unterstützung für Netzwerkzonen. In der früheren Version RHEL &CentOS 6 wir haben iptables verwendet als Daemon für das Paketfilter-Framework. In RHEL /CentOS 7/8 und Fedora iptables Schnittstelle wird durch firewalld ersetzt .

Es wird empfohlen, mit der Verwendung von Firewalld zu beginnen statt iptables da dies in Zukunft möglicherweise eingestellt wird. Allerdings iptables werden weiterhin unterstützt und können mit dem Befehl yum installiert werden. Wir können Firewalld nicht beibehalten und iptables beide im selben System, was zu Konflikten führen kann.

In iptables , haben wir früher als INPUT, OUTPUT &FORWARD CHAINS konfiguriert aber hier in Firewalld verwendet das Konzept Zonen . Standardmäßig sind in Firewalld verschiedene Zonen verfügbar, die in diesem Artikel besprochen werden.

Die grundlegende Zone, die wie eine öffentliche Zone ist und private Zone . Damit die Dinge mit diesen Zonen funktionieren, müssen wir die Schnittstelle mit der angegebenen Zonenunterstützung hinzufügen und dann können wir die Dienste zu firewalld hinzufügen.

Standardmäßig sind viele Dienste verfügbar, eine der besten Funktionen von firewalld ist, es kommt mit vordefinierten Diensten und wir können diese Dienste als Beispiel nehmen, um unsere Dienste hinzuzufügen, indem wir sie einfach kopieren.

Firewall funktioniert hervorragend mit IPv4 , IPv6, und Ethernet-Bridges zu. Wir können eine separate Laufzeit- und permanente Konfiguration in firewalld haben.

Beginnen wir mit der Arbeit mit Zonen und dem Erstellen unserer eigenen Dienste und der viel aufregenderen Nutzung von firewalld.

Unsere Testumgebung
Operating System :	CentOS Linux release 7.0.1406 (Core)
IP Address       :	192.168.0.55
Host-name	:	server1.tecmintlocal.com

Schritt 1:Installieren von Firewalld in CentOS

1. Firewall -Paket wird standardmäßig in RHEL/CentOS 7/8 installiert und Fedora . Wenn nicht, können Sie es mit dem folgenden yum-Befehl installieren.

# yum install firewalld -y

2. Nach der Firewall Paket installiert wurde, ist es an der Zeit zu überprüfen, ob die iptables Dienst ausgeführt wird oder nicht, wenn er ausgeführt wird, müssen Sie den iptables-Dienst mit den folgenden Befehlen stoppen und maskieren (nicht mehr verwenden).

# systemctl status iptables
# systemctl stop iptables
# systemctl mask iptables

Schritt 2:Firewalld-Komponenten besprechen

3. Bevor ich zur Firewalld-Konfiguration übergehe, möchte ich die einzelnen Zonen besprechen. Standardmäßig sind einige Zonen verfügbar. Wir müssen die Schnittstelle der Zone zuweisen. Eine Zone definiert die Zone, der die Schnittstelle vertraut oder verweigert wurde, um eine Verbindung herzustellen. Eine Zone kann Dienste und Ports enthalten.

Hier werden wir alle in Firewalld verfügbaren Zonen beschreiben.

  • Drop-Zone :Alle eingehenden Pakete werden verworfen, wenn wir diese Dropzone verwenden. Dies ist dasselbe, was wir verwenden, um iptables -j drop hinzuzufügen . Wenn wir die Drop-Regel verwenden, bedeutet dies, dass keine Antwort erfolgt und nur ausgehende Netzwerkverbindungen verfügbar sind.
  • Zone blockieren :Sperrzone wird verweigern, dass eingehende Netzwerkverbindungen mit einem icmp-host-prohibited abgelehnt werden. Es werden nur etablierte Verbindungen innerhalb des Servers zugelassen.
  • Öffentliche Zone :Um die ausgewählten Verbindungen zu akzeptieren, können wir Regeln in der öffentlichen Zone definieren. Dadurch kann nur der spezifische Port in unserem Server geöffnet werden, andere Verbindungen werden unterbrochen.
  • Externe Zone :Diese Zone fungiert als Router-Optionen, wenn Masquerading aktiviert ist, andere Verbindungen werden gelöscht und nicht akzeptiert, nur die angegebene Verbindung wird zugelassen.
  • DMZ-Zone :Wenn wir den Zugriff auf einige der Dienste der Öffentlichkeit erlauben müssen, können Sie dies in der DMZ-Zone definieren. Auch dieser hat die Eigenschaft, dass nur ausgewählte eingehende Verbindungen akzeptiert werden.
  • Arbeitszone:In dieser Zone können wir nur interne Netzwerke definieren, d. h. Datenverkehr privater Netzwerke ist erlaubt.
  • Heimatzone :Diese Zone wird speziell in Heimbereichen verwendet. Wir können diese Zone verwenden, um den anderen Computern in Netzwerken zu vertrauen, dass sie Ihren Computer nicht wie jede Zone beschädigen. Auch dies lässt nur die ausgewählten eingehenden Verbindungen zu.
  • Interne Zone :Dieser hier ähnelt dem Arbeitsbereich mit ausgewählten erlaubten Verbindungen.
  • Vertrauenswürdige Zone :Wenn wir die vertrauenswürdige Zone festlegen, wird der gesamte Datenverkehr akzeptiert.

Jetzt haben Sie eine bessere Vorstellung von Zonen, jetzt lassen Sie uns verfügbare Zonen und Standardzonen herausfinden und alle Zonen mit den folgenden Befehlen auflisten.

Firewallzonen auflisten

# firewall-cmd --get-zones

Firewalld-Standardzone auflisten

# firewall-cmd --get-default-zone

Alle Firewalld-Zonen auflisten

# firewall-cmd --list-all-zones

Hinweis :Die Ausgabe des obigen Befehls passt nicht auf eine einzelne Seite, da diese alle Zonen wie Block, dmz, Drop, External, Home, Internal, Public, Trusted und Work auflistet. Wenn die Zonen Rich-Regeln haben, werden aktivierte Dienste oder Ports auch mit diesen entsprechenden Zoneninformationen aufgelistet.

Schritt 3:Festlegen der standardmäßigen Firewalld-Zone

4. Wenn Sie die Standardzone als interne, externe, Drop-, Arbeits- oder eine andere Zone festlegen möchten, können Sie den folgenden Befehl verwenden, um die Standardzone festzulegen. Hier verwenden wir die „interne ” Zone als Standard.

# firewall-cmd --set-default-zone=internal

5. Überprüfen Sie nach dem Festlegen der Zone die Standardzone mit dem folgenden Befehl.

# firewall-cmd --get-default-zone

6. Hier ist unsere Schnittstelle enp0s3 , Wenn wir unsere Zone überprüfen müssen, in der die Schnittstelle begrenzt ist, können wir den folgenden Befehl verwenden.

# firewall-cmd --get-zone-of-interface=enp0s3

7. Ein weiteres interessantes Feature von firewalld ist ‚icmptype ‘ ist einer der von firewalld unterstützten icmp-Typen. Um die Liste der unterstützten ICMP-Typen zu erhalten, können wir den folgenden Befehl verwenden.

# firewall-cmd --get-icmptypes

Schritt 4:Eigene Dienste in Firewalld erstellen

8. Dienste sind eine Reihe von Regeln mit Ports und Optionen, die von Firewalld verwendet werden. Dienste, die aktiviert sind, werden automatisch geladen, wenn die Firewalld Dienst eingerichtet und ausgeführt.

Standardmäßig sind viele Dienste verfügbar, um eine Liste aller verfügbaren Dienste zu erhalten, verwenden Sie den folgenden Befehl.

# firewall-cmd --get-services

9. Um die Liste aller standardmäßig verfügbaren Dienste zu erhalten, gehen Sie in das folgende Verzeichnis, hier erhalten Sie die Liste der Dienste.

# cd /usr/lib/firewalld/services/

10. Um Ihren eigenen Dienst zu erstellen, müssen Sie ihn an der folgenden Stelle definieren. Hier möchte ich zum Beispiel einen Dienst für RTMP hinzufügen Hafen 1935 , erstellen Sie zuerst eine Kopie von einem der Dienste.

# cd /etc/firewalld/services/
# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/

Navigieren Sie dann zu dem Ort, an den unsere Servicedatei kopiert wurde, und benennen Sie die Datei als nächstes in „ssh.xml“ um ' zu 'rtmp.xml ‘ wie im Bild unten gezeigt.

# cd /etc/firewalld/services/

11. Als nächstes öffnen und bearbeiten Sie die Datei als Überschrift, Beschreibung, Protokoll und Portnummer , die wir für den RTMP-Dienst verwenden müssen, wie im folgenden Bild gezeigt.

12. Um diese Änderungen zu aktivieren, starten Sie den Firewalld-Dienst neu oder laden Sie die Einstellungen neu.

# firewall-cmd --reload

13. Um zu bestätigen, ob der Dienst hinzugefügt wurde oder nicht, führen Sie den folgenden Befehl aus, um eine Liste der verfügbaren Dienste zu erhalten.

# firewall-cmd --get-services

Schritt 5:Zuweisen von Diensten zu Firewalld-Zonen

14. Hier werden wir sehen, wie die Firewall mit dem Befehl firewall-cmd verwaltet wird. Geben Sie den folgenden Befehl ein, um den aktuellen Status der Firewall und aller aktiven Zonen zu erfahren.

# firewall-cmd --state
# firewall-cmd --get-active-zones

15. So erhalten Sie die öffentliche Zone für die Schnittstelle enp0s3 , dies ist die Standardschnittstelle, die in /etc/firewalld/firewalld.conf definiert ist Datei als DefaultZone=public .

Um alle verfügbaren Dienste in dieser Standardschnittstellenzone aufzulisten.

# firewall-cmd --get-service

Schritt 6:Hinzufügen von Diensten zu Firewall-Zonen

16. In den obigen Beispielen haben wir gesehen, wie wir unsere eigenen Dienste erstellen, indem wir rtmp erstellen service, hier sehen wir, wie man rtmp hinzufügt Service auch für die Zone.

# firewall-cmd --add-service=rtmp

17. Um hinzugefügte Zonen zu entfernen, geben Sie ein.

# firewall-cmd --zone=public --remove-service=rtmp

Der obige Schritt war nur ein vorübergehender Zeitraum. Um es dauerhaft zu machen, müssen wir den folgenden Befehl mit der Option –permanent ausführen .

# firewall-cmd --add-service=rtmp --permanent
# firewall-cmd --reload

18. Definieren Sie Regeln für den Netzwerkquellbereich und öffnen Sie einen der Ports. Wenn Sie beispielsweise einen Netzwerkbereich öffnen möchten, sagen Sie „192.168.0.0/24 ‘ und Portierung ‚1935 ‘ Verwenden Sie die folgenden Befehle.

# firewall-cmd --permanent --add-source=192.168.0.0/24
# firewall-cmd --permanent --add-port=1935/tcp

Stellen Sie sicher, dass Sie den Firewalld-Dienst neu laden, nachdem Sie Dienste oder Ports hinzugefügt oder entfernt haben.

# firewall-cmd --reload 
# firewall-cmd --list-all

Schritt 7:Rich-Regeln für den Netzwerkbereich hinzufügen

19. Wenn ich die Dienste wie http, https, vnc-server, PostgreSQL zulassen möchte, verwenden Sie die folgenden Regeln. Fügen Sie zuerst die Regel hinzu und machen Sie sie dauerhaft, laden Sie die Regeln neu und überprüfen Sie den Status.

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' 
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' --permanent

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="https" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="https" accept' --permanent

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="vnc-server" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="vnc-server" accept' --permanent

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="postgresql" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="postgresql" accept' --permanent

Nun, der Netzwerkbereich 192.168.0.0/24 kann den oben genannten Dienst von meinem Server aus nutzen. Die Option –permanent kann in jeder Regel verwendet werden, aber wir müssen die Regel definieren und mit dem Client-Zugang überprüfen, danach müssen wir sie dauerhaft machen.

20. Nachdem Sie die obigen Regeln hinzugefügt haben, vergessen Sie nicht, die Firewall-Regeln neu zu laden und die Regeln aufzulisten mit:

# firewall-cmd --reload
# firewall-cmd --list-all

Um mehr über Firewalld zu erfahren.

# man firewalld

Das war’s, wir haben gesehen, wie man einen Netzfilter mit Firewalld in RHEL/CentOS einrichtet und Fedora .

Schlussfolgerung

Net-filter ist das Framework für eine Firewall für jede einzelne Linux-Distribution. Zurück in jedem RHEL und CentOS Editionen haben wir iptables verwendet aber in neueren Versionen haben sie Firewalld eingeführt . Firewalld ist einfacher zu verstehen und zu verwenden. Ich hoffe, Ihnen hat der Artikel gefallen.


Cent OS
  1. So installieren und konfigurieren Sie Fail2Ban unter CentOS 8 und Fedora 33

  2. So installieren Sie Python 3.5 unter CentOS/RHEL und Fedora

  3. Wie man WordPress 3.8 auf RHEL/CentOS/Fedora installiert, konfiguriert und ausführt

  4. CentOS / RHEL 7 :So installieren und konfigurieren Sie Telnet

  5. So konfigurieren Sie die Firewalld-Protokollierung in CentOS/RHEL 8

So installieren und konfigurieren Sie Checkmk unter CentOS 8 / RHEL 8

So installieren und konfigurieren Sie Nagios Core unter CentOS 8 / RHEL 8

So installieren und konfigurieren Sie den VNC-Server in CentOS 7 / RHEL 7

So installieren und verwenden Sie Firewalld in CentOS / RHEL

So installieren und konfigurieren Sie Jenkins unter CentOS 8 / RHEL 8

So installieren Sie Wine 5.0 auf CentOS, RHEL und Fedora