Android

So konfigurieren und verwalten Sie die Firewall auf Centos 8

Linux Mint/Ubuntu Tutorial: Was sind Fremdquellen / PPAs ?

Linux Mint/Ubuntu Tutorial: Was sind Fremdquellen / PPAs ?

Inhaltsverzeichnis:

Anonim

Eine Firewall ist eine Methode zum Überwachen und Filtern des eingehenden und ausgehenden Netzwerkverkehrs. Dabei werden Sicherheitsregeln definiert, die festlegen, ob bestimmter Datenverkehr zugelassen oder blockiert werden soll. Eine ordnungsgemäß konfigurierte Firewall ist einer der wichtigsten Aspekte der Gesamtsystemsicherheit.

CentOS 8 wird mit einem Firewall-Daemon namens firewalld ausgeliefert. Es handelt sich um eine Komplettlösung mit einer D-Bus-Schnittstelle, mit der Sie die Firewall des Systems dynamisch verwalten können.

In diesem Lernprogramm wird erläutert, wie die Firewall unter CentOS 8 konfiguriert und verwaltet wird. Außerdem werden die grundlegenden FirewallD-Konzepte erläutert.

Voraussetzungen

Um den Firewall-Dienst zu konfigurieren, müssen Sie als root oder Benutzer mit sudo-Berechtigungen angemeldet sein.

Grundlegende Firewall-Konzepte

firewalld verwendet die Konzepte von Zonen und Diensten. Anhand der Zonen und Dienste, die Sie konfigurieren, können Sie steuern, welcher Datenverkehr zum und vom System zugelassen oder blockiert wird.

Firewalld kann mit dem Befehlszeilenprogramm firewall-cmd konfiguriert und verwaltet werden.

In CentOS 8 wird iptables durch nftables als Standard-Firewall-Backend für den firewalld-Daemon ersetzt.

Firewalld-Zonen

Zonen sind vordefinierte Regelsätze, die den Vertrauensgrad der Netzwerke angeben, mit denen Ihr Computer verbunden ist. Sie können einer Zone Netzwerkschnittstellen und -quellen zuweisen.

Nachfolgend sind die von FirewallD bereitgestellten Zonen aufgeführt, die nach der Vertrauensstufe der Zone von nicht vertrauenswürdig nach vertrauenswürdig sortiert sind:

  • drop: Alle eingehenden Verbindungen werden ohne Benachrichtigung getrennt. Es sind nur ausgehende Verbindungen zulässig. blockieren: Alle eingehenden Verbindungen werden mit einer icmp-host-prohibited icmp6-adm-prohibited für IPv4 und " icmp6-adm-prohibited disabled" für IPv6n zurückgewiesen. Es sind nur ausgehende Verbindungen zulässig. public: Zur Verwendung in nicht vertrauenswürdigen öffentlichen Bereichen. Sie vertrauen anderen Computern im Netzwerk nicht, können jedoch ausgewählte eingehende Verbindungen zulassen. external: Zur Verwendung in externen Netzwerken mit aktiviertem NAT-Masquerading, wenn Ihr System als Gateway oder Router fungiert. Nur ausgewählte eingehende Verbindungen sind zulässig. intern: Zur Verwendung in internen Netzwerken, wenn Ihr System als Gateway oder Router fungiert. Anderen Systemen im Netzwerk wird im Allgemeinen vertraut. Nur ausgewählte eingehende Verbindungen sind zulässig. dmz: Wird für Computer in Ihrer demilitarisierten Zone verwendet, die nur eingeschränkten Zugriff auf den Rest Ihres Netzwerks haben. Nur ausgewählte eingehende Verbindungen sind zulässig. Arbeit: Wird für Arbeitsmaschinen verwendet. Anderen Computern im Netzwerk wird im Allgemeinen vertraut. Nur ausgewählte eingehende Verbindungen sind zulässig. home: Wird für Heimmaschinen verwendet. Anderen Computern im Netzwerk wird im Allgemeinen vertraut. Nur ausgewählte eingehende Verbindungen sind zulässig. vertrauenswürdig: Alle Netzwerkverbindungen werden akzeptiert. Vertrauen Sie allen Computern im Netzwerk.

Firewall-Dienste

Firewalld-Dienste sind vordefinierte Regeln, die innerhalb einer Zone gelten und die erforderlichen Einstellungen definieren, um eingehenden Datenverkehr für einen bestimmten Dienst zuzulassen. Mit den Diensten können Sie problemlos mehrere Aufgaben in einem Schritt ausführen.

Beispielsweise kann der Dienst Definitionen zum Öffnen von Ports, Weiterleiten von Datenverkehr und mehr enthalten.

Firewall-Laufzeit und permanente Einstellungen

Firewalld verwendet zwei separate Konfigurationssätze, die Laufzeit und die permanente Konfiguration.

Die Laufzeitkonfiguration ist die aktuell ausgeführte Konfiguration und bleibt beim Neustart nicht erhalten. Wenn der firewalld-Daemon gestartet wird, wird die permanente Konfiguration geladen, die zur Laufzeitkonfiguration wird.

Wenn Sie mit dem Dienstprogramm firewall-cmd Änderungen an der Firewalld-Konfiguration vornehmen, werden diese Änderungen standardmäßig auf die Laufzeitkonfiguration angewendet. Um die Änderungen dauerhaft zu machen, --permanent Option --permanent an den Befehl an.

Um die Änderungen in beiden Konfigurationssätzen zu übernehmen, können Sie eine der folgenden beiden Methoden anwenden:

  1. Ändern Sie die Laufzeitkonfiguration und machen Sie sie dauerhaft:

    sudo firewall-cmd sudo firewall-cmd --runtime-to-permanent

    Ändern Sie die permanente Konfiguration und laden Sie den Firewalld-Daemon neu:

    sudo firewall-cmd --permanent sudo firewall-cmd --reload

FirewallD aktivieren

Unter CentOS 8 ist die Firewall standardmäßig installiert und aktiviert. Wenn es aus irgendeinem Grund nicht auf Ihrem System installiert ist, können Sie den Daemon installieren und starten, indem Sie Folgendes eingeben:

sudo dnf install firewalld sudo systemctl enable firewalld --now

Sie können den Status des Firewall-Dienstes folgendermaßen überprüfen:

sudo firewall-cmd --state

Wenn die Firewall aktiviert ist, sollte der Befehl running . Andernfalls wird angezeigt, dass das Programm not running .

Firewalld-Zonen

Die Standardzone ist diejenige, die für alles verwendet wird, was nicht explizit einer anderen Zone zugewiesen ist.

Sie können die Standardzone anzeigen, indem Sie Folgendes eingeben:

sudo firewall-cmd --get-default-zone

public

Geben Sie Folgendes ein, um eine Liste aller verfügbaren Zonen zu erhalten:

sudo firewall-cmd --get-zones

block dmz drop external home internal public trusted work

So zeigen Sie die aktiven Zonen und die ihnen zugewiesenen Netzwerkschnittstellen an:

sudo firewall-cmd --get-active-zones

Die folgende Ausgabe zeigt, dass die Schnittstellen eth0 und eth1 der public Zone zugewiesen sind:

public interfaces: eth0 eth1

Sie können die Zonenkonfigurationseinstellungen folgendermaßen drucken:

sudo firewall-cmd --zone=public --list-all

public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

Aus der obigen Ausgabe können wir ersehen, dass die öffentliche Zone aktiv ist und das Standardziel REJECT . Die Ausgabe zeigt auch, dass die Zone von den Schnittstellen eth0 und eth1 verwendet wird und DHCP-Client- und SSH-Verkehr zulässt.

sudo firewall-cmd --list-all-zones

Der Befehl druckt eine große Liste mit den Einstellungen aller verfügbaren Zonen.

Ändern des Zonenziels

Das Ziel definiert das Standardverhalten der Zone für den eingehenden Verkehr, der nicht angegeben ist. Es kann eine der folgenden Optionen ausgewählt werden: default , ACCEPT , REJECT und DROP .

--zone zum --zone des --zone die Zone mit der Option --zone und das Ziel mit der Option --set-target .

Um beispielsweise das Ziel der public Zone auf DROP zu ändern, würden Sie DROP ausführen:

sudo firewall-cmd --zone=public --set-target=DROP

Zuweisen einer Schnittstelle zu einer anderen Zone

Sie können bestimmte Regelsätze für verschiedene Zonen erstellen und diesen verschiedene Schnittstellen zuweisen. Dies ist besonders nützlich, wenn Sie mehrere Schnittstellen auf Ihrem Computer verwenden.

Um eine Schnittstelle einer anderen Zone zuzuweisen, geben Sie die Zone mit der Option --zone und die Schnittstelle mit der Option --change-interface .

Der folgende Befehl weist beispielsweise der eth1 Schnittstelle eth1 zu:

sudo firewall-cmd --zone=work --change-interface=eth1

Überprüfen Sie die Änderungen, indem Sie Folgendes eingeben:

sudo firewall-cmd --get-active-zones

work interfaces: eth1 public interfaces: eth0

Ändern der Standardzone

Verwenden Sie zum --set-default-zone Option --set-default-zone gefolgt vom Namen der Zone, die --set-default-zone möchten.

Um beispielsweise die Standardzone auf " home zu ändern, home Sie den folgenden Befehl aus:

sudo firewall-cmd --set-default-zone=home

Überprüfen Sie die Änderungen mit:

sudo firewall-cmd --get-default-zone

home

Neue Zonen erstellen

Mit Firewalld können Sie auch Ihre eigenen Zonen erstellen. Dies ist praktisch, wenn Sie anwendungsspezifische Regeln erstellen möchten.

Im folgenden Beispiel erstellen wir eine neue Zone mit dem Namen memcached , öffnen den Port 11211 und erlauben den Zugriff nur über die IP-Adresse 192.168.100.30 :

  1. Erstellen Sie die Zone:

    sudo firewall-cmd --new-zone=memcached --permanent

    Fügen Sie der Zone die Regeln hinzu:

    sudo firewall-cmd --zone=memcached --add-port=11211/udp --permanent sudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanent sudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanent

    Laden Sie den firewalld-Daemon neu, um die Änderungen zu aktivieren:

    sudo firewall-cmd --reload

Firewalld-Dienste

Mit der Firewall können Sie Datenverkehr für bestimmte Ports und / oder Quellen zulassen, basierend auf vordefinierten Regeln, die als Dienste bezeichnet werden.

So rufen Sie eine Liste aller standardmäßig verfügbaren Dienste ab:

sudo firewall-cmd --get-services

Weitere Informationen zu den einzelnen Diensten finden Sie, indem Sie die zugehörige XML-Datei im Verzeichnis /usr/lib/firewalld/services öffnen. Der HTTP-Dienst ist beispielsweise folgendermaßen definiert:

/usr/lib/firewalld/services/http.xml

WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages. WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.

Um eingehenden HTTP-Verkehr (Port 80) für Schnittstellen in der öffentlichen Zone nur für die aktuelle Sitzung (Laufzeitkonfiguration) zuzulassen, geben Sie Folgendes ein:

sudo firewall-cmd --zone=public --add-service=http Wenn Sie die Standardzone --zone können Sie die Option --zone .

Um zu überprüfen, ob der Dienst erfolgreich hinzugefügt wurde, verwenden Sie die Option --list-services :

sudo firewall-cmd --zone=public --list-services

ssh dhcpv6-client

Um den Port 80 nach einem Neustart offen zu halten, führen Sie denselben Befehl erneut mit der Option --permanent , oder führen Sie --permanent :

sudo firewall-cmd --runtime-to-permanent

Verwenden Sie --list-services zusammen mit der Option --permanent , um Ihre Änderungen zu überprüfen:

sudo firewall-cmd --permanent --zone=public --list-services

ssh dhcpv6-client

Die Syntax zum Entfernen des Dienstes ist dieselbe wie beim Hinzufügen eines Dienstes. Verwenden --remove-service einfach --remove-service anstelle des --add-service Flags:

sudo firewall-cmd --zone=public --remove-service=http --permanent

Mit dem obigen Befehl wird der http Dienst aus der permanenten Konfiguration der öffentlichen Zone entfernt.

Erstellen eines neuen FirewallD-Dienstes

Wie bereits erwähnt, werden die Standarddienste im Verzeichnis /usr/lib/firewalld/services gespeichert. Der einfachste Weg, einen neuen Dienst zu erstellen, besteht darin, eine vorhandene Dienstdatei in das Verzeichnis /etc/firewalld/services zu kopieren, in dem vom Benutzer erstellte Dienste gespeichert sind, und die Dateieinstellungen zu ändern.

Um beispielsweise eine Dienstdefinition für den Plex Media Server zu erstellen, können Sie die SSH-Dienstdatei verwenden:

sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml

Öffnen Sie die neu erstellte Datei plexmediaserver.xml und ändern Sie den Kurznamen und die Beschreibung für den Dienst im und Stichworte. Das wichtigste Tag, das Sie ändern müssen, ist das port Tag, das die Portnummer und das Protokoll definiert, die Sie öffnen möchten.

Im folgenden Beispiel öffnen wir die Ports 1900 UDP und 32400 TCP.

/etc/firewalld/services/plexmediaserver.xml

plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere. plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.

Speichern Sie die Datei und laden Sie den FirewallD-Dienst neu:

sudo firewall-cmd --reload

Sie können den plexmediaserver Dienst jetzt in Ihren Zonen wie jeden anderen Dienst verwenden.

Ports und Quell-IPs öffnen

Mit Firewalld können Sie auch schnell den gesamten Datenverkehr von einer vertrauenswürdigen IP-Adresse oder einem bestimmten Port aktivieren, ohne eine Dienstdefinition zu erstellen.

Quell-IP öffnen

Um den gesamten eingehenden Datenverkehr von einer bestimmten IP-Adresse (oder einem bestimmten Bereich) --zone , geben Sie die Zone mit der Option --zone und die Quell-IP mit der Option --add-source .

Um beispielsweise den gesamten eingehenden Datenverkehr von 192.168.1.10 in der public Zone zuzulassen, führen Sie Folgendes aus:

sudo firewall-cmd --zone=public --add-source=192.168.1.10

Machen Sie die neue Regel dauerhaft:

sudo firewall-cmd --runtime-to-permanent

Überprüfen Sie die Änderungen mit dem folgenden Befehl:

sudo firewall-cmd --zone=public --list-sources

192.168.1.10

Die Syntax zum Entfernen einer Quell-IP ist dieselbe wie beim Hinzufügen einer. Verwenden --remove-source einfach --remove-source anstelle der Option --add-source :

sudo firewall-cmd --zone=public --remove-source=192.168.1.10

Quellport öffnen

Um allen eingehenden Datenverkehr auf einem bestimmten Port zuzulassen, geben Sie die Zone mit der Option --zone und den Port und das Protokoll mit der Option --add-port .

So öffnen Sie beispielsweise Port 8080 in der öffentlichen Zone für die aktuelle Sitzung, die Sie ausgeführt haben:

sudo firewall-cmd --zone=public --add-port=8080/tcp

Das Protokoll kann entweder tcp , udp , sctp oder dccp .

Überprüfen Sie die Änderungen:

sudo firewall-cmd --zone=public --list-ports

8080

Um den Port nach einem Neustart offen zu halten, fügen Sie die Regel zu den permanenten Einstellungen hinzu, indem Sie denselben Befehl mit dem Flag --permanent ausführen oder --permanent ausführen:

sudo firewall-cmd --runtime-to-permanent

Die Syntax zum Entfernen eines Ports ist dieselbe wie beim Hinzufügen eines Ports. Verwenden --remove-port einfach --remove-port anstelle der Option --add-port .

sudo firewall-cmd --zone=public --remove-port=8080/tcp

Ports weiterleiten

Um Datenverkehr von einem Port zu einem anderen Port weiterzuleiten, aktivieren Sie zuerst die Maskierung für die gewünschte Zone mit der Option --add-masquerade . Um beispielsweise das Maskieren für die external Zone zu aktivieren, geben Sie Folgendes ein:

sudo firewall-cmd --zone=external --add-masquerade

Leiten Sie Datenverkehr von einem Port an einen anderen über die IP-Adresse weiter

Im folgenden Beispiel leiten wir den Datenverkehr von Port 80 an Port 8080 auf demselben Server weiter:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080

Leiten Sie den Datenverkehr an eine andere IP-Adresse weiter

Im folgenden Beispiel 10.10.10.2 wir den Datenverkehr von Port 80 an Port 80 auf einem Server mit IP 10.10.10.2 :

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2

Leiten Sie den Datenverkehr an einen anderen Server an einem anderen Port weiter

Im folgenden Beispiel 10.10.10.2 wir den Datenverkehr von Port 80 an Port 8080 auf einem Server mit IP 10.10.10.2 :

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2

Um die Weiterleitungsregel dauerhaft zu machen, verwenden Sie:

sudo firewall-cmd --runtime-to-permanent

Fazit

Sie haben gelernt, wie Sie den Firewall-Dienst auf Ihrem CentOS 8-System konfigurieren und verwalten.

Stellen Sie sicher, dass alle eingehenden Verbindungen zugelassen sind, die für den ordnungsgemäßen Betrieb Ihres Systems erforderlich sind, und begrenzen Sie alle unnötigen Verbindungen.

Firewall Firewall Centos Sicherheit