GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwenden Sie firewalld auf RedHat-basierten Distributionen

Firewalld hat iptables als Firewall für RHEL-basierte Distributionen ersetzt. Die Syntax, die firewalld verwendet, ist benutzerfreundlicher. Dieser Beitrag zeigt Ihnen, wie Sie sicherstellen, dass Firewalld läuft und startet, wenn Ihr Server bootet. Es zeigt Ihnen auch, wie Sie dauerhafte und flexible Firewall-Regeln erstellen.

Hinweis :Red Hat®, CentOS®, Alma Linux®, Rocky Linux® verwenden ebenfalls firewalld, daher funktionieren alle Befehle in diesem Artikel auch in den RHEL-basierten Images, die Rackspace zur Verfügung stellt.

Grundlegende Firewalld-Konzepte

Firewalld verwendet Zonen Gruppen von Regeln zu verwalten. Zonen sind mit Netzwerkschnittstellen verbunden und bestimmen, welcher Datenverkehr in einem bestimmten Netzwerk zulässig und welcher Datenverkehr verweigert wird.

Diese Funktion kann nützlich sein, wenn Sie eine sehr strenge Firewall auf Ihrer öffentlichen Schnittstelle und eine entspanntere Firewall auf Ihrer CloudNetwork-Schnittstelle einrichten möchten. Es ist hilfreich, sich mit den vordefinierten Zonen vertraut zu machen. Firewalld hat die folgenden vordefinierten Zonen, in der Reihenfolge von am wenigsten vertrauenswürdig bis zu den vertrauenswürdigsten:

  • drop :Diese Zone lässt nur ausgehende Verbindungen zu. Es bricht eingehende Verbindungen ohne Antwort ab.
  • block :Ähnlich wie drop , weist diese Zone eingehende Anfragen mit einem icmp-host-prohibited zurück oder icmp6-adm-prohibited Nachricht.
  • public :Verwenden Sie diese Zone für öffentliche Netzwerke oder wenn Sie keinem der anderen Computer im Netzwerk vertrauen. Diese Zone akzeptiert eingehende Verbindungen von Fall zu Fall.
  • external :Verwenden Sie diese Zone in externen Netzwerken, in denen die Firewall als Gateway fungiert. Diese Zone ist für Network Address Translation (NAT)-Masquerading konfiguriert, sodass Ihr internes Netzwerk privat, aber erreichbar ist.
  • internal :Verwenden Sie diese Zone für den internen Teil eines Gateways, wo die anderen Computer einigermaßen vertrauenswürdig sind.
  • dmz :Verwenden Sie diese Zone für isolierte Computer, die sich in einer demilitarisierten Zone (DMZ) befinden. Diese Zone erlaubt nur Secure Shell (SSH) und Internet Control Message Protocol (ICMP).
  • work :Verwenden Sie diese Zone für Arbeitscomputer.
  • home :Verwenden Sie diese Zone für Heimumgebungen.
  • trusted :Verwenden Sie diese Zone, wenn Sie allen Computern im Netzwerk vertrauen.

Um die Firewall zu verwenden, erstellen Sie Regeln und ändern die Eigenschaften Ihrer Zonen und weisen dann Ihre Netzwerkschnittstellen den Zonen zu, die für Ihr Netzwerk am besten geeignet sind.

Starten Sie die Firewall und aktivieren Sie sie beim Booten

Standardmäßig sollte firewalld aktiviert sein, den Server neu starten und dann atboot starten.

Sie können leicht überprüfen, ob die Firewall läuft, indem Sie --state verwenden Flag, wie im folgenden Beispiel gezeigt:

    [user@server ~]$ sudo firewall-cmd --state
    Finding out about your zones

Wenn Firewalld nicht läuft, können Sie es aktivieren und starten, indem Sie die folgenden Befehle ausführen:

    [user@server ~]$ sudo systemctl enable firewalld
    [user@server ~]$ sudo systemctl start firewalld

Sie können sehen, welche Zone derzeit die Standardzone ist, indem Sie den folgenden Befehl ausführen:

    [user@server ~]$ sudo firewall-cmd --get-default-zone

Sie können sehen, welche Netzwerkschnittstellen welchen Zonen zugewiesen sind, indem Sie den folgenden Befehl ausführen:

    [user@server ~]$ sudo firewall-cmd --get-active-zones

Hinweis :Die Standardeinstellung weist alle Netzwerkschnittstellen der öffentlichen Zone zu.

Sie können auch die Regeln finden, die der öffentlichen Zone zugeordnet sind, indem Sie den folgenden Befehl ausführen:

    [user@server ~]$ sudo firewall-cmd --list-all --zone=public

Die Ausgabe sollte wie im folgenden Beispiel aussehen:

    public (default, active)

    interfaces: eth0 eth1

    sources:

    services: dhcpv6-client http https ssh

    ports: 1025/tcp

    masquerade: no

    forward-ports:

    icmp-blocks:

    rich rules:

Die Ausgabe zeigt, dass die öffentliche Zone die Standardzone ist und über die Netzwerkschnittstellen eth0 und eth1 verfügt. Dynamic Host Configuration Protocol (DHCP)(dhcpv6-client ), SSH-, HTTP- (Hypertext Transfer Protocol) und HTTPS-Datenverkehr (Secure HTTP) sowie TCP-Datenverkehr (Transmission Control Protocol) auf Port 1025 zulässig .

Um eine Liste der verfügbaren Zonen zu erhalten, führen Sie den folgenden Befehl aus:

    [user@server ~]$ sudo firewall-cmd --get-zones

Richten Sie Ihre Zonen ein

Sie können während Ihrer Sitzung Schnittstellen zwischen Zonen verschieben, indem Sie --change-interface= verwenden -Argument und die --zone Streit. Wenn die Firewall neu gestartet wird, kehrt die Schnittstelle zur Standardzone zurück.

    [user@server ~]$ sudo firewall-cmd --zone=internal --change-interface=eth1

Um eine permanente Zone für eine Schnittstelle zu definieren, öffnen Sie die Konfigurationsdatei für die Schnittstelle und fügen Sie die folgenden Zeilen hinzu:

    ...
    ONBOOT=yes
    ZOME=internal

Speichern und schließen Sie die Datei und führen Sie dann die folgenden Befehle aus, um das Netzwerk und die Firewall neu zu starten und die Änderungen wirksam werden zu lassen:

    [user@server ~]$ sudo systemctl restart network
    [user@server ~]$ sudo systemctl restart firewalld

Stellen Sie die Regeln auf

Firewalld wird mit vordefinierten Diensten geliefert, mit denen Sie nur den Dienst hinzufügen können, anstatt die Portnummer und den Protokolltyp. Sie ermöglichen Ihnen beispielsweise, http zuzulassen statt tcp port 80 .

Eine Liste dieser Dienste erhalten Sie mit dem folgenden Befehl:

    [user@server ~]$ sudo firewall-cmd --get-services

Verwenden Sie dann den folgenden Beispielbefehl, um einen Dienst hinzuzufügen:

    [user@server ~]$ sudo firewall-cmd --add-service=http

Die Konfiguration wird sofort wirksam, überlebt jedoch keine Neustarts. Damit diese Arten von Dienstkonfigurationen beim Neustart des Servers neu gestartet werden, müssen Sie den --permanent hinzufügen Streit. Wir empfehlen, dass Sie diese beiden Befehle nacheinander ausführen, damit die Konfiguration sofort wirksam wird und die Dienste ebenfalls neu gestartet werden, wie im folgenden Beispiel gezeigt:

    [user@server ~]$ sudo firewall-cmd --add-service=http
    firewall-cmd --permanent --add-service=http

Weitere Einzelheiten zu den vordefinierten Regeln von firewalld erhalten Sie, indem Sie zu /usr/lib/firewalld/services/ navigieren Verzeichnis und Lesen der Dateien.

Rich-Regeln einrichten

Rich-Regeln So definieren Sie Bedingungen in Firewalld. Der häufigste Anwendungsfall für umfangreiche Regeln ist das Zulassen des Zugriffs von einer bestimmten IP-Adresse oder einem bestimmten IP-Adressenbereich. Die folgenden Befehle ermöglichen den Zugriff auf TCP-Port 80 von jedem IP im Netzwerk 192.168.0.0 und machen die Regel dauerhaft:

    [user@server ~]$ sudo firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept'
    [user@server ~]$ sudo firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' --permanent

Beispiele für Rich Rules finden Sie im Fedora®Wiki.

Dienste definieren

Sie können Ihren eigenen Dienst erstellen und sich darauf beziehen, wenn Sie Regeln erstellen, indem Sie eine Datei in /usr/lib/firewalld/services/ platzieren Verzeichnis. Am einfachsten können Sie diese Aufgabe ausführen, indem Sie eine vorhandene .xml kopieren Datei in diesem Verzeichnis, und ändern Sie dann die Details.

Der folgende Beispielbefehl kopiert eine vorhandene Datei in eine neue Datei:

    [user@server ~]$ sudo cp /usr/lib/firewalld/services/http.xml /usr/lib/firewalld/services/myservice.xml

Der folgende Befehl öffnet die neue Datei zum Bearbeiten:

    [user@server ~]$ sudo vim /usr/lib/firewalld/services/myserver.xml

Die Datei sollte wie im folgenden Beispiel aussehen:

    <!--?xml version="1.0" encoding="utf-8"?-->
    <service>
      <short>My Custom Service</short>
      <description>A brief description of the service. This rule allows port 1134 on TCP for my application.</description>
      <port protocol="tcp" port="1134"></port>
    </service>

Um Ihre Änderungen zu übernehmen, verwenden Sie die folgenden Befehle mit dem Namen der Datei ohne .xml Dateiendung:

    [user@server ~]$ sudo firewall-cmd --add-service=myservice
    [user@server ~]$ sudo firewall-cmd --permanent --add-service=myservice

Verwenden Sie die Registerkarte „Feedback“, um Kommentare abzugeben oder Fragen zu stellen. Sie können auch ein Gespräch mit uns beginnen.


Linux
  1. So aktivieren und verwenden Sie firewalld unter CentOS 7

  2. Eine Anleitung für Anfänger zu firewalld unter Linux

  3. Was ist FirewallD und wie wird es unter Linux implementiert?

  4. Grundlegende Firewalld Firewall-Verwaltung

  5. Installieren Sie einen LAMP-Stack auf RHEL 7-basierten Distributionen

6 Linux-Distributionen für Bildungszwecke

So verwenden Sie IPTables anstelle von Firewalld für Fedora 30-31-32

So installieren und verwenden Sie PHP Composer auf Linux-Distributionen

So installieren und verwenden Sie GNU Emacs auf Linux-Distributionen

So installieren und verwenden Sie Ruby unter Linux-Distributionen

KVM – Welches webbasierte Management soll verwendet werden?