Zum Inhalt springen
Serverküche
Suche

Die Suche wird geladen … (nur in der veröffentlichten Seite verfügbar).

Sicherheit Schwierigkeit: Einsteiger

Firewall mit UFW einrichten

Mit UFW in wenigen Minuten eine Host-Firewall aufsetzen: alles blocken außer SSH, HTTP und HTTPS – ohne dich dabei selbst auszusperren.

· 4 Min. Lesezeit ·Dauer: ca. 15 Minuten
Inhaltsverzeichnis

Dein Server nimmt standardmäßig Verbindungen auf allen offenen Ports entgegen. Eine Firewall dreht das um: Sie blockt alles und lässt nur durch, was du ausdrücklich erlaubst. UFW („Uncomplicated Firewall") macht das mit wenigen, gut lesbaren Befehlen – die perfekte erste Verteidigungslinie.

Was bauen wir?

Am Ende läuft UFW auf deinem Debian 13 mit der Grundregel „alles eingehende blocken", geöffnet sind nur SSH (dein Zugang) sowie HTTP/HTTPS (Port 80/443, die du später für Traefik brauchst). Ausgehende Verbindungen bleiben erlaubt. Das Wichtigste dabei: Wir gehen so vor, dass du dich nicht selbst aussperrst.

Voraussetzungen

  • Ein abgesicherter Server mit sudo-Benutzer
  • Du weißt, auf welchem Port dein SSH läuft (Standard: 22)

Schritt für Schritt

Schritt 1: UFW installieren

Terminal
sudo apt update
sudo apt install -y ufw

Prüfe, welche Version du bekommen hast:

Terminal
ufw version
Ausgabe
ufw 0.36.2
Copyright 2008-2023 Canonical Ltd.

Direkt nach der Installation ist UFW noch inaktiv – das ist gewollt: Ein sofort scharfer Paketfilter ohne Freigaben würde dich aussperren. sudo ufw status bestätigt das mit Status: inactive.

Schritt 2: Grundregeln festlegen

Zuerst die Standardrichtung: alles Eingehende ablehnen, alles Ausgehende erlauben.

Terminal
sudo ufw default deny incoming
sudo ufw default allow outgoing
Ausgabe
Default incoming policy changed to 'deny'
(be sure to update your rules accordingly)
Default outgoing policy changed to 'allow'
(be sure to update your rules accordingly)

Diese Regeln greifen noch nicht – UFW ist ja inaktiv. Deshalb kommen jetzt die Ausnahmen, bevor wir einschalten.

Schritt 3: SSH freigeben – zuerst, sonst Aussperrung

Erst SSH erlauben, dann aktivieren

Schaltest du UFW mit der Regel „deny incoming" ein, ohne vorher SSH erlaubt zu haben, kappt der nächste Befehl deine eigene Verbindung – und du kommst per SSH nicht mehr rein. Diese Reihenfolge ist nicht verhandelbar.

Wenn dein SSH auf dem Standardport 22 läuft (und openssh-server installiert ist), gibt es dafür ein fertiges Profil:

Terminal
sudo ufw allow OpenSSH

Hast du den SSH-Port geändert (z. B. auf 2222), erlaube stattdessen genau diesen Port:

Terminal
sudo ufw allow 2222/tcp

Schritt 4: HTTP und HTTPS freigeben

Für den späteren Reverse Proxy mit Traefik brauchst du die Web-Ports. Öffne sie gleich mit:

Terminal
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Jede Regel bestätigt UFW mit Rules updated und Rules updated (v6) (die IPv6-Variante).

Schritt 5: Firewall aktivieren und prüfen

Jetzt einschalten:

Terminal
sudo ufw enable
Ausgabe
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Kontrolliere das Ergebnis:

Terminal
sudo ufw status verbose
Ausgabe
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp (OpenSSH)           ALLOW IN    Anywhere
80/tcp                     ALLOW IN    Anywhere
443/tcp                    ALLOW IN    Anywhere
22/tcp (OpenSSH (v6))      ALLOW IN    Anywhere (v6)
80/tcp (v6)                ALLOW IN    Anywhere (v6)
443/tcp (v6)               ALLOW IN    Anywhere (v6)

Status: active und deine drei Freigaben – fertig. Teste zur Sicherheit in einer zweiten SSH-Sitzung, dass du dich weiterhin verbinden kannst, bevor du die erste schließt.

Das disabled (routed) in der Default-Zeile ist auf einem frischen Debian normal: UFW filtert weitergeleiteten Verkehr nur, wenn im Kernel überhaupt IP-Forwarding aktiv ist. Sobald du später Docker installierst – das schaltet net.ipv4.ip_forward ein – steht dort deny (routed). Beides ist in Ordnung, es beschreibt nur unterschiedliche Ausgangslagen.

Wenn es nicht funktioniert

Nach ufw enable kommst du per SSH nicht mehr rein. Die SSH-Regel fehlte oder betraf den falschen Port. Verbinde dich über die Konsole im netcup SCP (VNC, unabhängig von SSH), erlaube dort deinen SSH-Port (sudo ufw allow …) und teste erneut. Genau davor warnt Schritt 3.

ERROR: Could not find a profile matching 'OpenSSH'. Das OpenSSH-Profil existiert nur, wenn openssh-server installiert ist. Nutze stattdessen die Portnummer: sudo ufw allow 22/tcp (bzw. deinen Port). sudo ufw app list zeigt die verfügbaren Profile.

Ein Docker-Container ist von außen erreichbar, obwohl UFW den Port nicht freigibt. Kein Fehler von dir – Docker umgeht UFW. Docker schreibt seine Regeln direkt in iptables und hängt sie vor die UFW-Ketten. Ein veröffentlichter Container-Port (ports: in der compose.yaml) ist damit offen, egal was UFW sagt. Die saubere Lösung ist eine zweite Firewall-Ebene vor dem Server – bei netcup die Firewall im SCP als vorgelagerter Perimeter. Auf dem Host hilft außerdem, Container-Ports nur an 127.0.0.1 zu binden statt an 0.0.0.0.

Wartung & Backups

  • Regeln ansehen und löschen: sudo ufw status numbered nummeriert alle Regeln; sudo ufw delete 3 entfernt Regel 3. So räumst du auf, wenn ein Dienst wegfällt.
  • Neue Dienste: Für jeden zusätzlichen öffentlichen Port eine gezielte Regel – nie „mal eben alles" öffnen. Was nicht offen sein muss, bleibt zu.
  • Kein Backup nötig, aber notiere dir deine Freigaben (oder halte sie im selben Dokument wie deine DNS-Records fest). Der Regelsatz ist in Sekunden neu getippt.
  • Grenzen kennen: UFW schützt den Host, aber nicht gegen die Docker-Lücke oben. Eine vorgelagerte Perimeter-Firewall wie die netcup-Firewall im SCP ergänzt UFW zu zwei Ebenen, die sich gegenseitig absichern – ideal, sobald Container mit offenen Ports laufen.

Zuletzt aktualisiert: 27.08.2026

Feedback per E-Mail: feedback@serverkueche.de

Wie geht's weiter?

Das könnte dir auch schmecken

Docker auf Debian installieren
Container Einsteiger

Docker auf Debian installieren

Docker Engine und Docker Compose sauber aus dem offiziellen Repository installieren – die Basis für die meisten …

· 4 Min. Lesezeit
Erste Schritte mit einem netcup VPS
Grundlagen Einsteiger

Erste Schritte mit einem netcup VPS

Vom bestellten Server zum einsatzbereiten System: SSH-Login, Updates, ein sudo-Benutzer und die wichtigsten Handgriffe …

· 5 Min. Lesezeit