So richten Sie die UFW-Firewall unter Ubuntu und Debian ein
Eine korrekt funktionierende Firewall ist der wichtigste Teil der vollständigen Linux-Systemsicherheit. Standardmäßig wird die Debian- und Ubuntu-Distribution mit einem Firewall-Konfigurationstool namens UFW (Uncomplicated Firewall) geliefert, einem der beliebtesten und benutzerfreundlichsten Befehlszeilentools zum Konfigurieren und Verwalten einer Firewall auf Ubuntu- und Debian-Distributionen.
In diesem Artikel erklären wir, wie Sie eine UFW-Firewall auf Ubuntu- und Debian-Distributionen installieren und einrichten.
Voraussetzungen
Bevor Sie mit diesem Artikel beginnen, stellen Sie sicher, dass Sie sich mit sudo user oder mit dem root-Konto bei Ihrem Ubuntu- oder Debian-Server angemeldet haben. Wenn Sie keinen sudo-Benutzer haben, können Sie einen erstellen, indem Sie die folgenden Anweisungen als root-Benutzer verwenden.
# adduser username
usermod -aG sudo username
su - username
sudo whoami
Installieren Sie die UFW-Firewall unter Ubuntu und Debian
Die UFW (Uncomplicated Firewall) sollte standardmäßig in Ubuntu und Debian installiert sein, wenn nicht, installieren Sie sie mit dem APT-Paketmanager mit dem folgenden Befehl.
$ sudo apt install ufw
Überprüfen Sie die UFW-Firewall
Sobald die Installation abgeschlossen ist, können Sie den Status von UFW überprüfen, indem Sie tippen.
$ sudo ufw status verbose
Bei der ersten Installation ist die UFW-Firewall standardmäßig deaktiviert, die Ausgabe sieht in etwa wie folgt aus.
Status: inactive
UFW-Firewall aktivieren
Sie können die UFW-Firewall mit dem folgenden Befehl aktivieren oder aktivieren, wodurch die Firewall geladen werden sollte und beim Booten gestartet werden kann.
$ sudo ufw enable
Um die UFW-Firewall zu deaktivieren, verwenden Sie den folgenden Befehl, der die Firewall entlädt und den Start beim Booten deaktiviert.
$ sudo ufw disable
UFW-Standardrichtlinien
Standardmäßig verweigert die UFW-Firewall alle eingehenden Verbindungen und lässt nur alle ausgehenden Verbindungen zum Server zu. Das bedeutet, dass niemand auf Ihren Server zugreifen kann, es sei denn, Sie öffnen den Port ausdrücklich, während alle laufenden Dienste oder Anwendungen auf Ihrem Server auf das externe Netzwerk zugreifen können.
Die standardmäßigen Richtlinien der UFW-Firewall werden in der Datei /etc/default/ufw abgelegt und können mit dem folgenden Befehl geändert werden.
$ sudo ufw default deny incoming
sudo ufw default allow outgoing
UFW-Anwendungsprofile
Wenn Sie ein Softwarepaket mit dem APT-Paketmanager installieren, enthält es ein Anwendungsprofil im Verzeichnis /etc/ufw/applications.d, das den Dienst definiert und die UFW-Einstellungen enthält.
Mit dem folgenden Befehl können Sie alle verfügbaren Anwendungsprofile auf Ihrem Server auflisten.
$ sudo ufw app list
Abhängig von der Installation des Softwarepakets auf Ihrem System sieht die Ausgabe in etwa wie folgt aus:
Available applications:
APACHE
APACHE Full
APACHE SECURE
CUPS
OpenSSH
Postfix
Postfix SMTPS
Postfix Submission
Wenn Sie weitere Informationen zu einem bestimmten Profil und definierten Regeln erhalten möchten, können Sie den folgenden Befehl verwenden.
$ sudo ufw app info 'Apache'
Profile: Apache
Title: Web Server
Description: Apache V2 is the next generation f the omnipresent Apache web server.
Ports:
80/tcp
Aktivieren von IPv6 mit UFW
Wenn Ihr Server mit IPv6 konfiguriert ist, stellen Sie sicher, dass Ihr UFW mit IPv6- und IPv4-Unterstützung konfiguriert ist. Um dies zu überprüfen, öffnen Sie die UFW-Konfigurationsdatei mit Ihrem bevorzugten Editor.
$ sudo vi /etc/default/ufw
Stellen Sie dann sicher, dass "IPV6" in der Konfigurationsdatei auf "ja" gesetzt ist, wie gezeigt.
IPV6=yes
Speichern und beenden. Starten Sie dann Ihre Firewall mit den folgenden Befehlen neu:
$ sudo ufw disable
sudo ufw enable
SSH-Verbindungen auf UFW zulassen
Wenn Sie die UFW-Firewall bereits aktiviert haben, blockiert sie alle eingehenden Verbindungen, und wenn Sie von einem entfernten Standort aus über SSH mit Ihrem Server verbunden sind, können Sie ihn nicht mehr erneut verbinden.
Aktivieren wir SSH-Verbindungen zu unserem Server, um dies mit dem folgenden Befehl zu verhindern:
$ sudo ufw allow ssh
Wenn Sie einen benutzerdefinierten SSH-Port verwenden (z. B. Port 2222), müssen Sie diesen Port mit dem folgenden Befehl in der UFW-Firewall öffnen.
$ sudo ufw allow 2222/tcp
Um alle SSH-Verbindungen zu blockieren, geben Sie den folgenden Befehl ein.
$ sudo ufw deny ssh/tcp
sudo ufw deny 2222/tcp [If using custom SSH port]
Aktivieren bestimmter Ports auf UFW
Sie können auch einen bestimmten Port in der Firewall öffnen, um Verbindungen über diesen Port zu einem bestimmten Dienst zuzulassen. Dies ist beispielsweise der Fall, wenn Sie einen Webserver einrichten möchten, der standardmäßig auf den Ports 80 (HTTP) und 443 (HTTPS) lauscht.
Im Folgenden finden Sie einige Beispiele dafür, wie Sie eingehende Verbindungen zu Apache-Diensten zulassen können.
Öffnen Sie Port 80 HTTP auf UFW
$ sudo ufw allow http [By service name]
sudo ufw allow 80/tcp [By port number]
sudo ufw allow 'Apache' [By application profile]
Öffnen Sie Port 443 HTTPS auf UFW
$ sudo ufw allow https
sudo ufw allow 443/tcp
sudo ufw allow 'Apache Secure'
Portbereiche auf UFW zulassen
Angenommen, Sie verfügen über einige Anwendungen, die Sie auf einem Portbereich (5000-5003) ausführen möchten, können Sie alle diese Ports mit den folgenden Befehlen hinzufügen.
sudo ufw allow 5000:5003/tcp
sudo ufw allow 5000:5003/udp
Bestimmte IP-Adressen zulassen
Wenn Sie Verbindungen an allen Ports von der spezifischen IP-Adresse 192.168.56.1 zulassen möchten, müssen Sie vor der IP-Adresse angeben.
$ sudo ufw allow from 192.168.56.1
Bestimmte IP-Adressen auf einem bestimmten Port zulassen
Um eine Verbindung über einen bestimmten Port (z. B. Port 22) von Ihrem Heimcomputer mit der IP-Adresse 192.168.56.1 zuzulassen, müssen Sie einen beliebigen Port und die Portnummer nach der IP-Adresse hinzufügen, wie gezeigt.
$ sudo ufw allow from 192.168.56.1 to any port 22
Zulassen von Netzwerksubnetzen für einen bestimmten Port
Führen Sie den folgenden Befehl aus, um Verbindungen für bestimmte IP-Adressen im Bereich von 192.168.1.1 bis 192.168.1.254 zu Port 22 (SSH) zuzulassen.
$ sudo ufw allow from 192.168.1.0/24 to any port 22
Spezifische Netzwerkschnittstelle zulassen
Um Verbindungen zu einer bestimmten Netzwerkschnittstelle eth2 für einen bestimmten Port 22 (SSH) zuzulassen, führen Sie den folgenden Befehl aus.
$ sudo ufw allow in on eth2 to any port 22
Verbindungen auf UFW verweigern
Standardmäßig sind alle eingehenden Verbindungen blockiert, es sei denn, Sie haben die Verbindung speziell auf UFW geöffnet. Angenommen, Sie haben die Ports 80 und 443 geöffnet und Ihr Webserver wird von dem unbekannten Netzwerk 11.12.13.0/24 angegriffen.
Um alle Verbindungen aus diesem speziellen Netzwerkbereich 11.12.13.0/24 zu blockieren, können Sie den folgenden Befehl verwenden.
$ sudo ufw deny from 11.12.13.0/24
Wenn Sie nur Verbindungen an den Ports 80 und 443 blockieren möchten, können Sie die folgenden Befehle verwenden.
$ sudo ufw deny from 11.12.13.0/24 to any port 80
sudo ufw deny from 11.12.13.0/24 to any port 443
UFW-Regeln löschen
Es gibt 2 Möglichkeiten, UFW-Regeln zu löschen, nach Regelnummer und nach tatsächlicher Regel.
Um eine UFW-Regel mithilfe der Regelnummer zu löschen, müssen Sie zunächst die Regeln mit dem folgenden Befehl nach Nummern auflisten.
$ sudo ufw status numbered
Beispiel-Ausgabe
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 80/tcp ALLOW IN Anywhere
Um Regel Nummer 1 zu löschen, verwenden Sie den folgenden Befehl.
$ sudo ufw delete 1
Die zweite Methode besteht darin, eine Regel zu löschen, indem die eigentliche Regel verwendet wird, z. B. um eine Regel zu löschen, geben Sie die Portnummer mit Protokoll an, wie gezeigt.
$ sudo ufw delete allow 22/tcp
Probelauf UFW-Regeln
Sie können beliebige ufw-Befehle ausführen, ohne tatsächlich Änderungen in der Systemfirewall vorzunehmen, indem Sie das Flag --dry-run verwenden, dies zeigt einfach die Änderungen an, die angeblich stattfinden sollten.
$ sudo ufw --dry-run enable
UFW-Firewall zurücksetzen
Wenn Sie aus dem einen oder anderen Grund alle Firewall-Regeln löschen/zurücksetzen möchten, geben Sie die folgenden Befehle ein, um alle Ihre Änderungen rückgängig zu machen und neu zu beginnen.
$ sudo ufw reset
sudo ufw status
UFW Erweiterte Funktionalität
Die UFW-Firewall kann alles, was iptables kann. Dies kann mit verschiedenen Sätzen von Regeldateien erfolgen, die nichts anderes als einfache iptables-restore-Textdateien sind.
Das Optimieren der UFW-Firewall oder das Hinzufügen zusätzlicher iptables-Befehle ist über den ufw-Befehl nicht erlaubt, sondern nur eine Frage der Änderung der folgenden Textdateien
- /etc/default/ufw: Die Hauptkonfigurationsdatei mit vordefinierten Regeln.
- /etc/ufw/before[6].rules: In dieser Datei werden Regeln berechnet, bevor sie mit dem ufw-Befehl hinzugefügt werden.
- /etc/ufw/after[6].rules: In dieser Datei werden Regeln nach dem Hinzufügen per ufw-Befehl berechnet.
- /etc/ufw/sysctl.conf: Diese Datei wird verwendet, um das Kernel-Netzwerk zu optimieren.
- /etc/ufw/ufw.conf: Diese Datei aktiviert das ufw beim Booten.
Das war's! UFW ist ein hervorragendes Frontend für iptables mit einer benutzerfreundlichen Oberfläche, um komplexe Regeln mit einem einzigen UFW-Befehl zu definieren.
Wenn Sie Fragen oder Gedanken zu diesem ufw-Artikel haben, verwenden Sie das Kommentarformular unten, um uns zu erreichen.