Zurück zum Blog

Einrichten einer Firewall mit FirewallD auf CentOS 7

Einrichten einer Firewall mit FirewallD auf CentOS 7

Einführung

Firewalld ist eine Firewall-Verwaltungslösung, die für viele Linux-Distributionen verfügbar ist. Sie dient als Schnittstelle zum vom Linux-Kernel bereitgestellten iptables-Paketfiltersystem. In dieser Anleitung erfahren Sie, wie Sie eine Firewall für Ihren Server konfigurieren. Wir zeigen Ihnen auch die Grundlagen der Verwaltung der Firewall mit dem Administrationswerkzeug firewall-cmd.

Firewalld-Grundlagen

FirewallD verwendet die Konzepte von Zonen und Diensten anstelle der Ketten und Regeln von iptables. Abhängig von den konfigurierten Zonen und Diensten können Sie steuern, welcher Datenverkehr zum und vom System zugelassen oder nicht zugelassen ist. FirewallD kann über das Befehlszeilenprogramm firewall-cmd konfiguriert und verwaltet werden.

Installieren und Aktivieren Ihrer Firewall für den Start beim Booten

Auf den meisten Linux-Distributionen ist firewallD bereits installiert. Wenn Sie es jedoch selbst installieren müssen, geben Sie die folgende Syntax ein:

Sie können den Dienst aktivieren und Ihren Server neu starten, sobald firewalld installiert ist:

Starten Sie als Nächstes Ihren Server neu. Ihre Firewall wird aktiviert, wenn Sie den Server erfolgreich neu gestartet haben. Verwenden Sie danach den folgenden Befehl, um zu überprüfen, ob der Dienst aktiviert wurde:

check firewall state FirewallD

Die Ausgabe zeigt, dass die Standard-Firewall-Einstellung funktioniert.

Überprüfen der Standardeinstellungen

Sie können die vom Server ausgewählte Zone mit diesem Befehl überprüfen:

check firewall default zone

Überprüfen Sie die aktive Zone, indem Sie Folgendes eingeben:

firewall active zones

Geben Sie die Konfiguration der Standardzone aus, um die dem öffentlichen Bereich zugeordneten Regeln mit dieser Syntax zu erfahren:

list all rules FirewallD

Die Ausgabe zeigt an, dass diese Zone sowohl die Standard- als auch die aktive Zone ist. Sie zeigt auch, dass die Schnittstellen eth0 und eth1 dieser Zone zugewiesen sind.

Überprüfen alternativer Zonen

Zusätzlich zu den Standard- und aktiven Zonen gibt es weitere Zonen, die Sie erkunden können. Geben Sie diesen Befehl ein, um alle verfügbaren Zonen anzuzeigen:

firewall check other zones

Überprüfen Sie die einer Zone zugewiesene spezifische Konfiguration, indem Sie den Parameter –zone= im Befehl –list-all hinzufügen:

check zone configuration FirewallD

 Ändern der Schnittstellenzone

Sie können die Schnittstellenzone ganz einfach mit der Option –change-interface in Kombination mit der Option –change-interface ändern. Der folgende Befehl weist die Schnittstelle eth1 dem Arbeitsbereich zu:

Sie können die Änderungen überprüfen, indem Sie Folgendes eingeben:

changing firewall interface zones FirewallD

Ändern der Standardzone

Um die Standardzone zu ändern, verwenden Sie –set-default-zone gefolgt von dem Namen der Zone, die Sie als Standard festlegen möchten. Um beispielsweise die Standardzone zu ändern, sollten Sie den folgenden Befehl ausführen:

Als Nächstes können Sie die Änderungen überprüfen mit:

firewall change default zone

Regeln für Ihre Anwendungen festlegen

Gehen wir die Grundlagen durch, die erforderlich sind, um Firewall-Ausnahmen für die Dienste zu definieren:

Hinzufügen eines Dienstes zu Ihren Zonen

Der einfachste Weg besteht darin, die benötigten Ports oder Dienste zu den von Ihnen verwendeten Zonen hinzuzufügen. Ebenso können Sie die Option –get-services verwenden, um alle verfügbaren Dienste anzuzeigen:

firewall get services FirewallD

Sie können den Dienst für eine Zone mit dem Parameter –add-service = aktivieren. Die Aktion zielt auf die Standardzone oder eine beliebige durch den Parameter –zone = definierte Zone ab. Standardmäßig wird nur die aktuelle Firewall-Sitzung konfiguriert. Sie können eine dauerhafte Firewall-Konfiguration einrichten, indem Sie das Flag –permanent aktivieren. Wenn Sie beispielsweise einen Webserver betreiben, der regulären HTTP-Verkehr bereitstellt, können Sie diesen Verkehr für Schnittstellen in unserer “public”-Zone für diese Sitzung zulassen, indem Sie Folgendes eingeben:

Sie können –zone = weglassen, wenn Sie die Standardzone ändern möchten. Sie können den Erfolg des Vorgangs mit den Operationen –list-all oder –list-services überprüfen:

add service to zone

Sobald Sie überprüft haben, dass alles wie erwartet funktioniert, möchten Sie wahrscheinlich die permanenten Firewall-Regeln ändern, damit Ihr Dienst auch nach einem Neustart verfügbar bleibt. Wir können die Änderung an unserer “public”-Zone dauerhaft vornehmen, indem wir folgende Syntax eingeben:

Sie können überprüfen, ob dies erfolgreich war, indem Sie das Flag –permanent zur Operation –list-services hinzufügen. Sie müssen sudo für alle permanenten Operationen verwenden:

Ihre “public”-Zone lässt nun HTTP-Verkehr auf Port 80 zu. Sie können dies mit dem folgenden Befehl zur aktuellen Sitzung und dem dauerhaften Regelsatz hinzufügen:

Wenn es keine Dienste gibt, die Ihren Anforderungen entsprechen, haben Sie zwei hervorragende Möglichkeiten, diese Situation zu bewältigen:

  1. Öffnen eines Ports für Ihre Zonen

Der einfachste Weg, Unterstützung für Ihre spezielle Anwendung hinzuzufügen, besteht darin, die in jeder Zone verwendeten Ports zu öffnen. Es ist so einfach wie das Festlegen eines Ports oder Portbereichs und des entsprechenden Protokolls für die Ports, die Sie öffnen müssen. Wenn Ihre Anwendung beispielsweise auf Port 5000 läuft und TCP verwendet, können Sie sie für diese Sitzung mit dem Parameter –add-port = zur “public”-Zone hinzufügen. Protokolle können TCP oder UDP sein:

Um zu überprüfen, ob der Vorgang erfolgreich war, verwenden Sie die Operation –list-ports:

Sie können auch einen Bereich für die serielle Schnittstelle angeben, indem Sie die Start- und Endports im Bereich mit einem Bindestrich trennen. Wenn Ihre Anwendung beispielsweise die UDP-Ports 4990 bis 4999 verwendet, können Sie diese in “public” öffnen, indem Sie Folgendes schreiben:

Nach dem Testen möchten wir sie wahrscheinlich zur permanenten Firewall hinzufügen. Sie können dies tun, indem Sie Folgendes eingeben:

adding ports to permanent firewall

  1. Definieren eines Dienstes

Ein Dienst ist eine Sammlung von Ports mit einem zugehörigen Namen und einer Beschreibung. Dienste sind einfacher zu verwalten als Ports, erfordern jedoch ein wenig Anfangsaufwand. Der einfachste Weg für den Einstieg besteht darin, ein vorhandenes Skript (in / usr / lib / firewalld / services) in das Verzeichnis /etc/firewalld/services zu kopieren. Sie können beispielsweise die SSH-Dienstdefinition wie folgt kopieren, um sie in der Dienstdefinition “example” zu verwenden. Der Dateiname abzüglich der XML-Endung bestimmt den Dienstnamen in der Liste der Firewall-Dienste:

An diesem Punkt können Sie die Definition in der kopierten Datei anpassen:

Zuerst enthält die Datei die von Ihnen kopierte SSH-Definition:

Der größte Teil dieser Definition besteht aus Metadaten. Sie müssen den Kurznamen des Dienstes in den <short>-Tags ändern. Dies ist ein lesbarer Dienstname. Stellen Sie sich vor, für unseren “example”-Dienst müssen wir Port 7777 für TCP und 8888 für UDP öffnen. Sie können die bestehende Definition ändern, indem Sie durch Drücken von i in den INSERT-Modus wechseln:

Next, press ESC and type: x to save and close the file. Then, type the command below to restart your firewall in order to have access to your new service;

Verwenden Sie danach den folgenden Befehl, um eine Liste der verfügbaren Dienste anzuzeigen:

get services

Dieser Dienst ist nun in Ihrer Zone verfügbar.

Erstellen Ihrer Zonen

Während die vordefinierten Zonen für die meisten Benutzer wahrscheinlich ausreichen, kann es nützlich sein, eigene Zonen zu definieren, die deren Funktion genauer beschreiben.

Wenn Sie eine Zone hinzufügen, fügen Sie sie zu Ihren permanenten Firewall-Einstellungen hinzu. Anschließend können Sie die Firewall neu laden, um die Einstellungen in Ihre Sitzung zu übernehmen. Sie können beispielsweise die beiden zuvor besprochenen Zonen erstellen, indem Sie Folgendes eingeben:

Sie können mit diesem Befehl bestätigen, dass sie in Ihrer permanenten Konfiguration vorhanden sind:

firewall zones

Laden Sie die Firewall neu, um diese neuen Zonen in die aktive Konfiguration zu übernehmen:

Jetzt können Sie Ihren Zonen die entsprechenden Dienste und Ports zuweisen. Für die Zone “publicweb” möchten Sie beispielsweise die Dienste SSH, HTTP und HTTPS hinzufügen:

list public web zone

 

Sie können Ihrer Zone „privateDNS“ auch den DNS-Dienst mit diesem Befehl hinzufügen:

list privateDNS zone FirewallD

Als Nächstes können Sie Ihre Schnittstellen in diese neuen Zonen ändern, um sie zu testen:

Testen Sie die Konfiguration, um zu sehen, ob sie funktioniert. Wenn diese Werte für Sie funktionieren, müssen Sie dieselben Regeln zur permanenten Konfiguration hinzufügen. Sie können dies tun, indem Sie die Regeln mit dem Indikator —permanent erneut anwenden:

 

Nachdem Sie diese Regeln dauerhaft angewendet haben, können Sie Ihr Netzwerk neu starten und Ihren Firewall-Dienst neu laden:

Überprüfen Sie, ob die Zonen korrekt zugewiesen wurden:

check active zones FirewallD

Stellen Sie außerdem sicher, dass beide Zonen den korrekten Dienst haben:

Wenn Sie eine Ihrer Zonen als Standard für andere Schnittstellen festlegen möchten, müssen Sie dieses Verhalten mit dem Parameter –set-default-zone= über diesen Befehl konfigurieren:

Fazit

An diesem Punkt haben Sie Ihre eigenen Zonen erfolgreich erstellt. Sie sollten nun ein grundlegendes Verständnis für die Verwaltung des firewalld-Dienstes auf Ihrem CentOS-System für den täglichen Gebrauch haben. Ein gutes Verständnis des firewalld-Dienstes ermöglicht es Ihnen, seine Leistungsfähigkeit und Flexibilität voll auszuschöpfen.

Viel Spaß beim Computing!

 

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev ist ein kreativer Designer bei CloudSigma und konzentriert sich auf eine konsistente Unternehmensidentität durch traditionelle und innovative Marketingkanäle. Er versteht es meisterhaft, künstlerische Vision mit strategischem Marketing zu verbinden, um wirkungsvolle Markengeschichten zu schaffen.

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.