Android

So richten Sie eine Firewall mit firewalld auf centos 7 ein

Linux - Firewall einrichten

Linux - Firewall einrichten

Inhaltsverzeichnis:

Anonim

Eine ordnungsgemäß konfigurierte Firewall ist einer der wichtigsten Aspekte der Gesamtsystemsicherheit.

FirewallD ist eine vollständige Firewall-Lösung, die die iptables-Regeln des Systems verwaltet und eine D-Bus-Schnittstelle für den Betrieb bereitstellt. Ab CentOS 7 ersetzt FirewallD iptables als Standard-Firewall-Verwaltungstool.

In diesem Tutorial zeigen wir Ihnen, wie Sie eine Firewall mit FirewallD auf Ihrem CentOS 7-System einrichten und erklären Ihnen die grundlegenden FirewallD-Konzepte.

Voraussetzungen

Bevor Sie mit diesem Lernprogramm beginnen, stellen Sie sicher, dass Sie mit einem Benutzerkonto mit Sudo-Berechtigungen oder mit dem Root-Benutzer auf Ihrem Server angemeldet sind. Am besten führen Sie administrative Befehle als sudo-Benutzer anstelle von root aus. Wenn Sie keinen sudo-Benutzer auf Ihrem CentOS-System haben, können Sie einen erstellen, indem Sie diese Anweisungen befolgen.

Grundlegende Firewall-Konzepte

FirewallD verwendet anstelle von iptables chain und rules 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 nicht zugelassen wird.

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

Firewalld-Zonen

Zonen sind vordefinierte Regelsätze, die festlegen, welcher Datenverkehr basierend auf der Vertrauensstufe in den Netzwerken, mit denen Ihr Computer verbunden ist, zulässig sein soll. 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.

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-Dienst 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, müssen Sie die Option --permanent .

Installieren und Aktivieren von FirewallD

  1. Firewalld wird standardmäßig unter CentOS 7 installiert. Wenn Firewalld jedoch nicht auf Ihrem System installiert ist, können Sie das Paket installieren, indem Sie Folgendes eingeben:

    sudo yum install firewalld

    Der Firewall-Dienst ist standardmäßig deaktiviert. Sie können den Firewall-Status folgendermaßen überprüfen:

    sudo firewall-cmd --state

    So starten Sie den FirewallD-Dienst und aktivieren ihn beim Booten:

    sudo systemctl start firewalld sudo systemctl enable firewalld

Arbeiten mit Firewalld-Zonen

Nach der erstmaligen Aktivierung des FirewallD-Dienstes wird die public Zone als Standardzone festgelegt. 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

Standardmäßig wird allen Netzwerkschnittstellen die Standardzone zugewiesen. So überprüfen Sie, welche Zonen von Ihren Netzwerkschnittstellentypen verwendet werden:

sudo firewall-cmd --get-active-zones

public interfaces: eth0 eth1

Die Ausgabe oben sagt uns, dass beide Schnittstellen eth0 und eth1 der öffentlichen Zone zugewiesen sind.

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 eth0 dass die öffentliche Zone aktiv und als Standard eth0 und eth1 Schnittstellen eth0 als auch eth1 verwendet wird. Außerdem sind die mit dem DHCP-Client und SSH verbundenen Verbindungen zulässig.

sudo firewall-cmd --list-all-zones

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

Ändern der Zone einer Schnittstelle

Sie können die Schnittstellenzone einfach ändern, indem --zone Option --zone in Kombination mit der Option --change-interface . Der folgende Befehl weist 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 "Zuhause" zu ändern, müssen Sie den folgenden Befehl ausführen:

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

Überprüfen Sie die Änderungen mit:

sudo firewall-cmd --get-default-zone

home

Port oder Service öffnen

Mit FirewallD können Sie Datenverkehr für bestimmte Ports 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

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

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 eines Dienstes ist dieselbe wie beim Hinzufügen eines Dienstes. Verwenden --remove-service einfach --remove-service anstelle der Option --add-service :

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.

Was ist, wenn Sie eine Anwendung wie Plex Media Server ausführen, für die kein entsprechender Dienst verfügbar ist?

In solchen Situationen haben Sie zwei Möglichkeiten. Sie können entweder die entsprechenden Ports öffnen oder einen neuen FirewallD-Dienst definieren.

Der Plex Server überwacht beispielsweise Port 32400 und verwendet TCP. Verwenden Sie zum Öffnen des Ports in der öffentlichen Zone für die aktuelle Sitzung die Option --add-port= :

sudo firewall-cmd --zone=public --add-port=32400/tcp Protokolle können entweder tcp oder udp .

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

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

32400/tcp

Um den Port 32400 nach einem Neustart offen zu halten, fügen Sie die Regel zu den permanenten Einstellungen hinzu, indem Sie denselben Befehl mit der Option --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=32400/tcp

Erstellen eines neuen FirewallD-Dienstes

Wie bereits erwähnt, werden die Standarddienste im Verzeichnis /usr/lib/firewalld/services gespeichert. Am einfachsten können Sie einen neuen Dienst erstellen, indem Sie eine vorhandene Dienstdatei in das Verzeichnis /etc/firewalld/services kopieren, in dem vom Benutzer erstellte Dienste gespeichert sind, und die Dateieinstellungen ändern.

Um beispielsweise eine Service-Definition für den Plex Media Server zu erstellen, können Sie die SSH-Service-Datei 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.

Weiterleitungsport mit Firewalld

Um Datenverkehr von einem Port zu einem anderen Port oder einer anderen Adresse weiterzuleiten, aktivieren Sie zuerst die Maskierung für die gewünschte Zone mit dem Schalter --add-masquerade . So aktivieren Sie beispielsweise das Maskieren für den Typ der external Zone:

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

  • Leiten Sie Datenverkehr von einem Port zu einem anderen auf demselben Server 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

  • Datenverkehr an einen anderen Server weiterleiten

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

Erstellen eines Regelsatzes mit FirewallD

Im folgenden Beispiel wird gezeigt, wie Sie Ihre Firewall konfigurieren, wenn Sie einen Webserver ausgeführt haben. Wir gehen davon aus, dass Ihr Server nur eine Schnittstelle eth0 hat und Sie eingehenden Datenverkehr nur über SSH-, HTTP- und HTTPS-Ports zulassen möchten.

  1. Ändern Sie die Standardzone in dmz

    Wir werden die dmz-Zone (demilitarisiert) verwenden, da standardmäßig nur SSH-Verkehr zugelassen wird. Führen Sie die folgenden Befehle aus, um die Standardzone in dmz zu ändern und der eth0 Schnittstelle zuzuweisen:

    sudo firewall-cmd --set-default-zone=dmz sudo firewall-cmd --zone=dmz --add-interface=eth0

    Öffnen Sie HTTP- und

    Um HTTP- und HTTPS-Ports zu öffnen, fügen Sie der dmz-Zone permanente Dienstregeln hinzu:

    sudo firewall-cmd --permanent --zone=dmz --add-service=http sudo firewall-cmd --permanent --zone=dmz --add-service=https

    Machen Sie die Änderungen sofort wirksam, indem Sie die Firewall neu laden:

    sudo firewall-cmd --reload

    Überprüfen Sie die Änderungen

    So überprüfen Sie die Konfigurationseinstellungen für die DMZ-Zone:

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

    dmz (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: ssh http https ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

    Aus der obigen Ausgabe geht hervor, dass dmz die Standardzone ist, auf die eth0 Schnittstelle angewendet wird und die eth0 ssh (22) http (80) und https (443) geöffnet sind.

Fazit

Sie haben gelernt, wie Sie den FirewallD-Dienst auf Ihrem CentOS-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 Iptables Centos Sicherheit