Zum Hauptinhalt springen Skip to page footer

Einrichtung der UFW unter Ubuntu: Effektiver Schutz für deine Server

| Tutorial | Ubuntu 20.04 22.04 Linux

Schützen Sie Ihren Server effektiv und unkompliziert! Entdecken Sie Uncomplicated Firewall (UFW), die einfache Lösung zur Konfiguration Ihrer Firewall. Erfahren Sie, wie Sie mit UFW Ihre Sicherheit verbessern, potenzielle Bedrohungen abwehren und gleichzeitig die Komplexität reduzieren. Machen Sie Schluss mit komplizierten Firewall-Einstellungen und tauchen Sie ein in die Welt der mühelosen Serversicherheit mit UFW!

Uncomplicated Firewall - UFW

UFW, oder "Uncomplicated Firewall" (Unkomplizierte Firewall), ist eine Schnittstelle zu iptables, die darauf ausgerichtet ist, den Prozess der Konfiguration einer Firewall zu vereinfachen. Obwohl iptables ein solides und flexibles Werkzeug ist, kann es für Anfänger schwierig sein, den Umgang mit iptables zu erlernen, um eine Firewall richtig zu konfigurieren. Wenn Du mit der Sicherung Deines Servers beginnen möchtest und nicht sicher bist, welches Tool Du verwenden sollst, ist UFW vielleicht die richtige Wahl.

Schritt 1 - UFW installieren

Wenn UFW noch nicht auf Ihrem Server installiert ist, können Sie es mit dem folgenden Befehl installieren:  

sudo apt install ufw

Schritt 2: Verwendung von IPv6 mit UFW (optional)

Diese Anleitung wurde für IPv4 geschrieben und getestet, funktioniert aber grundsätzlich auch mit IPv6, wenn IPv6 aktiviert ist. Wenn auf Ihrem Ubuntu-Server IPv6 aktiviert ist, müssen Sie sicherstellen, dass UFW für die Unterstützung von IPv6 konfiguriert ist. Öffnen Sie dazu die UFW-Konfiguration in nano oder Ihrem bevorzugten Editor. 

sudo nano /etc/default/ufw

Stellen Sie dann sicher, dass der Wert von IPV6 „yes“ lautet. Es sollte wie folgt aussehen:

IPV6=yes

Speichern und schließen Sie die Datei. Wenn Sie UFW aktivieren, ist es so konfiguriert, dass es sowohl IPv4- als auch IPv6-Firewallregeln schreibt. Bevor Sie UFW aktivieren, müssen Sie jedoch sicherstellen, dass Ihre Firewall so konfiguriert ist, dass sie Verbindungen über SSH zulässt. Das Konfigurieren der Standardrichtlinie wird im nächsten Schritt beschrieben. 

Schritt 3: Konfiguration der Standardrichtlinien

Wenn Sie gerade erst mit der Konfiguration Ihrer Firewall beginnen, sollten Sie zunächst die Regeln für Ihre Standardrichtlinie definieren. Diese Regeln steuern, wie mit Datenverkehr umgegangen wird, der nicht explizit durch andere Einstellungen gesteuert wird. Standardmäßig ist UFW so konfiguriert, dass alle eingehenden Verbindungen abgelehnt und alle ausgehenden Verbindungen zugelassen werden. Dies bedeutet, dass jeder, der versucht, auf den Server zuzugreifen, keine Verbindung herstellen kann, Anwendungen innerhalb des Servers jedoch auf externe Systeme zugreifen können.

Setzen Sie die UFW-Regeln auf ihre Standardeinstellungen zurück, damit Sie dieser Anleitung folgen können. Verwenden Sie dazu den Befehl: 

sudo ufw default deny incoming
sudo ufw default allow outgoing

Mit diesen Befehlen legen Sie fest, dass eingehende Verbindungen verweigert und ausgehende Verbindungen zugelassen werden. Diese Firewall-Standardeinstellungen mögen für Personalcomputer ausreichend sein, Ihr Server muss jedoch auf eingehende Anfragen von externen Benutzern reagieren. Daher werden wir im nächsten Schritt weitere Regeln definieren. 

Schritt 4: SSH-Verbindungen zulassen

Wenn Sie hier die UFW-Firewall aktivieren, werden alle eingehenden Verbindungen abgelehnt. Das bedeutet, dass Sie zunächst eine Regel erstellen müssen, die die erforderlichen eingehenden Verbindungen explizit zulässt. Dies ist besonders wichtig, wenn Sie Cloud- oder Remote-Server verwenden. In diesem Fall benötigen Sie eine eingehende SSH-Verbindung, damit Sie sich mit Ihrem Server verbinden und diesen verwalten können. Andernfalls können Sie keine Remoteverbindung zum Server herstellen. Um Ihren Server so zu konfigurieren, dass er eingehende SSH-Verbindungen zulässt, können Sie den folgenden Befehl verwenden:  

sudo ufw allow 22

Dieser Befehl erstellt eine Firewall-Regel, die alle Verbindungen auf Port 22 zulässt. Port 22 ist der Port, den der SSH-Daemon standardmäßig überwacht.

Sie können jedoch anstelle des Ports auch den Dienstnamen angeben und die entsprechende Regel schreiben. Dieser Befehl funktioniert beispielsweise genauso wie der obige Befehl. 

sudo ufw allow ssh

UFW weiß, was „allow ssh“ bedeutet, da es als Dienst in der Datei /etc/services aufgeführt ist. Wenn ein anderer Port als der Standard-Port 22 eingestellt ist, wird dieser automatisch für Verbindungen zugelassen.

Die Firewall ist so konfiguriert, dass sie eingehende SSH-Verbindungen zulässt und kann aktiviert werden. 

Schritt 5: UFW aktivieren

UFW wird mit folgenden Befehl aktiviert:

sudo ufw enable

Es wird eine Warnung angezeigt, die besagt, dass dieser Befehl möglicherweise bestehende SSH-Verbindungen unterbricht. Sie haben bereits Firewall-Regeln eingerichtet, um SSH-Verbindungen zuzulassen, also können Sie loslegen. Beantworten Sie die Eingabeaufforderung mit y und bestätigen Sie mit ENTER.

Die Firewall ist jetzt aktiv. Führen Sie den Befehl sudo ufw status verbose aus, um die konfigurierten Regeln zu überprüfen. 

sudo ufw status verbose

Schritt 6: Weitere Verbindungen zulassen

An dieser Stelle sollten Sie andere Verbindungen zulassen, auf die der Server antworten soll. Welche Verbindungen Sie zulassen sollten, hängt von Ihren spezifischen Bedürfnissen ab. Glücklicherweise wissen wir bereits, wie man Regeln erstellt, um Verbindungen basierend auf Dienstnamen oder Ports zuzulassen. Dies wurde bereits für SSH auf Port 22 durchgeführt. Sie können dies auch für Sie tun:

HTTP auf Port 80. Wird für unverschlüsselte Webserververbindungen verwendet. 

sudo ufw allow http

oder

sudo ufw allow 80

HTTPS auf Port 443, der für verschlüsselte Webserververbindungen verwendet wird, mit

sudo ufw allow https

oder

sudo ufw allow 443

Neben der Angabe eines Ports oder eines bekannten Dienstes gibt es mehrere andere Möglichkeiten, andere Verbindungen zuzulassen.

Spezifische Portbereiche

Mit UFW können Sie Portbereiche angeben. Einige Anwendungen verwenden mehrere Ports anstelle eines einzelnen Ports.

Um beispielsweise X11-Verbindungen über die Ports 6000–6007 zuzulassen, verwenden Sie den folgenden Befehl: 

sudo ufw allow 6000:6007/tcp
sudo ufw allow 6000:6007/udp

Wenn Sie einen Portbereich in UFW angeben, müssen Sie angeben, für welches Protokoll (TCP oder UDP) die Regel gilt. Dies wurde noch nicht erwähnt, da beide Protokolle automatisch zulässig sind, wenn Sie keins angeben, aber in den meisten Fällen ist es in Ordnung. 

Spezifische IP-Adressen

Sie können auch eine IP-Adresse angeben, wenn Sie UFW verwenden. Wenn Sie beispielsweise Verbindungen von einer bestimmten IP-Adresse zulassen möchten, z. B. Ihrer Arbeits- oder Server-IP-Adresse 209.5.31.88, müssen Sie zuerst „von“ und dann die IP-Adresse angeben. 

sudo ufw allow from 209.5.31.88

Sie können auch einen bestimmten Port angeben, von dem aus eine IP-Adresse eine Verbindung herstellen darf, indem Sie einen beliebigen Port gefolgt von der Portnummer hinzufügen. Um beispielsweise 209.5.31.88 die Verbindung zu Port 22 (SSH) zu ermöglichen, verwenden Sie den folgenden Befehl:  

sudo ufw allow from 209.5.31.88 to any port 22

Subnets (Teilnetze)

Wenn Sie ein Subnetz von IP-Adressen zulassen möchten, können Sie die Netzmaske mithilfe der CIDR-Notation angeben. Um beispielsweise alle IP-Adressen im Bereich 209.5.31.1 bis 203.5.31.254 zuzulassen, könnten Sie den folgenden Befehl verwenden:  

sudo ufw allow from 209.5.31.0/24

Sie können auch einen Zielport angeben, mit dem das Subnetz 209.5.31.0/24 verbunden ist, z. B. Port 22 (SSH). 

sudo ufw allow from 209.5.31.0/24 to any port 22

Verbindungen zu einer bestimmten Netzwerkschnittstelle

Wenn Sie eine Firewall-Regel erstellen möchten, die nur für eine bestimmte Netzwerkschnittstelle gilt, können Sie dies tun, indem Sie nach „allow in on“ den Namen der Netzwerkschnittstelle angeben.

Bitte überprüfen Sie Ihre Netzwerkschnittstelle, bevor Sie fortfahren. Verwenden Sie dazu den Befehl:  

ip addr
Ausgabe
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
...
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default
...

Die Ausgabe zeigt die Netzwerkschnittstellen. Diese heißen normalerweise eth0, manchmal aber auch enp3s2.

Wenn Ihr Server über eine öffentliche Netzwerkschnittstelle mit dem Namen eth0 verfügt, können Sie HTTP-Verkehr (Port 80) mit dem folgenden Befehl zulassen:  

sudo ufw allow in on eth0 to any port 80

Wenn Sie möchten, dass Ihr MySQL- oder MariaDB-Datenbankserver (Port 3306) auf Verbindungen auf der privaten Netzwerkschnittstelle eth1 lauscht, können Sie den folgenden Befehl verwenden:  

sudo ufw allow in on eth1 to any port 3306

Dadurch können andere Server im privaten Netzwerk eine Verbindung zu Ihrer MySQL-Datenbank herstellen. Dies erfordert möglicherweise eine Anpassung Ihrer MySQL-Konfiguration. 

Schritt 7: Verbindungen verweigern

Sofern Sie die Standardrichtlinie für eingehende Verbindungen nicht geändert haben, ist UFW so konfiguriert, dass alle eingehenden Verbindungen abgelehnt werden. Im Allgemeinen vereinfacht dies den Prozess des Entwurfs sicherer Firewall-Richtlinien, indem einfach Regeln erstellt werden, die bestimmte Ports und IP-Adressen explizit zulassen.

Da Ihr Server jedoch der Ort ist, an dem Sie angegriffen werden, möchten Sie möglicherweise bestimmte Verbindungen basierend auf der Quell-IP-Adresse oder dem Subnetz ablehnen. Selbst wenn Sie die standardmäßige Eingangsrichtlinie ändern, um alles zuzulassen (wird dringend davon abgeraten), müssen Sie dennoch Ablehnungsregeln für Dienste oder IP-Adressen erstellen, von denen Sie keine Verbindungen zulassen möchten.

Um eine Verweigerungsregel zu erstellen, verwenden Sie einfach den obigen Befehl und ersetzen Sie „allow“ durch „deny“. Um beispielsweise HTTP-Verbindungen zu verweigern, können Sie den folgenden Befehl verwenden:  

sudo ufw deny http

Wenn Sie alle Verbindungen von 208.55.131.48 ablehnen möchten, können Sie den folgenden Befehl verwenden:  

sudo ufw deny from 208.55.131.48

Schritt 8: Regeln löschen

Es gibt zwei verschiedene Möglichkeiten, anzugeben, welche Regeln gelöscht werden sollen:

  • anhand der Regelnummer oder
  • anhand der eigentlichen Regel (ähnlich wie die Regeln bei ihrer Erstellung angegeben wurden).

Nach Regelnummer

Wenn Sie Firewall-Regeln nach Regelnummer löschen möchten, müssen Sie zunächst die Liste der Firewall-Regeln abrufen. Der UFW-Statusbefehl bietet die Möglichkeit, neben jeder Regel eine Zahl anzuzeigen. 

sudo ufw status numbered
Nummerierte Ausgabe:
Status: active
To Action From
-- ------ ----
[ 1] 22 ALLOW IN 15.15.15.0/24
[ 2] 80 ALLOW IN Anywhere

Wenn Sie Regel 2 entfernen möchten, die Verbindungen über Port 80 (HTTP) zulässt, können Sie dies mit dem folgenden Befehl tun: 

sudo ufw delete 2

Nach bestätigen einer Sicherheitsabfrage wird die Regel 2 gelöscht, die die HTTP-Verbindungen erlaubt.

Beachten Sie, dass Sie bei aktiviertem IPv6 auch die entsprechenden IPv6-Regeln entfernen sollten. 

Nach aktueller Regel

Sie können anstelle der Regelnummer auch die tatsächlich zu löschende Regel angeben. Um beispielsweise die http-Regel zu entfernen, könnten Sie einen Befehl wie diesen schreiben:  

sudo ufw delete allow http

Sie können die Regel auch mit „allow 80“ anstelle des Dienstnamens angeben. 

sudo ufw delete allow 80

Diese Methode löscht sowohl IPv4- als auch IPv6-Regeln.

Schritt 9: UFW-Status und Regeln prüfen

Mit dem folgenden Befehl kann jederzeit der Status der UFW überprüft werden:

sudo ufw status verbose

Wenn UFW deaktiviert ist, erscheint folgende Ausgabe:

Ausgabe
Status: inactive

Wenn UFW aktiv ist, werden alle vorhandenen Regeln aufgelistet. Wenn Ihre Firewall beispielsweise so konfiguriert ist, dass sie SSH-Verbindungen (Port 2222) von überall aus zulässt, wäre die Ausgabe: 

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To Action From
-- ------ ----
2222/tcp ALLOW IN Anywhere

Schritt 10: Deaktivieren oder zurücksetzen der UFW

Wenn Sie UFW nicht verwenden möchten, können Sie die Firewall mit dem folgenden Befehl deaktivieren:  

sudo ufw disable

Alle von UFW erstellten Regeln sind nicht mehr aktiv. Sie können den Befehl jedoch jederzeit zurückgeben 

sudo ufw enable

ausführen, wenn Sie UFW und die Regeln reaktivieren möchten.

Wenn Sie bereits UFW-Regeln eingerichtet haben und von vorne beginnen möchten, können Sie den Befehl „reset“ verwenden. 

sudo ufw reset

Durch diesen Befehl wird UFW deaktiviert und alle zuvor definierten Regeln werden gelöscht.

Beachten Sie, die Standardrichtlinien werden nicht auf ihre ursprünglichen Einstellungen zurückgesetzt, wenn Sie sie geändert wurden.