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' |