In einfachen Worten, a Firewall ist ein Sicherheitssystem, das den ein- und ausgehenden Datenverkehr in einem Netzwerk basierend auf einer Reihe vordefinierter Regeln (wie zum Beispiel Paketziel/-quelle oder Art des Datenverkehrs) kontrolliert.
In diesem Artikel werden wir die Grundlagen von Firewalld, der standardmäßige dynamische Firewall-Daemon in Red Hat Enterprise Linux 7, und iptables service, der Legacy-Firewall-Dienst für Linux, mit dem die meisten System- und Netzwerkadministratoren bestens vertraut sind und der auch in RHEL 7.
Unter der Haube beide Firewalld und das iptables service gespräch mit dem Netzfilter Framework im Kernel über dieselbe Schnittstelle, nicht überraschend, den Befehl iptables. Im Gegensatz zum Dienst iptables kann Firewalld die Einstellungen jedoch während des normalen Systembetriebs ändern, ohne dass bestehende Verbindungen verloren gehen.
Firewalld sollte standardmäßig in Ihrem RHEL-System installiert sein, obwohl es möglicherweise nicht ausgeführt wird. Sie können dies mit den folgenden Befehlen überprüfen (Firewall-Konfiguration ist das Konfigurationstool für die Benutzeroberfläche):
# Yum Info Firewalld Firewall-Config.
und,
# systemctl-status -l Firewalld.service.
Auf der anderen Seite ist die iptables service ist nicht standardmäßig enthalten, kann aber über installiert werden.
# yum update && yum installiere iptables-services.
Beide Daemons können mit dem üblichen gestartet und aktiviert werden, um beim Booten zu starten systemd Befehle:
# systemctl starte firewalld.service | iptables-service.service. # systemctl Firewalld.service aktivieren | iptables-service.service.
Lesen Sie auch:Nützliche Befehle zum Verwalten von Systemd-Diensten
Was die Konfigurationsdateien betrifft, verwendet der iptables-Dienst /etc/sysconfig/iptables
(die nicht vorhanden ist, wenn das Paket nicht auf Ihrem System installiert ist). Auf einer als Clusterknoten verwendeten RHEL 7-Box sieht diese Datei wie folgt aus:
Während Firewalld seine Konfiguration in zwei Verzeichnissen speichert, /usr/lib/firewalld
und /etc/firewalld
:
# ls /usr/lib/firewalld /etc/firewalld.
Wir werden diese Konfigurationsdateien später in diesem Artikel genauer untersuchen, nachdem wir hier und da ein paar Regeln hinzugefügt haben. Es genügt jetzt, Sie daran zu erinnern, dass Sie jederzeit weitere Informationen zu beiden Tools mit finden können.
# man Firewalld.conf. # man Firewall-cmd. # man iptables.
Ansonsten denken Sie daran, einen Blick darauf zu werfen Überprüfung der grundlegenden Befehle und der Systemdokumentation – Teil 1 der aktuellen Serie, in der ich mehrere Quellen beschrieben habe, in denen Sie Informationen zu den auf Ihrem installierten Paketen erhalten können RHEL 7 System.
Vielleicht möchten Sie verweisen auf Konfigurieren der Iptables-Firewall – Teil 8 des Zertifizierter Linux Foundation-Ingenieur (LFCE) Serie, um dein Gedächtnis aufzufrischen iptables Einbauten, bevor Sie fortfahren. So können wir direkt in die Beispiele einsteigen.
TCP-Ports 80 und 443 sind die Standardports, die vom Apache-Webserver verwendet werden, um normale (HTTP) und sicher (HTTPS) Web-Traffic. Sie können ein- und ausgehenden Webdatenverkehr über beide Ports auf dem enp0s3 Schnittstelle wie folgt:
# iptables -A INPUT -i enp0s3 -p tcp --dport 80 -m state --state NEU, ETABLISHED -j ACCEPT. # iptables -A AUSGABE -o enp0s3 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT. # iptables -A INPUT -i enp0s3 -p tcp --dport 443 -m state --state NEU, ETABLISHED -j ACCEPT. # iptables -A AUSGABE -o enp0s3 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT.
Es kann vorkommen, dass Sie alle (oder einige) Arten von Datenverkehr blockieren müssen, der von einem bestimmten Netzwerk stammt, sagen wir 192.168.1.0/24 zum Beispiel:
# iptables -I EINGABE -s 192.168.1.0/24 -j DROP.
wird alle Pakete fallen lassen, die von der 192.168.1.0/24 Netzwerk, während
# iptables -A INPUT -s 192.168.1.0/24 --dport 22 -j ACCEPT.
erlaubt nur eingehenden Datenverkehr über den Port 22.
Wenn Sie Ihre verwenden RHEL 7 box nicht nur als Software-Firewall, sondern auch als eigentliche Hardware-basierte, damit sie zwischen zwei unterschiedlichen Netzwerken sitzt, muss die IP-Weiterleitung in Ihrem System bereits aktiviert sein. Wenn nicht, müssen Sie bearbeiten /etc/sysctl.conf
und setze den Wert von net.ipv4.ip_forward zu 1, wie folgt:
net.ipv4.ip_forward = 1.
Speichern Sie dann die Änderung, schließen Sie Ihren Texteditor und führen Sie abschließend den folgenden Befehl aus, um die Änderung zu übernehmen:
# sysctl -p /etc/sysctl.conf.
Beispielsweise haben Sie möglicherweise einen Drucker an einer internen Box mit IP 192.168.0.10, mit dem TASSEN Dienst, der auf Port lauscht 631 (sowohl auf dem Druckserver als auch auf Ihrer Firewall). Um Druckanfragen von Clients auf der anderen Seite der Firewall weiterzuleiten, sollten Sie die folgende iptables-Regel hinzufügen:
# iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 631 -j DNAT --to 192.168.0.10:631.
Bitte bedenken Sie, dass iptables liest seine Regeln sequentiell, stellen Sie also sicher, dass die Standardrichtlinien oder späteren Regeln die in den obigen Beispielen beschriebenen nicht überschreiben.
Eine der Änderungen, die mit. eingeführt wurden Firewalld sind Zonen. Dieses Konzept ermöglicht es, Netzwerke in verschiedene Zonen zu unterteilen.
So listen Sie die aktiven Zonen auf:
# Firewall-cmd --get-active-zones.
Im folgenden Beispiel ist die öffentliche Zone aktiv ist und die enp0s3 Schnittstelle wurde ihm automatisch zugewiesen. So zeigen Sie alle Informationen zu einer bestimmten Zone an:
# Firewall-cmd --zone=public --list-all.
Da kannst du mehr darüber lesen Zonen in dem RHEL 7-Sicherheitsleitfaden, werden wir hier nur einige konkrete Beispiele auflisten.
Um eine Liste der unterstützten Dienste abzurufen, verwenden Sie.
# Firewall-cmd --get-services.
Erlauben http und https Web-Traffic durch die Firewall, ab sofort und bei nachfolgenden Bootvorgängen wirksam:
# Firewall-cmd --zone=MeineZone --add-service=http. # Firewall-cmd --zone=MeineZone --permanent --add-service=http. # Firewall-cmd --zone=MeineZone --add-service=https. # Firewall-cmd --zone=MeineZone --permanent --add-service=https. # Firewall-cmd --reload.
Wenn code>–zone weggelassen wird, ist die Standardzone (Sie können mit überprüfen Firewall-cmd –get-default-zone) wird genutzt.
Um die Regel zu entfernen, ersetzen Sie in den obigen Befehlen das Wort hinzufügen durch entfernen.
Zunächst müssen Sie herausfinden, ob die Maskierung für die gewünschte Zone aktiviert ist:
# Firewall-cmd --zone=MeineZone --query-masquerade.
Im Bild unten können wir das sehen maskieren ist aktiviert für die Außenzone, aber nicht für öffentlich:
Sie können entweder das Maskieren für die Öffentlichkeit aktivieren:
# Firewall-cmd --zone=public --add-masquerade.
oder verwenden Sie Maskerading in extern. Hier ist, was wir tun würden, um zu replizieren Beispiel 3 mit Firewalld:
# Firewall-cmd --zone=external --add-forward-port=port=631:proto=tcp: toport=631:toaddr=192.168.0.10.
Und vergessen Sie nicht, die Firewall neu zu laden.
Weitere Beispiele finden Sie auf Teil 9 der RHCSA-Serie, in der wir erklärt haben, wie Sie die Ports, die normalerweise von einem Web verwendet werden, zulassen oder deaktivieren Server und einen FTP-Server, und wie Sie die entsprechende Regel ändern, wenn der Standardport für diese Dienste ist geändert. Darüber hinaus finden Sie weitere Beispiele im Firewalld-Wiki.
Lesen Sie auch:Nützliche FirewallD-Beispiele zum Konfigurieren der Firewall in RHEL 7
In diesem Artikel haben wir erklärt, was ein Firewall ist, was sind die verfügbaren Dienste, um einen zu implementieren? RHEL 7, und haben einige Beispiele bereitgestellt, die Ihnen den Einstieg in diese Aufgabe erleichtern können. Wenn Sie Kommentare, Vorschläge oder Fragen haben, können Sie uns dies gerne über das untenstehende Formular mitteilen. Danke im Voraus!