So richten Sie die UFW-Firewall unter Ubuntu und Debian ein
Eine ordnungsgemäß funktionierende Firewall ist der wichtigste Teil der gesamten Linux-Systemsicherheit. Standardmäßig enthält die Debian- und Ubuntu-Distribution ein Firewall-Konfigurationstool namens UFW (Uncomplicated Firewall), ein beliebtes und benutzerfreundliches Befehlszeilentool 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 dem Benutzer sudo oder mit dem Root-Konto bei Ihrem Ubuntu- oder Debian-Server angemeldet haben. Wenn Sie keinen Sudo-Benutzer haben, können Sie mit den folgenden Anweisungen als Root-Benutzer einen erstellen.
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 und 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 durch Eingabe überprüfen.
sudo ufw status verbose
Bei der ersten Installation ist die UFW-Firewall standardmäßig deaktiviert. Die Ausgabe ähnelt der folgenden.
Status: inactive
Aktivieren Sie die UFW-Firewall
Sie können die UFW-Firewall mit dem folgenden Befehl aktivieren oder aktivieren. Dadurch sollte die Firewall geladen und beim Booten gestartet werden.
sudo ufw enable
Um die UFW-Firewall zu deaktivieren, verwenden Sie den folgenden Befehl, der die Firewall entlädt und verhindert, dass sie beim Booten startet.
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 UFW-Firewall-Richtlinien 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 den Softwarepaketinstallationen auf Ihrem System sieht die Ausgabe 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 Sie 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 wie gezeigt auf „yes“
eingestellt ist.
IPV6=yes
Speichern und Beenden. Anschließend starten Sie 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. Wenn Sie über SSH von einem Remotestandort aus mit Ihrem Server verbunden sind, können Sie keine erneute Verbindung mehr herstellen.
Um dies zu verhindern, aktivieren wir SSH-Verbindungen zu unserem Server mit dem folgenden Befehl:
sudo ufw allow ssh
Wenn Sie einen benutzerdefinierten SSH-Port verwenden (z. B. Port 2222), müssen Sie diesen Port in der UFW-Firewall mit dem folgenden Befehl ö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 Sie bestimmte Ports auf UFW
Sie können auch einen bestimmten Port in der Firewall öffnen, um über diesen Verbindungen zu einem bestimmten Dienst zuzulassen. Wenn Sie beispielsweise einen Webserver einrichten möchten, der auf Port 80 (HTTP) und 443 (HTTPS) lauscht >) standardmäßig.
Nachfolgend finden Sie einige Beispiele, wie Sie eingehende Verbindungen zu Apache-Diensten zulassen.
Ö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 haben einige Anwendungen, die Sie auf einer Reihe von Ports (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 auf allen Ports von einer bestimmten IP-Adresse 192.168.56.1 zulassen möchten, müssen Sie vor der IP-Adresse „From“ angeben.
sudo ufw allow from 192.168.56.1
Erlauben Sie bestimmte IP-Adressen an einem bestimmten Port
Um eine Verbindung über einen bestimmten Port (z. B. Port 22) von Ihrem Heimcomputer mit der IP-Adresse 192.168.56.1 zu ermöglichen, müssen Sie einen beliebigen Port< hinzufügen und die Portnummer nach der IP-Adresse wie gezeigt.
sudo ufw allow from 192.168.56.1 to any port 22
Erlauben Sie Netzwerk-Subnetze einem bestimmten Port
Um Verbindungen für bestimmte IP-Adressen von 192.168.1.1 bis 192.168.1.254 zu Port 22 zu ermöglichen (SSH) , führen Sie den folgenden Befehl aus.
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 werden alle eingehenden Verbindungen blockiert, es sei denn, Sie haben die Verbindung ausdrücklich auf UFW geöffnet. Sie haben beispielsweise die Ports 80 und 443 geöffnet und Ihr Webserver wird vom unbekannten Netzwerk 11.12.13.0/24 angegriffen.
Um alle Verbindungen aus diesem bestimmten 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 auf 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 zwei Möglichkeiten, UFW-Regeln zu löschen: nach Regelnummer und nach tatsächlicher Regel.
Um UFW-Regeln mithilfe der Regelnummer zu löschen, müssen Sie zunächst die Regeln mit dem folgenden Befehl nach Nummern auflisten.
sudo ufw status numbered
Beispielausgabe
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 80/tcp ALLOW IN Anywhere
Um die Regel Nummer 1 zu löschen, verwenden Sie den folgenden Befehl.
sudo ufw delete 1
Die zweite Methode besteht darin, eine Regel mithilfe der tatsächlichen Regel zu löschen. Um beispielsweise eine Regel zu löschen, geben Sie die Portnummer mit dem Protokoll wie gezeigt an.
sudo ufw delete allow 22/tcp
Trockenlauf-UFW-Regeln
Mit dem Flag --dry-run
können Sie alle UFW-Befehle ausführen, ohne tatsächlich Änderungen an der System-Firewall vorzunehmen. Dadurch werden lediglich die Änderungen angezeigt, die voraussichtlich stattfinden würden.
sudo ufw --dry-run enable
Setzen Sie die UFW-Firewall zurück
Wenn Sie aus dem einen oder anderen Grund alle Firewall-Regeln löschen/zurücksetzen möchten, geben Sie die folgenden Befehle ein. Dadurch werden alle Ihre Änderungen rückgängig gemacht und neu gestartet.
sudo ufw reset
sudo ufw status
Erweiterte UFW-Funktionalität
Die UFW-Firewall kann alles tun, was iptables auch kann. Dies kann mit verschiedenen Sätzen von Regeldateien erfolgen, bei denen es sich lediglich um einfache iptables-restore-Textdateien handelt.
Das Optimieren der UFW-Firewall oder das Hinzufügen zusätzlicher iptables-Befehle ist über den ufw-Befehl nicht zulässig, es ist lediglich 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 über den ufw-Befehl hinzugefügt werden.
- /etc/ufw/after[6].rules: In dieser Datei werden Regeln nach dem Hinzufügen über den ufw-Befehl berechnet.
- /etc/ufw/sysctl.conf: Diese Datei wird zum Optimieren des Kernel-Netzwerks verwendet.
- /etc/ufw/ufw.conf: Diese Datei aktiviert UFW beim Booten.
Das ist es! UFW ist ein hervorragendes Frontend für iptables mit einer benutzerfreundlichen Oberfläche zum Definieren komplexer Regeln mit einem einzigen ufw-Befehl.
Wenn Sie Fragen oder Anregungen zu diesem ufw-Artikel haben, nutzen Sie das Kommentarformular unten, um uns zu erreichen.