UFW Grundkonfiguration – Firewall für Debian/Ubuntu

Mathias Eberlein — 2026-06-13

UFW Grundkonfiguration – Firewall für Debian/Ubuntu

Ein neu aufgesetzter Server hat standardmäßig keine Firewall. Das bedeutet: Jeder Port ist offen, solange ein Dienst lauscht. Das ist bequem für Tests, aber ein Risiko in der Praxis. Automatisierte Scanner und Bots testen ständig Standardports wie 22 (SSH), 3306 (MySQL) oder 6379 (Redis). UFW (Uncomplicated Firewall) bietet eine einfache Möglichkeit, den Zugriff auf genau die Dienste zu beschränken, die erlaubt sein sollen.

Problem: Offene Ports ohne Kontrolle

Ohne Firewall ist der Server nach außen offen wie ein Scheunentor. Ein Angreifer muss nicht einmal eine Schwachstelle ausnutzen – er kann direkt auf jeden lauschenden Port zugreifen. Der häufigste Fall: SSH ist überall erreichbar, Datenbankdienste lauschen auf allen Interfaces und nicht genutzte Ports sind ebenfalls sichtbar.

Das Risiko ist konkret: Brute-Force-Angriffe auf SSH, unautorisierte Zugriffe auf Datenbanken oder das Ausnutzen veralteter Dienste. Die Ursache ist fast immer dieselbe: keine oder eine falsch konfigurierte Firewall.

Ursache: Fehlende Regeln und falsche Policies

UFW ist standardmäßig installiert, aber deaktiviert. Das bedeutet: Es gibt keine Regeln, und der gesamte Verkehr wird akzeptiert. Das Problem verschärft sich, wenn Administratoren versuchen, einzelne Ports zu sperren, ohne die Default-Policy zu beachten. Eine Firewall mit einer Allow-Default-Policy und wenigen Block-Regeln schützt nicht vor unvorhergesehenen Diensten.

Die korrekte Herangehensweise: Default-Policy auf „nicht erlaubt" setzen und nur die Ports explizit freigeben, die benötigt werden. UFW macht das mit einfachen Kommandos – die Komplexität von iptables-Regeln bleibt verborgen.

Lösung: UFW Grundkonfiguration

Zuerst installieren und aktivieren wir UFW. Dann setzen wir die Default-Policies und definieren die erlaubten Ports. Die wichtigste Regel zuerst: SSH-Zugang muss funktionieren, bevor die Firewall aktiv wird – sonst sperrt man sich selbst aus.

Schritt 1: Installation und Aktivierung

UFW ist auf Debian und Ubuntu standardmäßig verfügbar. Falls nicht, installieren wir es und aktivieren den Dienst:

# UFW installieren (falls nicht vorhanden)
apt update && apt install -y ufw

# Vor der Aktivierung: SSH-Port freigeben
ufw allow ssh

# Firewall aktivieren
ufw enable

# Status prüfen
ufw status verbose

Hinweis: Der Befehl ufw allow ssh öffnet Port 22. Wenn SSH auf einem anderen Port läuft, muss dieser Port explizit freigegeben werden, bevor ufw enable ausgeführt wird.

Schritt 2: Default-Policies setzen

Die sicherste Grundkonfiguration: Alles blockieren, was nicht explizit erlaubt ist. Das gilt für eingehenden Verkehr. Ausgehender Verkehr wird standardmäßig erlaubt, damit Updates und DNS-Abfragen funktionieren.

# Alle eingehenden Verbindungen blockieren
ufw default deny incoming

# Alle ausgehenden Verbindungen erlauben
ufw default allow outgoing

# Optional: Auch ausgehenden Verkehr einschränken
# ufw default deny outgoing
# ufw allow out 53      # DNS
# ufw allow out 80      # HTTP
# ufw allow out 443     # HTTPS
# ufw allow out 123     # NTP

Die strikte Einstellung deny incoming ist die wichtigste Regel. Jeder Dienst, der von außen erreichbar sein soll, muss explizit freigegeben werden.

Schritt 3: Benutzerdefinierte Regeln

Neben Standardports können auch spezifische Dienste freigegeben werden. Die Syntax ist einfach: ufw allow /. Für Anwendungen, die UFW über die Datei /etc/ufw/applications.d registrieren, reicht der Applikationsname.

# Webserver freigeben
ufw allow http
ufw allow https

# Alternativ mit Port und Protokoll
ufw allow 80/tcp
ufw allow 443/tcp

# Datenbank nur von lokal erlauben
ufw allow from 127.0.0.1 to any port 3306

# Mehrere Ports in einem Befehl
ufw allow 20000:20010/tcp

# Bestehende Regeln löschen
ufw delete allow http

Schritt 4: Status und Überblick

UFW bietet mehrere Befehle, um den aktuellen Zustand zu prüfen. Die nummerierte Ausgabe ist besonders nützlich, wenn Regeln gelöscht werden sollen:

# Kompakte Statusanzeige
ufw status

# Ausführliche Anzeige mit Regelnummern
ufw status numbered

# Protokollierung aktivieren
ufw logging on

# Firewall deaktivieren (im Notfall)
ufw disable

# Firewall komplett zurücksetzen
ufw reset

Praxisprüfung: Funktioniert es?

Nach der Konfiguration sollte der Zugriff auf gesperrte Ports abgelehnt werden. Die Prüfung kann von einem externen Rechner aus erfolgen:

# Prüfen, ob SSH erreichbar ist (sollte funktionieren)
nc -zv example.com 22

# Prüfen, ob MySQL blockiert wird (sollte fehlschlagen)
nc -zv example.com 3306

# Prüfen, ob HTTP erlaubt ist
curl -I http://example.com

# Lokale Regeln anzeigen (auf dem Server)
sudo ufw status verbose

# Prüfen, ob iptables-Regeln wie erwartet gesetzt sind
sudo iptables -L -n | grep -E '3306|22|80'

Erwartetes Ergebnis: Port 22 und 80/443 sind erreichbar. Port 3306 wird von außen abgelehnt. Der ufw status-Befehl zeigt die aktiven Regeln korrekt an.

Fazit

UFW macht Firewall-Konfiguration auf Debian und Ubuntu zugänglich, ohne dass man iptables im Detail beherrschen muss. Die Grundkonfiguration besteht aus drei Schritten: Default-Policy auf deny incoming setzen, SSH-Port explizit freigeben und dann die benötigten Dienste hinzufügen. Wer die Firewall aktiviert, bevor SSH freigegeben ist, sperrt sich selbst aus – das ist der häufigste Anfängerfehler. Wer die hier gezeigten Schritte befolgt, hat innerhalb von fünf Minuten eine funktionierende Basisabsicherung.


Hinweis: Dieser Beitrag entstand aus der Praxis – beim Aufbau mehrerer Projekte auf redpandamonium.de und der damit verbundenen Auseinandersetzung mit Websicherheit.