UFW-Firewall unter Linux einrichten – Anleitung

Eine Firewall ist die erste Verteidigungslinie deines Servers – und mit UFW zum Glück kein Hexenwerk. Die „Uncomplicated Firewall“ macht das Regelwerk von iptables endlich handhabbar. In dieser Anleitung richtest du die UFW-Firewall unter Linux ein: Standardregeln setzen, Ports freigeben, SSH absichern und Regeln verwalten.

Ein Server ohne Firewall ist wie eine Wohnung mit offener Haustür. UFW (Uncomplicated Firewall) macht die Absicherung deines Linux-Systems angenehm einfach: Statt kryptischer iptables-Regeln formulierst du klare Anweisungen wie „erlaube SSH“ oder „blockiere Port 8080“. In dieser Anleitung richtest du UFW von Grund auf ein, definierst eine sichere Grundregel und vermeidest den Klassiker unter den Anfängerfehlern – dich selbst per SSH auszusperren.

Was ist UFW?

UFW (Uncomplicated Firewall) ist eine benutzerfreundliche Oberfläche für die mächtige, aber komplizierte iptables/nftables-Firewall des Linux-Kernels. Statt kryptischer Befehle formulierst du einfache Regeln wie „erlaube Port 80″. Auf Ubuntu ist UFW vorinstalliert, auf Debian installierst du es schnell nach.


Schritt 1: UFW installieren

Falls UFW noch nicht vorhanden ist, installierst du es über den Paketmanager:

sudo apt update
sudo apt install -y ufw

Schritt 2: Standardregeln setzen

Eine sinnvolle Grundhaltung: Alle eingehenden Verbindungen blockieren, alle ausgehenden erlauben. Danach gibst du gezielt frei, was du brauchst:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Schritt 3: SSH freigeben – zuerst!

Der wichtigste Schritt: Gib SSH frei, bevor du die Firewall aktivierst. Sonst sperrst du dich bei einem entfernten Server sofort selbst aus. UFW bringt dafür ein passendes Profil mit:

sudo ufw allow OpenSSH

Nutzt du einen abweichenden SSH-Port, gibst du stattdessen die Portnummer frei (z. B. sudo ufw allow 2222/tcp). Wie du SSH insgesamt härtest, steht in SSH-Server absichern.


Schritt 4: Weitere Ports freigeben

Jetzt öffnest du die Ports deiner Dienste. Häufige Beispiele:

sudo ufw allow 80/tcp     # HTTP
sudo ufw allow 443/tcp    # HTTPS
sudo ufw allow 51820/udp  # z. B. WireGuard

Du kannst den Zugriff auch auf eine bestimmte Quell-IP beschränken – praktisch, um z. B. eine Datenbank nur für einen einzelnen Host zu öffnen:

sudo ufw allow from 192.168.1.50 to any port 5432

Schritt 5: Firewall aktivieren

Sind die SSH- und Dienst-Regeln gesetzt, schaltest du UFW scharf:

sudo ufw enable

Den aktuellen Zustand und alle Regeln (nummeriert) zeigt dir:

sudo ufw status numbered

Regeln verwalten und löschen

Eine Regel entfernst du am einfachsten über ihre Nummer aus der Status-Ausgabe:

sudo ufw delete 3

Weitere nützliche Befehle im Überblick:

BefehlWirkung
sudo ufw status verboseDetaillierter Status inkl. Standardregeln
sudo ufw disableFirewall deaktivieren
sudo ufw resetAlle Regeln zurücksetzen
sudo ufw app listVerfügbare Anwendungsprofile anzeigen

Hinweis für Docker-Nutzer

Eine wichtige Besonderheit: Docker schreibt seine Portfreigaben direkt in iptables und umgeht dabei UFW. Ein per -p veröffentlichter Container-Port ist dadurch oft erreichbar, obwohl UFW ihn nicht freigegeben hat. Wie Docker-Ports funktionieren, erklärt Docker Netzwerke erklärt. Für Docker-Hosts sind daher zusätzliche Maßnahmen nötig, etwa Container nur an 127.0.0.1 zu binden.


Das richtige Grundprinzip: alles verbieten, gezielt erlauben

Eine sichere Firewall folgt dem Prinzip der minimalen Rechte: Eingehender Verkehr wird grundsätzlich blockiert, und du erlaubst nur die Dienste, die wirklich erreichbar sein müssen. Ausgehender Verkehr bleibt dagegen meist offen. Diese Grundhaltung setzt du mit zwei Default-Regeln, bevor du einzelne Ports freigibst.

RichtungStandardBegründung
EingehendBlockieren (deny)Nur bewusst geöffnete Dienste erreichbar
AusgehendErlauben (allow)Server darf Updates und Anfragen senden

Sperr dich nicht selbst aus

Der häufigste und ärgerlichste Fehler: Du aktivierst UFW mit blockierendem Standard, ohne vorher SSH freizugeben – und verlierst sofort die Verbindung zum Server. Gib deshalb immer zuerst den SSH-Port frei, bevor du die Firewall scharf schaltest.

  • Erlaube SSH vor dem Aktivieren mit sudo ufw allow OpenSSH.
  • Nutzt du einen abweichenden SSH-Port, gib genau diesen frei (z. B. sudo ufw allow 2222/tcp).
  • Teste bei Root-Servern die Regeln über die Konsole des Anbieters, falls SSH doch blockiert.

Regeln prüfen und wieder entfernen

Mit sudo ufw status numbered bekommst du alle aktiven Regeln durchnummeriert aufgelistet. Eine falsch gesetzte Regel entfernst du gezielt über ihre Nummer mit sudo ufw delete 3. So räumst du auf, ohne die gesamte Konfiguration zurücksetzen zu müssen.

Für Dienste, die nur aus deinem Heimnetz erreichbar sein sollen, kombinierst du Port und Quelle: sudo ufw allow from 192.168.1.0/24 to any port 445 gibt etwa eine Dateifreigabe ausschließlich für das lokale Netz frei – ein wichtiger Baustein für die Absicherung interner Dienste. Mit dem Schlüsselwort limit statt allow kannst du zusätzlich Brute-Force-Versuche eindämmen: UFW blockt dann Verbindungen von einer IP, die sich in kurzer Zeit zu oft verbindet – besonders sinnvoll für den SSH-Port.


Häufige Fragen

Die häufigsten Fragen zur Einrichtung von UFW.

Ist UFW auf meinem System schon installiert?

Auf Ubuntu ist UFW meist vorinstalliert, aber inaktiv. Unter Debian installierst du es bei Bedarf mit sudo apt install ufw. Den Status prüfst du mit sudo ufw status.

Blockiert UFW auch Docker-Container?

Nein, und das ist eine bekannte Falle: Docker schreibt eigene iptables-Regeln und umgeht UFW teilweise. Für per Docker veröffentlichte Ports brauchst du zusätzliche Vorkehrungen.

Wie setze ich UFW komplett zurück?

Mit sudo ufw reset löschst du alle Regeln und kehrst zur Ausgangskonfiguration zurück. Danach musst du deine Regeln neu aufbauen – SSH also nicht vergessen.


Fazit

Mit ein paar Befehlen steht deine UFW-Firewall: eingehend blockieren, ausgehend erlauben, SSH und benötigte Dienste gezielt freigeben. Der goldene Grundsatz lautet, SSH immer vor dem Aktivieren freizugeben. Damit reduzierst du die Angriffsfläche deines Servers erheblich – ein zentraler Baustein für sicheres Selfhosting.

Siehe auch  Docker Container automatisch aktualisieren mit Watchtower
Nach oben scrollen