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

CentOS / RHEL 7:Einsteigerleitfaden für Firewalld

Einführung

– Eine Paketfilter-Firewall liest eingehende Netzwerkpakete und filtert (erlaubt oder verweigert) jedes Datenpaket basierend auf den Header-Informationen im Paket. Der Linux-Kernel verfügt über eine integrierte Paketfilterfunktion namens Netfilter .
– In RHEL 7 sind zwei Dienste verfügbar, um die von Netfilter gespeicherten Regeln zu erstellen, zu verwalten und anzuzeigen:
1. Firewalld
2. iptables
– In RHEL 7 ist der Standard-Firewalldienst firewalld.
– firewalld ist ein dynamischer Firewall-Manager, der Firewall-(Netzwerk-)Zonen unterstützt.
– Der Firewalld-Dienst unterstützt IPv4, IPv6, und für Ethernet-Bridges.
– Der Firewalld-Dienst bietet auch eine D-BUS-Schnittstelle. Dienste oder Anwendungen, die D-BUS bereits verwenden, können Firewall-Regeln direkt über die D-BUS-Schnittstelle hinzufügen oder Änderungen anfordern.

Vorteile gegenüber iptables

firewalld hat gegenüber iptables folgende Vorteile:
1. Im Gegensatz zum Befehl iptables startet der Befehl firewall-cmd die Firewall nicht neu und unterbricht keine bestehenden TCP-Verbindungen.
2. firewalld unterstützt dynamische Zonen.
3. firewalld unterstützt D-Bus für eine bessere Integration mit Diensten, die von der Firewall-Konfiguration abhängen.

Konfigurationsoptionen

Der Firewalld-Dienst hat zwei Arten von Konfigurationsoptionen:
1. Laufzeit :Änderungen an den Firewall-Einstellungen werden sofort wirksam, sind aber nicht dauerhaft. Änderungen, die im Laufzeitkonfigurationsmodus vorgenommen wurden, gehen verloren, wenn der Firewalld-Dienst neu gestartet wird.
2. Permanent :Änderungen an Firewall-Einstellungen werden in Konfigurationsdateien geschrieben. Diese Änderungen werden angewendet, wenn der Firewalld-Dienst neu gestartet wird.

Konfigurationsdateien

Konfigurationsdateien für firewalld existieren in zwei Verzeichnissen:
/usr/lib/firewalld :Enthält Standardkonfigurationsdateien. Nehmen Sie keine Änderungen an diesen Dateien vor. Ein Upgrade des Firewalld-Pakets überschreibt dieses Verzeichnis.
/etc/firewalld :Änderungen an den Standardkonfigurationsdateien werden in diesem Verzeichnis gespeichert.Dateien in diesem Verzeichnis überladen die Standardkonfigurationsdateien.

Firewallzonen

Mit dem Firewalld-Dienst können Sie Netzwerke basierend auf der Vertrauensebene, die Sie den Geräten und dem Datenverkehr innerhalb eines bestimmten Netzwerks entgegenbringen möchten, in verschiedene Zonen unterteilen. Für jede Zone können Sie die folgenden Funktionen definieren:
Dienste :Vordefinierte oder benutzerdefinierte Dienste, denen vertraut werden kann. Vertrauenswürdige Dienste sind eine Kombination aus Ports und Protokollen, auf die von anderen Systemen und Netzwerken aus zugegriffen werden kann.
Ports :Zusätzliche Ports oder Portbereiche und zugehörige Protokolle, auf die von anderen Systemen und Netzwerken aus zugegriffen werden kann.
Masquerading :IPv4-Adressen in eine einzelne externe Adresse übersetzen. Wenn Masquerading aktiviert ist, werden Adressen eines privaten Netzwerks einer öffentlichen Adresse zugeordnet und hinter dieser verborgen.
Portweiterleitung :Eingehenden Netzwerkverkehr von einem bestimmten Port oder Portbereich an einen alternativen Port auf dem lokalen System oder an einen Port an einer anderen IPv4-Adresse weiterleiten.
ICMP-Filter :Ausgewählte Internet Control Message Protocol-Nachrichten blockieren.
Rich Rules :Erweitern Sie vorhandene Firewall-Regeln, um zusätzliche Quell- und Zieladressen sowie Protokollierungs- und Überwachungsaktionen einzubeziehen.
Schnittstellen :An die Zone gebundene Netzwerkschnittstellen. Die Zone für eine Schnittstelle wird mit der ZONE=option angegeben in /etc/sysconfig/network-scripts/ifcfg Datei. Wenn die Option fehlt, wird die Schnittstelle an die Standardzone gebunden.

Vordefinierte Firewallzonen

Das Firewalld-Softwarepaket enthält eine Reihe vordefinierter Netzwerkzonen im folgenden Verzeichnis:

#  ls -lrt /usr/lib/firewalld/zones/
total 36
-rw-r----- 1 root root 342 Sep 15  2015 work.xml
-rw-r----- 1 root root 162 Sep 15  2015 trusted.xml
-rw-r----- 1 root root 315 Sep 15  2015 public.xml
-rw-r----- 1 root root 415 Sep 15  2015 internal.xml
-rw-r----- 1 root root 400 Sep 15  2015 home.xml
-rw-r----- 1 root root 304 Sep 15  2015 external.xml
-rw-r----- 1 root root 291 Sep 15  2015 drop.xml
-rw-r----- 1 root root 293 Sep 15  2015 dmz.xml
-rw-r----- 1 root root 299 Sep 15  2015 block.xml

Die Zonendateien enthalten voreingestellte Einstellungen, die auf eine Netzwerkschnittstelle angewendet werden können. Zum Beispiel:

# grep –i service /usr/lib/firewalld/zones/public.xml 
<service name=“ssh”/>
<service name=“dhcpv6-client”/>

In diesem Beispiel vertrauen Netzwerkschnittstellen, die an die öffentliche Zone gebunden sind, nur zwei Diensten, ssh und dhcpv6-client.

Es folgt eine kurze Erklärung der einzelnen Zonen:
Drop :Alle eingehenden Netzwerkpakete werden verworfen, es erfolgt keine Antwort. Es sind nur ausgehende
Netzwerkverbindungen möglich.
blockieren :Alle eingehenden Netzwerkverbindungen werden mit einer icmp-host-verboten-Meldung für IPv4 und icmp6-adm-verboten für IPv6 zurückgewiesen. Es sind nur systemintern initiierte Netzwerkverbindungen möglich.
Zuhause :Für den Einsatz im Wohnbereich. Sie vertrauen meistens darauf, dass die anderen Computer in Netzwerken Ihrem Computer keinen Schaden zufügen. Nur ausgewählte eingehende Verbindungen werden akzeptiert.
öffentlich :Zur Verwendung in öffentlichen Bereichen. Sie vertrauen nicht darauf, dass die anderen Computer im Netzwerk Ihrem Computer keinen Schaden zufügen. Nur ausgewählte eingehende Verbindungen werden akzeptiert.
funktionieren :Für den Einsatz in Arbeitsbereichen. Sie vertrauen meistens darauf, dass die anderen Computer in Netzwerken Ihrem Computer keinen Schaden zufügen. Nur ausgewählte eingehende Verbindungen werden akzeptiert.
dmz :Für öffentlich zugängliche Computer in Ihrer entmilitarisierten Zone mit eingeschränktem Zugriff auf Ihr internes Netzwerk. Nur ausgewählte eingehende Verbindungen werden akzeptiert.
extern :Zur Verwendung in externen Netzwerken mit aktiviertem Masquerading speziell für Router. Sie vertrauen nicht darauf, dass die anderen Computer im Netzwerk Ihrem Computer keinen Schaden zufügen. Nur ausgewählte eingehende Verbindungen werden akzeptiert.
intern :Zur Verwendung in internen Netzwerken. Sie vertrauen meistens darauf, dass die anderen Computer in den Netzwerken Ihrem Computer keinen Schaden zufügen. Nur ausgewählte eingehende Verbindungen werden akzeptiert.
vertrauenswürdig :Alle Netzwerkverbindungen werden akzeptiert.

Festlegen der Standard-Firewalld-Zone

Nach einer Erstinstallation ist die öffentliche Zone die Standardzone, wie in der Konfigurationsdatei /etc/firewalld/firewalld.conf angegeben .

# grep –i defaultzone /etc/firewalld/firewalld.conf 
DefaultZone=public

Netzwerkschnittstellen sind an die Standardzone gebunden, sofern dies nicht mit ZONE=[zone] in der ifcfg-Datei angegeben ist. Der folgende Befehl zeigt die Schnittstellen, die an die öffentliche Zone gebunden sind:

# firewall-cmd --get-active-zone
public
      interfaces: eth0 eth1

Sie können den Befehl firewall-cmd verwenden, um die Standardzone zu ändern:

# firewall-cmd --set-default-zone=work 
success

Sie können auch die Firewall-Konfigurations-GUI verwenden, um die Standardzone zu ändern. Wählen Sie in der Menüleiste Optionen->Standardzone ändern und wählen Sie dann eine Zone aus einer Popup-Liste aus.

Firewall-Dienste

– Ein Firewalld-Dienst ist eine Kombination aus lokalen Ports und Protokollen und Zieladressen.
– Ein Firewalld-Dienst kann auch Netfilter-Kernelmodule enthalten, die automatisch geladen werden, wenn ein Dienst aktiviert wird.
– Das Firewalld-Softwarepaket enthält eine Reihe vordefinierter Dienste im folgenden Verzeichnis:

# ls -lrt /usr/lib/firewalld/zones/
total 36
-rw-r----- 1 root root 342 Sep 15  2015 work.xml
-rw-r----- 1 root root 162 Sep 15  2015 trusted.xml
-rw-r----- 1 root root 315 Sep 15  2015 public.xml
-rw-r----- 1 root root 415 Sep 15  2015 internal.xml
-rw-r----- 1 root root 400 Sep 15  2015 home.xml
-rw-r----- 1 root root 304 Sep 15  2015 external.xml
-rw-r----- 1 root root 291 Sep 15  2015 drop.xml
-rw-r----- 1 root root 293 Sep 15  2015 dmz.xml
-rw-r----- 1 root root 299 Sep 15  2015 block.xml

– Dienste können für eine Zone im Runtime-Modus aktiviert werden.
– Dienstdefinitionen können nur im Permanent-Modus bearbeitet werden.

Firewalld starten

Firewalld starten:

# systemctl start firewalld

Um sicherzustellen, dass firewalld beim Booten startet:

# systemctl enable firewalld

So überprüfen Sie, ob Firewalld ausgeführt wird:

# systemctl status firewalld
# firewall-cmd --state

Drei Methoden zum Konfigurieren des Firewalld-Dienstes:
firewall-cmd :Befehlszeilenschnittstelle
firewall-config :Grafische Benutzeroberfläche
– Bearbeiten Sie verschiedene XML Konfigurationsdateien.

CentOS / RHEL 7 :So starten / stoppen Sie Firewalld

Das Firewall-cmd-Dienstprogramm

Das Kommandozeilentool firewall-cmd ist Teil der Anwendung firewalld, die standardmäßig installiert wird. So erhalten Sie Hilfe zum Befehl firewall-cmd:

# firewall-cmd --help

Der Befehl firewall-cmd bietet Kategorien von Optionen wie Allgemein, Status, Permanent, Zone, IcmpType, Service, Adapt and Query Zones, Direct, Lockdown, Lockdown Whitelist und Panic. So listen Sie Informationen für alle Zonen auf:

# firewall-cmd --list-all-zones public (default, active)
      interfaces: eth0 eth1
      sources:
      services: dhcpv6-client ssh
      ports:
  ...

So erlauben Sie den Zugriff von HTTP-Clients für die öffentliche Zone:

# firewall-cmd --zone=public --add-service=http 
success

So listen Sie Dienste auf, die für die öffentliche Zone zugelassen sind:

# firewall-cmd --zone=work --list-services
    dhcpv6-client http ssh

Die Verwendung dieses Befehls ändert nur die Runtime-Konfiguration und aktualisiert nicht die Konfigurationsdateien.
Die im Runtime-Konfigurationsmodus vorgenommenen Konfigurationsänderungen gehen verloren, wenn der Firewalld-Dienst neu gestartet wird:

# systemctl restart firewalld
# firewall-cmd --zone=work --list-services dhcpv6-client ssh

Um Änderungen dauerhaft zu machen, verwenden Sie die Option –permanent. Beispiel:

# firewall-cmd --permanent --zone=public --add-service=http 
success

Änderungen, die im permanenten Konfigurationsmodus vorgenommen werden, werden nicht sofort implementiert. Änderungen, die in der permanenten Konfiguration vorgenommen werden, werden jedoch in Konfigurationsdateien geschrieben. Ein Neustart des Firewalld-Dienstes liest die Konfigurationsdateien und implementiert die Änderungen. Beispiel:

# systemctl restart firewalld
# firewall-cmd --zone=work --list-services 
dhcpv6-client http ssh


Cent OS
  1. Installieren Sie TeamViewer auf CentOS 5 / RHEL 5

  2. So installieren Sie TeamViewer auf CentOS 6 / RHEL 6

  3. CentOS / RHEL :Einsteigerleitfaden für vsftpd (Installation und Konfiguration)

  4. Leitfaden für Anfänger zum Optimieren von Profilen in CentOS/RHEL

  5. Leitfaden für Anfänger zum Verwalten von Paketmodul-Streams in CentOS/RHEL 8

RHEL 8 / CentOS 8 öffnen FTP-Port 21 mit Firewalld

RHEL 8 / CentOS 8 stellt das Root-Passwort wieder her

So installieren Sie MariaDB unter CentOS 8 / RHEL 8

So installieren Sie MariaDB unter CentOS 6 / RHEL 6

CentOS / RHEL 7:So setzen Sie das Root-Passwort zurück

CentOS / RHEL 7:Leitfaden für Anfänger zu systemd-Diensteinheiten