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?
- Schritt 1: UFW installieren
- Schritt 2: Standardregeln setzen
- Schritt 3: SSH freigeben – zuerst!
- Schritt 4: Weitere Ports freigeben
- Schritt 5: Firewall aktivieren
- Regeln verwalten und löschen
- Hinweis für Docker-Nutzer
- Das richtige Grundprinzip: alles verbieten, gezielt erlauben
- Sperr dich nicht selbst aus
- Regeln prüfen und wieder entfernen
- Häufige Fragen
- Ist UFW auf meinem System schon installiert?
- Blockiert UFW auch Docker-Container?
- Wie setze ich UFW komplett zurück?
- Fazit
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 ufwSchritt 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 outgoingSchritt 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 OpenSSHNutzt 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. WireGuardDu 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 5432Schritt 5: Firewall aktivieren
Sind die SSH- und Dienst-Regeln gesetzt, schaltest du UFW scharf:
sudo ufw enableDen aktuellen Zustand und alle Regeln (nummeriert) zeigt dir:
sudo ufw status numberedRegeln verwalten und löschen
Eine Regel entfernst du am einfachsten über ihre Nummer aus der Status-Ausgabe:
sudo ufw delete 3Weitere nützliche Befehle im Überblick:
| Befehl | Wirkung |
|---|---|
sudo ufw status verbose | Detaillierter Status inkl. Standardregeln |
sudo ufw disable | Firewall deaktivieren |
sudo ufw reset | Alle Regeln zurücksetzen |
sudo ufw app list | Verfü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.
| Richtung | Standard | Begründung |
|---|---|---|
| Eingehend | Blockieren (deny) | Nur bewusst geöffnete Dienste erreichbar |
| Ausgehend | Erlauben (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.

