Linux lernen

Verwalten Sie die Netzwerksicherheit mit Firewalld über Befehlszeilen

Verwalten Sie die Netzwerksicherheit mit Firewalld über Befehlszeilen

Die Aufrechterhaltung der Netzwerksicherheit ist der Schlüssel für Systemadministratoren und die Konfiguration der Firewall über die Befehlszeile ist eine grundlegende Fähigkeit, die es zu erlernen gilt. Der Artikel wird hervorheben, wie die Firewall mit Firewall-cmd in der Linux-Befehlszeile verwaltet wird.

Eine Firewall ist im Wesentlichen eine Software, die Sie konfigurieren können, um den ein- und ausgehenden Netzwerkverkehr zu kontrollieren. Firewalls können andere Benutzer daran hindern, Netzwerkdienste auf einem von Ihnen ausgeführten System zu verwenden. Die meisten Linux-Systeme werden mit einer Standard-Firewall ausgeliefert. Frühere Versionen von Linux-Systemen verwendeten iptables als Daemon für die Paketfilterung. Neuere Versionen von Fedora, RHEL/CentOS, openSUSE werden mit Firewalld als Standard-Firewall-Daemon ausgeliefert. Sie können Firewalld auch in Debian- und Ubuntu-Distributionen installieren.


Ich empfehle, dass Sie Firewalld anstelle von iptables verwenden. Vertraue mir nicht nur beim Wort. Erfahren Sie mehr in unserem umfassenden Leitfaden zu den verfügbaren Open-Source-Firewalls für Ihr Linux-System.

Firewalld ist ein dynamischer Daemon zur Verwaltung von Firewalls mit Unterstützung für Netzwerk- oder Firewallzonen. Firewall-Zonen definieren Vertrauensstufen der Netzwerksicherheit von Netzwerkschnittstellen, Diensten oder Verbindungen or. Administratoren von Netzwerksicherheitssystemen haben festgestellt, dass Firewalld hervorragend mit IPv4, IPv6, IP-Sets und Ethernet-Bridges funktioniert. Um Firewalld zu verwalten, können Sie den Befehl firewall-cmd terminal oder das GUI-Konfigurationstool Firewall-config verwenden.

Dieser Leitfaden verwendet die Firewall-cmd Befehl zum Verwalten der Netzwerksicherheit, und unsere Testumgebung wird Fedora Workstation 33 sein.

Bevor es technisch wird, lernen wir ein paar Netzwerkgrundlagen.

Netzwerkgrundlagen

Einem mit einem Netzwerk verbundenen Computer wird eine IP-Adresse zugewiesen, die zum Routing von Daten verwendet wird. Computer haben auch Ports im Bereich von 0-65535, die als Verbindungspunkte an der IP-Adresse fungieren. Anwendungen können bestimmte Ports reservieren. Webserver reservieren normalerweise Port 80 für sichere HTTP-Kommunikation. Im Wesentlichen sind die Portbereiche 0 - 1024 für bekannte Zwecke reserviert und das System.

Die beiden wichtigsten Internet-Datenübertragungsprotokolle (TCP & UDP) verwenden diese Ports während der Netzwerkkommunikation. Ein Host-Computer stellt eine Verbindung zwischen einer Quell-IP-Adresse und einem Port (Port 80 für unsicheres HTTP) und der Zieladresse und dem Port her.

Um die Netzwerksicherheit zu verwalten, kann eine Firewall-Software die Datenübertragung oder Kommunikation basierend auf Regeln wie Ports oder IP-Adressen zulassen oder blockieren.

Firewalld installieren

Fedora, RHEL/CentOS 7/8, openSUSE

Firewalld ist standardmäßig in Fedora, RHEL/CentOS 7/8 und openSUSE . installiert. Wenn nicht, können Sie es mit dem folgenden Befehl installieren:

# yum installiere Firewalld -y
ODER
#dnf installiere firewalld -y

Debian/Ubuntu

Ubuntu-Systeme werden standardmäßig mit der unkomplizierten Firewall ausgeliefert. Um Firewalld verwenden zu können, müssen Sie das Universums-Repository aktivieren und die unkomplizierte Firewall deaktivieren.

sudo add-apt-repository universum
sudo apt installiere Firewalld

Unkomplizierte Firewall deaktivieren:

sudo systemctl deaktivieren ufw

Firewalld beim Booten aktivieren:

sudo systemctl enable -jetzt Firewalld

Überprüfen Sie, ob Firewalld ausgeführt wird:

sudo Firewall-cmd -state
Laufen

Firewall-Zonen

Firewalld vereinfacht die Konfiguration Ihrer Firewall durch die Einrichtung von Standardzonen. Zonen sind eine Reihe von Regeln, die den täglichen Anforderungen der meisten Linux-Administratoren entsprechen. Eine Firewall-Zone kann vertrauenswürdige oder verweigerte Ebenen für Dienste und Ports definieren.

Beispiel für Standardzonen, die von der Fedora-Workstation 33 definiert werden

cat /usr/lib/firewalld/zones/FedoraWorkstation.xml


Fedora-Workstation
Unerwünscht eingehende Netzwerkpakete werden von Port 1 bis 1024 abgewiesen, außer bei ausgewählten Netzwerkdiensten. [Firewall] Eingehende Pakete, die sich auf ausgehende Netzwerkverbindungen beziehen, werden akzeptiert. Ausgehende Netzwerkverbindungen sind erlaubt.





Rufen Sie Ihre aktuelle Zone ab:
Du kannst den ... benutzen - - Get-Active-Zonen Flag, um die derzeit aktiven Zonen in Ihrem System zu überprüfen.

sudo Firewall-cmd --get-active-zones
[sudo] Passwort für Tuts:
FedoraWorkstation
Schnittstellen: wlp3s0
libvirt
Schnittstellen: virbr0

Die Standardzone auf Fedora Workstation 33 in der FedoraWorkstation-Zone

Holen Sie sich die Standardzone und alle definierten Zonen:

sudo Firewall-cmd --get-default-zone
[sudo] Passwort für Tuts:
FedoraWorkstation
[tuts@fosslinux ~]$ sudo Firewall-cmd --get-zones
FedoraServer Fedora Workstation block dmz drop external home internal libvirt nm-shared public vertrauenswürdige Arbeit

Dienste auflisten:

Sie können die Dienste abrufen, die die Firewall anderen Systemen ermöglicht, indem Sie die  - -Listen-Dienste Flagge.

[tuts@fosslinux ~]$ sudo Firewall-cmd --list-services
dhcpv6-client mdns samba-client ssh

Unter Fedora Linux 33 erlaubt die Firewall den Zugriff auf vier Dienste (dhcpv6-client mdns samba-client ssh) mit bekannten Portnummern.

Listen Sie die Firewall-Port-Einstellungen auf:
Du kannst den ... benutzen - -Liste-Ports Flag, um andere Porteinstellungen in einer beliebigen Zone anzuzeigen.

tuts@fosslinux ~]$ sudo Firewall-cmd --list-ports --zone=FedoraWorkstation
[sudo] Passwort für Tuts:
1025-65535/udp 1025-65535/tcp

Wir haben die zu überprüfende Zone mit der Option - -zone=FedoraWorkstaion . angegeben.

Zonen, Ports und Dienste verwalten

Firewall-Konfigurationen können entweder als Runtime oder permanent konfiguriert werden. Alle Firewall-cmd-Aktionen bleiben nur bis zum Neustart des Computers oder der Firewall bestehen restart. Sie müssen permanente Einstellungen mit dem Flag -permanent erstellen.

Erstellen Sie eine Zone

Um eine Zone zu erstellen, müssen Sie die - -neue-zone Flagge.
Beispiel:
Erstellen Sie eine neue permanente Zone namens fosscorp:

[tuts@fosslinux ~]$ sudo Firewall-cmd --new-zone fosscorp --permanent
[sudo] Passwort für Tuts:
Erfolg

Laden Sie die Firewall-Regeln neu, um die neue Zone zu aktivieren:

[tuts@fosslinux ~]$ sudo Firewall-cmd --reload

Fügen Sie der fosscorp-Zone den SSH-Dienst hinzu, damit Sie aus der Ferne darauf zugreifen können:

[tuts@fosslinux ~]$ sudo Firewall-cmd --zone fosscorp --add-service ssh --permanent
[sudo] Passwort für Tuts:
Erfolg

Bestätigen Sie, dass Ihre neue Zone 'fosscorp' aktiv ist:

[tuts@fosslinux ~]$ sudo Firewall-cmd --get-zones
FedoraServer FedoraWorkstation block dmz drop extern fosscorp home interne libvirt nm-geteilte öffentliche vertrauenswürdige Arbeit

Ihre neue Zone fosscorp ist jetzt aktiv und weist alle eingehenden Verbindungen außer SSH-Verkehr zurück.

Verwenden Sie die - -Change-Interface Flag, um die Zone fosscorp zur aktiven und Standardzone für eine Netzwerkschnittstelle (wlp3s0) zu machen, die Sie schützen möchten:

[tuts@fosslinux ~]$ sudo Firewall-cmd --change-interface wlp3s0 \
> --zone fosscorp --permanent
Die Schnittstelle befindet sich unter der [ Firewall ] Kontrolle von NetworkManager, wobei die Zone auf 'fosscorp' gesetzt wird.
Erfolg

Wenn Sie fosscorp als Standard- und primäre Zone festlegen möchten, führen Sie den folgenden Befehl aus:

[tuts@fosslinux ~]$ sudo Firewall-cmd --set-default fosscorp
Erfolg

Zeigen Sie die Zonen an, die derzeit jeder Schnittstelle zugewiesen sind, indem Sie die - -Get-Active-Zonen Flagge:

[tuts@fosslinux ~]$ sudo Firewall-cmd --get-active-zones
fosscorp
Schnittstellen: wlp3s0

Dienste hinzufügen und entfernen:

Eine schnelle Möglichkeit, Datenverkehr durch Ihre Firewall zuzulassen, besteht darin, einen vordefinierten Dienst hinzuzufügen.

Liste verfügbarer vordefinierter Dienste:

tuts@fosslinux ~]$ sudo Firewall-cmd --get-services
[sudo] Passwort für Tuts:
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc
bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit condor-collector ctdb dhcp dhcpv6 dhcpv6-client
[…]

Entsperren eines vordefinierten Dienstes

Sie können HTTPS-Datenverkehr (oder jeden anderen vordefinierten Dienst) durch Ihre Firewall zulassen, indem Sie die - -Zusatzdienst Flagge.

[tuts@fosslinux ~]$ sudo Firewall-cmd --add-service https --permanent
Erfolg
[tuts@fosslinux ~]$ sudo Firewall-cmd --reload

Sie können den Dienst auch mit der - -Entfernungsdienst Flagge:

[tuts@fosslinux ~]$ sudo Firewall-cmd --remove-service https --permanent
Erfolg
[tuts@fosslinux ~]$ sudo Firewall-cmd --reload

Ports hinzufügen und entfernen

Sie können eine Portnummer und einen Prototyp auch direkt mit dem Flag -add-port hinzufügen. Das direkte Hinzufügen einer Portnummer kann praktisch sein, wenn ein vordefinierter Dienst nicht vorhanden ist.

Beispiel:
Sie können das nicht standardmäßige hinzufügen Port 1717 für SSH in Ihre benutzerdefinierte Zone mit dem folgenden Befehl:

[tuts@fosslinux ~]$ sudo Firewall-cmd --add-port 1717/tcp --permanent
[sudo] Passwort für Tuts:
Erfolg
[tuts@fosslinux ~]$ sudo Firewall-cmd -reload

Entfernen Sie den Port mit der Flag-Option -remove-port:

[tuts@fosslinux ~]$ sudo Firewall-cmd --remove-port 1717/tcp --permanent
Erfolg
[tuts@fosslinux ~]$ sudo Firewall-cmd -reload

Sie können auch eine Zone angeben, um einen Port hinzuzufügen oder zu entfernen, indem Sie das Flag -zone im Befehl hinzufügen:
Fügen Sie Port 1718 für die TCP-Verbindung zur FedoraWorstation-Zone hinzu:

[tuts@fosslinux ~]$ sudo Firewall-cmd --zone=FedoraWorkstation --permanent --add-port=1718/tcp
Erfolg
[tuts@fosslinux ~]$ sudo Firewall-cmd --reload
Erfolg

Bestätigen Sie, ob die Änderungen wirksam wurden:

[tuts@fosslinux ~]$ sudo Firewall-cmd --list-all
FedoraWorkstation (aktiv)
Ziel: Standard
icmp-Block-Inversion: nein
Schnittstellen: wlp3s0
Quellen:
Dienste: dhcpv6-Client mdns Samba-Client ssh
Anschlüsse: 1025-65535/udp 1025-65535/tcp 1718/tcp
Protokolle:
Maskerade: nein
Forward-Ports:
Quellports:
icmp-Blöcke:
reiche Regeln:

Hinweis: Unter Ports haben wir hinzugefügt Portnummer 1718 TCP-Verkehr zulassen.

Sie können entfernen Port 1718/tcp indem Sie den folgenden Befehl ausführen:

[tuts@fosslinux ~]$ sudo Firewall-cmd --zone=FedoraWorkstation --permanent --remove-port=1718/tcp
Erfolg
[tuts@fosslinux ~]$ sudo Firewall-cmd --reload
Erfolg

Hinweis: Wenn Sie Ihre Änderungen dauerhaft machen möchten, müssen Sie die - -dauerhaft Flagge zu deinen Befehlen.

Rekapitulieren

Firewalld ist ein großartiges Dienstprogramm, um Ihre Netzwerksicherheit zu verwalten. Der beste Weg, um Ihre Systemadministratorfähigkeiten zu verbessern, besteht darin, praktische Erfahrung zu sammeln. Ich empfehle dringend, Fedora in Ihrer bevorzugten virtuellen Maschine (VM) oder in Boxen zu installieren, um mit allen verfügbaren Firewall-cmd-Funktionen zu experimentieren. Weitere Firewall-cmd-Funktionen finden Sie auf der offiziellen Firewalld-Homepage.

So entwickeln Sie ein Spiel unter Linux
Vor einem Jahrzehnt hätten nicht viele Linux-Benutzer vorhergesagt, dass ihr Lieblingsbetriebssystem eines Tages eine beliebte Spieleplattform für kom...
Open-Source-Ports kommerzieller Spiele-Engines
Kostenlose, quelloffene und plattformübergreifende Spiel-Engine-Nachbildungen können verwendet werden, um sowohl alte als auch einige der relativ neue...
Beste Befehlszeilenspiele für Linux
Die Befehlszeile ist nicht nur Ihr größter Verbündeter bei der Verwendung von Linux – sie kann auch eine Quelle der Unterhaltung sein, da Sie damit vi...