linux-ubuntu-debian security firewall ufw network-security

UFW: Uncomplicated Firewall Setup (Artikel 025)

Praktische Anleitung zur Absicherung von Servern mit UFW. Von Basiskonfigurationen bis hin zu komplexen Regelwerken und dem Schutz vor Aussperrung.

# UFW: Einfache und effektive Firewall-Verwaltung

TL;DR / Management Summary UFW (Uncomplicated Firewall) ist das Standard-Frontend für Iptables/Nftables unter Ubuntu. Es wurde entwickelt, um die Firewall-Konfiguration für Menschen lesbar zu machen, ohne die Mächtigkeit des Kernels zu verlieren. Goldene Regel: “Deny by Default”. Wir erlauben nur explizit das, was wir brauchen.


# 1. Einführung & Konzepte

Die Philosophie der Einfachheit.

UFW abstrahiert die komplexen Iptables-Chains in ein einfaches Set aus Inbound- und Outbound-Regeln.

# Status-Zustände

  • Disabled: Firewall ist inaktiv.
  • Active: Firewall filtert Traffic.
  • Default Deny: Eingehende Pakete werden verworfen (Empfohlen).
  • Default Allow: Eingehende Pakete werden erlaubt (Gefährlich).
graph TD
    A[Incoming Packet] --> B{UFW Active?}
    B -->|No| C[Allow to App]
    B -->|Yes| D{Matches Rule?}
    D -->|Allow| C
    D -->|Deny/Reject| E[Drop Packet]
    D -->|No Match| F[Apply Default Policy]
    F -->|Deny| E

# 2. Basiskonfiguration

Sicher starten.

# Schritt 1: Default-Policies setzen

sudo ufw default deny incoming
sudo ufw default allow outgoing

# Schritt 2: Den eigenen Zugriff sichern (WICHTIG!)

Bevor Sie UFW aktivieren, müssen Sie SSH erlauben, sonst sperren Sie sich aus.

sudo ufw allow ssh
# oder präziser
sudo ufw allow 22/tcp

# Schritt 3: Aktivieren

sudo ufw enable

# 3. Fortgeschrittene Regeln

Services und IPs steuern.

# Ports und Services

# HTTP & HTTPS
sudo ufw allow http
sudo ufw allow https

# Port-Bereiche
sudo ufw allow 3000:3010/tcp

# IP-basierte Regeln (Enterprise Standard)

Erlauben Sie Zugriff nur aus dem Management-Netz oder vom VPN-Gateway.

# Zugriff von einer bestimmten IP auf alles
sudo ufw allow from 192.168.1.50

# Zugriff von einer IP nur auf einen Port (z.B. Datenbank)
sudo ufw allow from 10.0.0.5 to any port 5432

# 4. Day-2 Operations: Management & Logging

Wer klopft an der Tür?

# Status und Regeln prüfen

# Übersicht mit Nummern (ideal zum Löschen)
sudo ufw status numbered

# Regeln löschen

sudo ufw delete 3

# Logging aktivieren

sudo ufw logging on
# Logs einsehen
tail -f /var/log/ufw.log

# 5. Troubleshooting & “War Stories”

Wenn der Server schweigt.

# Story 1: “Der SSH-Lockout”

Symptom: ufw enable ausgeführt, SSH-Session bricht ab, Reconnect unmöglich. Ursache: SSH wurde nicht vorher erlaubt. Lösung: Wenn Sie Proxmox nutzen: Web-Konsole öffnen und ufw disable eingeben. Lektion: Immer ufw status prüfen, bevor man enable drückt.

# Story 2: “Docker ignoriert UFW”

Symptom: Ein Port ist in UFW gesperrt, aber der Docker-Container auf diesem Port ist trotzdem aus dem Internet erreichbar. Ursache: Docker manipuliert Iptables-Regeln direkt und steht in der Kette vor UFW. Lösung: In /etc/docker/daemon.json die Option "iptables": false setzen (Vorsicht: bricht Docker-Networking!) oder spezialisierte Tools wie ufw-docker nutzen.


# 6. Fazit & Empfehlung

  • Einfachheit: Nutzen Sie UFW für Standalone-Server.
  • Präzision: Arbeiten Sie immer mit IP-Whitelists für Management-Ports.
  • Docker: Seien Sie extrem vorsichtig mit Docker und UFW (siehe Story 2).

# Anhang: Cheatsheet

Aufgabe Befehl
Firewall Status sudo ufw status verbose
Dienst verbieten sudo ufw deny http
IP-Subnetz erlauben sudo ufw allow from 192.168.1.0/24
Alles zurücksetzen sudo ufw reset
Kommentar hinzufügen sudo ufw allow 80 comment 'Webserver Traffic'