Erste Schritte mit UFW (Uncomplicated Firewall) auf Ubuntu 20.04
UFW oder Uncomplicated Firewall ist eine Anwendung zur Verwaltung einer iptables-basierten Firewall unter Ubuntu. UFW ist das Standard-Firewall-Konfigurationswerkzeug für Ubuntu Linux und bietet einen benutzerfreundlichen Weg, die Firewall zu konfigurieren. Die UFW-Befehle sind genau wie die englische Sprache, so dass die Befehle leicht zu merken sind. Die UFW Firewall unterstützt IPv4 und IPv6.
UFW bietet auch eine GUI-Anwendung, wenn du einen GNOME-Desktop verwendest, kannst du gufw installieren, oder wenn du einen KDE-Desktop verwendest, kannst du kcm-ufw installieren.
Voraussetzungen
- Ubuntu Version zwischen 15.04 und 21.04. Neuere Ubuntu Versionen sollten ebenfalls funktionieren.
- Root-Rechte
Was wird in diesem Tutorial behandelt?
- Die Installation von UFW.
- Die grundlegende UFW Befehlssyntax.
- Der UFW Allow und Deny Befehl.
- Erweiterte UFW-Befehle.
- Löschen einer Regel in UFW.
- Deaktivieren und Zurücksetzen von UFW.
Installation von UFW
Standardmäßig sollte UFW auf ubuntu 20.04 bereits installiert sein. Du kannst dies mit dem Befehl testen:
which ufw
Wenn dieser nicht den Pfad zum Befehl zurückgibt, dann installiere UFW mit dem folgenden apt Befehl:
sudo apt-get install ufw
Für die folgenden Befehle benutze bitte sudo oder root-Rechte. Du kannst Root-Benutzer werden mit dem Befehl:
sudo -s
Führe dann den folgenden Befehl aus, um UFW zu aktivieren:
ufw enable
Ergebnis:
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y Firewall is active and enabled on system startup
Der grundlegende UFW-Befehl
Der „ufw enable“ Befehl wird UFW mit den Standardregeln einschalten. Du kannst überprüfen, dass UFW läuft, indem du diesen Befehl ausführst:
ufw status verbose
Ergebnis:
Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip
Wenn du UFW deaktivieren oder ausschalten möchtest, kannst du dies mit:
ufw disable
Ergebnis:
Firewall stopped and disabled on system startup
Der UFW Allow und Deny Befehl
1. UFW Erlauben Befehl
UFW wird alle eingehenden Verbindungen verweigern, nachdem du es eingeschaltet hast. Das erste, was du also tun solltest, ist den SSH-Zugriff für den Server zu erlauben, wenn du das System aus der Ferne verwalten möchtest. Der Befehl „ufw allow sshport“ erlaubt den Zugriff per SSH, ersetze SSHPORT mit dem Port des SSH Dienstes, der Standard SSH Port ist 22.
ufw allow 22
Ergebnis:
Rules updated Rules updated (v6) #For IPv6
Wenn du eingehende Verbindungen auf Port 22 nur für TCP erlauben möchtest, füge am Ende des Befehls „/tcp“ hinzu, wie im folgenden Beispiel gezeigt.
ufw allow 22/tcp
Wenn der Dienst, dem du den Zugriff erlauben willst, auf seinem Standardport lauscht, kannst du den Namen des Dienstes anstelle der Portnummer verwenden. Dies macht es einfacher, den Port zu öffnen, da du den Port vielleicht nicht kennst. UFW wird dann die richtige Portnummer in /etc/services für dich nachschlagen.
Dieser Befehl wird den Standard SSH Port öffnen:
ufw allow ssh
Überprüfe nun die Regel mit:
ufw status
2. UFW Deny Befehl
Der „deny“ Befehl funktioniert ähnlich wie der „allow“ Befehl und wird verwendet, um einen Port in der Firewall zu schließen:
Deny mit der Option Port:
ufw deny 80
Ergebnis:
Rule added Rule added (v6)
Beispiel für „deny“ mit Dienstname. In diesem Beispiel werde ich http Port/80 blockieren:
ufw deny http
Hinweis:
Du kannst alle Ports und ihre Dienstnamen in der Datei „/etc/services“ sehen.
Erweiterte UFW-Befehle
Jetzt werden wir tiefer in die UFW-Befehlssyntax eindringen, lernen, wie man Teilbereiche zulässt (z.B. für die passiven FTP-Ports und wie man den Zugriff nur von einer IP oder einem Subnetz erlaubt.
1. Erlaube einen Portbereich
Du kannst einen Bereich von Ports in UFW erlauben. Einige Dienste wie FTP oder IRC benutzen einen Bereich von Ports, um mit ihren Clients zu kommunizieren.
In diesem Beispiel werden wir den Portbereich zulassen, der von ircd auf meinem Server verwendet wird, der Bereich ist Port 6660 bis 6670:
sudo ufw allow 6660:6670/tcp sudo ufw allow 6660:6670/udp
Der Befehl wird Verbindungen zu den Ports 6660-6670 über das TCP und UDP Protokoll erlauben.
2. Erlaube eine bestimmte IP Adresse
Du kannst auch eine bestimmte IP-Adresse hinzufügen, um den Zugriff auf alle Dienste zu erlauben, indem du die Option„from“ hinzufügst. Dies ist z.B. nützlich, wenn du eine statische IP zu Hause oder im Büro hast und von dort aus den Zugriff auf alle Dienste deines Servers erlauben möchtest. Der folgende Befehl erlaubt der IP 192.168.1.106 den Zugriff auf alle Ports des Servers:
ufw allow from 192.168.1.106
Ergebnis:
Rule added
3. Subnetz zulassen
Wenn du alle IP-Adressen in deinem Subnetz erlauben willst, kannst du das IP-Subnetz (Bereich von IP-Adressen) zum UFW-Befehl wie folgt hinzufügen:
ufw allow from 192.168.1.1/24
Ergebnis:
WARN: Rule changed after normalization Rule added
4. Zugriff von einer bestimmten IP-Adresse auf einen Port zulassen
Wenn du den Zugriff auf einen Port nur von einer bestimmten IP erlauben möchtest, kannst du die UFW-Befehle, die wir oben gelernt haben, kombinieren.
Zum Beispiel kann nur die IP 192. 168.1.106 auf den ssh Port 22 tcp zugreifen und andere IPs werden von diesem Port abgewiesen, du kannst den folgenden Befehl verwenden:
ufw allow from 192.168.1.106 proto tcp to any port 22
Ergebnis:
Rule added
5. Allen eingehenden Verkehr auf einem bestimmten Port zulassen
Wenn du den gesamten Verkehr auf Port 80 erlauben möchtest, kannst du diesen Befehl verwenden:
ufw allow to any port 80
Löschen einer UFW-Firewall-Regel
In diesem Abschnitt lernst du, wie du eine Regel, die in UFW gespeichert ist, löschen kannst. Du kannst den„delete„-Befehl verwenden, um die ufw-Regel zu löschen. Bitte gib den Befehl„ufw delete“ ein, gefolgt von der Option, die gelöscht werden soll, allow oder deny.
Hier sind einige Beispiele:
Löschen der allow SSH Regel mit dem Dienstnamen:
ufw delete allow ssh
Ergebnis:
Rule deleted Rule deleted (v6)
Dieser Befehl löscht die Regel„allow ssh„. Sei vorsichtig, sperre dich nicht aus dem Server aus.
Lösche die Regel „deny“ auf Port 80:
ufw delete deny 80
Ergebnis:
Rule deleted Rule deleted (v6)
Wenn du eine komplexe Regel hast, dann gibt es einen einfachen Weg, die Regel anhand ihrer Regel-ID zu identifizieren und zu löschen. Führe den folgenden Befehl aus, um eine Liste aller Regeln mit ihren ID’s zu erhalten:
ufw status numbered
Ergebnis:
Status: active
To Action From
— —— —-
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 22/tcp (v6) ALLOW IN Anywhere (v6)
Lösche nun die SSH Regel für IPv6 nur anhand der Nummer der Regel:
ufw delete 2
UFW deaktivieren und zurücksetzen
Wenn du UFW ausschalten möchtest , ohne deine Regeln zu löschen, kannst du den Befehl„disable“ verwenden:
ufw disable
Ergebnis:
Firewall stopped and disabled on system startup
Wenn du UFW komplett abschalten und alle Regeln löschen willst, kannst du den Befehl„reset“ verwenden:
ufw reset
Ergebnis:
Resetting all rules to installed defaults. This may disrupt existing ssh connections. Proceed with operation (y|n)? y Backing up 'after6.rules' to '/etc/ufw/after6.rules.20150918_190351' Backing up 'user.rules' to '/lib/ufw/user.rules.20150918_190351' Backing up 'after.rules' to '/etc/ufw/after.rules.20150918_190351' Backing up 'before.rules' to '/etc/ufw/before.rules.20150918_190351' Backing up 'before6.rules' to '/etc/ufw/before6.rules.20150918_190351' Backing up 'user6.rules' to '/lib/ufw/user6.rules.20150918_190351'
Fazit
UFW (Uncomplicated Firewall) ist das Standard-Firewall-Konfigurationswerkzeug in Ubuntu. Die UFW-Befehle sind der englischen Sprache ähnlich, das macht sie einfach zu benutzen und zu merken. Dieses UFW-Tutorial ist eine Anleitung, um mit diesem netten Firewall-Tool loszulegen. Wenn du mehr über UFW wissen willst, kannst du auf das Ubuntu-Wiki oder die ufw-Manpage gehen.