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

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 wichtige Fähigkeit, die es zu erlernen gilt. Der Artikel zeigt auf, 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 verhindern, dass andere Benutzer Netzwerkdienste auf einem von Ihnen ausgeführten System verwenden. Die meisten Linux-Systeme werden mit einer Standard-Firewall ausgeliefert. Frühere Versionen von Linux-Systemen haben iptables als Daemon für die Paketfilterung verwendet. 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 Ihnen, Firewalld anstelle von iptables zu verwenden. Nehmen Sie nicht nur mein Wort dafür. 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. Firewallzonen definieren Netzwerksicherheits-Vertrauensstufen von Netzwerkschnittstellen, Diensten oder Verbindungen. Administratoren von Netzwerksicherheitssystemen haben festgestellt, dass Firewalld hervorragend mit IPv4, IPv6, IP-Sets und Ethernet-Bridges zusammenarbeitet. Um Firewalld zu verwalten, können Sie den Terminalbefehl firewall-cmd oder das GUI-Konfigurationstool firewall-config verwenden.

Diese Anleitung verwendet dasFirewall-Cmd Befehl zur Verwaltung der Netzwerksicherheit, und unsere Testumgebung wird Fedora Workstation 33 sein.

Bevor wir uns mit der Technik befassen, lernen wir ein paar Netzwerkgrundlagen kennen.

Netzwerkgrundlagen

Einem Computer, der mit einem Netzwerk verbunden ist, wird eine IP-Adresse zugewiesen, die zum Weiterleiten 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 und das System reserviert.

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

Um die Netzwerksicherheit zu verwalten, kann 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 wird standardmäßig in Fedora, RHEL/CentOS 7/8 und openSUSE installiert. Wenn nicht, können Sie es mit dem folgenden Befehl installieren:

# yum install firewalld -y
ODER
#dnf install firewalld -y

Debian/Ubuntu

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

sudo add-apt-repository universe
sudo apt install firewalld

Unkomplizierte Firewall deaktivieren:

sudo systemctl disable ufw

Firewall beim Booten aktivieren:

sudo systemctl enable –now firewalld

Stellen Sie sicher, dass Firewalld ausgeführt wird:

sudo firewall-cmd –state
wird ausgeführt

Firewallzonen

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

  • Vertrauenswürdige Zone: Alle Netzwerkverbindungen werden akzeptiert und nur in vertrauenswürdigen Umgebungen wie einem Einfamilienhaus oder einem Testlabor verwendet.
  • Öffentlicher Bereich: Sie können Regeln definieren, die es nur bestimmten Ports erlauben, Verbindungen zu öffnen, während andere Verbindungen getrennt werden. Es kann in öffentlichen Bereichen verwendet werden, wenn Sie anderen Hosts im Netzwerk nicht vertrauen.
  • Zuhause, Intern, Arbeitszonen: Die meisten eingehenden Verbindungen werden in diesen drei Zonen akzeptiert. Eingehende Verbindungen schließen Datenverkehr an Ports aus, die keine Verbindungen oder Aktivität erwarten. Sie können es in Heimverbindungen anwenden, wo ein allgemeines Vertrauen der anderen Benutzer im Netzwerk besteht. Es erlaubt nur die ausgewählten eingehenden Verbindungen.
  • Sperrzone: Dies ist eine äußerst paranoide Firewall-Einstellung, bei der nur Verbindungen möglich sind, die innerhalb des Netzwerks oder Servers initiiert werden. Alle eingehenden Verbindungen zum Netzwerk werden abgelehnt und eine ICMP-Host-Prohibited-Meldung wird ausgegeben.
  • DMZ-Zone: Die entmilitarisierte Zone kann verwendet werden, um der Öffentlichkeit den Zugang zu einigen Diensten zu ermöglichen. Nur ausgewählte Verbindungen werden akzeptiert. Es ist eine wesentliche Option für bestimmte Servertypen im Netzwerk einer Organisation.
  • Externe Zone: Wenn diese Zone aktiviert ist, fungiert sie als Router und kann in externen Netzwerken mit aktiviertem Masquerading verwendet werden. Die IP-Adresse Ihres privaten Netzwerks wird einer öffentlichen IP-Adresse zugeordnet und hinter ihr verborgen. Nur die ausgewählten eingehenden Verbindungen werden akzeptiert, einschließlich SSH.
  • Dropzone: Alle eingehenden Pakete werden ohne Antwort verworfen. Diese Zone lässt nur ausgehende Netzwerkverbindungen zu.

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

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


Fedora Workstation
Unerwünschte eingehende Netzwerkpakete werden von Port 1 bis 1024 abgewiesen, mit Ausnahme ausgewählter Netzwerkdienste. [firewall ] Eingehende Pakete, die sich auf ausgehende Netzwerkverbindungen beziehen, werden akzeptiert. Ausgehende Netzwerkverbindungen sind erlaubt.





Holen Sie sich Ihre aktuelle Zone:
Sie können die – – Get-Active-Zones verwenden 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

Standardzone und alle definierten Zonen abrufen:

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 extern home internal libvirt nm-shared public trusted work

Dienste auflisten:

Sie können die Dienste abrufen, auf die die Firewall anderen Systemen Zugriff gewährt, indem Sie die  – -list-services verwenden 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.

Firewall-Porteinstellungen auflisten:
Sie können die – -list-ports verwenden markieren, um andere Porteinstellungen in jeder Zone zu sehen.

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

Wir haben die zu prüfende Zone mit der Option – -zone=FedoraWorkstaion.

angegeben

Zonen, Ports und Dienste verwalten

Firewall-Konfigurationen können entweder als Laufzeit oder permanent konfiguriert werden. Alle Firewall-cmd-Aktionen bleiben nur bestehen, bis der Computer oder die Firewall neu gestartet wird. Sie müssen permanente Einstellungen mit dem Flag –permanent erstellen.

Zone erstellen

Um eine Zone zu erstellen, müssen Sie die – -new-zone verwenden flag.
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 den ssh-Dienst zur fosscorp-Zone hinzu, damit Sie remote 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 external fosscorp home internal libvirt nm-shared öffentlich vertrauenswürdige Arbeit

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

Verwenden Sie die – -Änderungsschnittstelle -Flag, um die Zone fosscorp zur aktiven und standardmäßigen Zone 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 steht unter der [ Firewall ]-Steuerung von NetworkManager, Einstellung Zone zu 'fosscorp'.
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 – -get-active-zones verwenden Flagge:

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

Dienste hinzufügen und entfernen:

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

Verfügbare vordefinierte Dienste auflisten:

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 Sie einen vordefinierten Dienst

Mit – -add-service können Sie HTTPS-Datenverkehr (oder jeden anderen vordefinierten Dienst) durch Ihre Firewall zulassen Flagge.

[tuts@fosslinux ~]$ sudo firewall-cmd --add-service https --permanent
success
[tuts@fosslinux ~]$ sudo firewall-cmd --reload

Sie können den Dienst auch mit – -remove-service entfernen Flagge:

[tuts@fosslinux ~]$ sudo firewall-cmd --remove-service https --permanent
success
[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 den nicht standardmäßigen Port 1717 hinzufügen für SSH zu Ihrer benutzerdefinierten Zone mit dem folgenden Befehl:

[tuts@fosslinux ~]$ sudo firewall-cmd --add-port 1717/tcp --permanent
[sudo] Passwort für tuts:
success
[tuts@fosslinux ~ ]$ sudo firewall-cmd –neu laden

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

[tuts@fosslinux ~]$ sudo firewall-cmd --remove-port 1717/tcp --permanent
success
[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:
Port 1718 für TCP-Verbindung zur FedoraWorstation-Zone hinzufügen:

[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:default
icmp-block-inversion:no
interfaces :wlp3s0
sources:
services:dhcpv6-client mdns samba-client ssh
ports:1025-65535/udp 1025-65535/tcp 1718/tcp
Protokolle:
Maskerade:nein
Forward-Ports:
Quellports:
icmp-Blöcke:
Rich Rules:

Hinweis:Unter Ports haben wir Portnummer 1718 hinzugefügt um TCP-Datenverkehr zuzulassen.

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

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

Hinweis:Wenn Sie Ihre Änderungen dauerhaft machen möchten, müssen Sie – -permanent hinzufügen Flagge zu Ihren Befehlen.

Zusammenfassung

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


Linux
  1. Verwalten Sie Netzwerkverbindungen über die Linux-Befehlszeile mit nmcli

  2. Verwenden des Befehls systemctl zum Verwalten von systemd-Einheiten

  3. Wie überwache ich die Netzwerknutzung mit nload unter Linux?

  4. Listen Sie die Datei mit dem Befehl ls in Linux mit vollständigem Pfad auf

  5. Erstellen Sie eine virtuelle Netzwerkschnittstelle mit dem Befehl iproute2 ip link mit einer gefälschten MAC-Adresse

Verwenden des GREP-Befehls unter Linux mit Beispielen

Verwalten Sie virtuelle KVM-Maschinen mit dem Virsh-Programm

Überwachen Sie die Netzwerk-Socket-Verbindung mit dem Befehl 10 „ss“.

Verwenden von Xdg-open für den Zugriff auf das Netzwerk mit dem normalen Explorer?

Planen Sie Jobs in Linux mit dem Befehl 'at'

Verwenden des tr-Befehls in Linux, um mit Charakteren zu spielen