tags:
- linux
- security
- devops
- ufw
-
vps date: 2026-10-05
Linux: UFW Firewall Konfiguration (Web + Tailscale SSH)
Diese Notiz beschreibt die grundlegende Absicherung eines Linux-VPS mittels UFW (Uncomplicated Firewall). Das Ziel ist es, den Zugriff von außen auf das Notwendigste (HTTP/HTTPS) zu beschränken und administrative Zugriffe (SSH) ausschließlich über ein sicheres VPN wie [[Tailscale]] zu erlauben.
1. Standard-Richtlinien (Default Policies)
Zunächst wird der gesamte eingehende Datenverkehr standardmäßig blockiert und ausgehender Datenverkehr uneingeschränkt erlaubt.
sudo ufw default deny incoming
sudo ufw default allow outgoing
2. Firewall-Regeln definieren
SSH nur über Tailscale erlauben
Um den Server nicht auszusperren, während Port 22 global geschlossen wird, binden wir den SSH-Zugriff exklusiv an das Tailscale-Interface (tailscale0). Dadurch sind Anfragen über die öffentliche IP wirkungslos.
Bash
sudo ufw allow in on tailscale0 to any port 22 proto tcp
Öffentliche Web-Ports freigeben
Für den Nginx-Webserver und Let’s Encrypt werden die Standardports für HTTP und HTTPS geöffnet:
Bash
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
[!note] Hinweis Falls zuvor eine globale Regel wie
sudo ufw allow OpenSSHaktiv war, muss diese unbedingt entfernt werden, damit SSH nicht mehr öffentlich erreichbar ist (sudo ufw delete allow OpenSSH).
3. UFW aktivieren und prüfen
Nachdem alle Regeln konfiguriert sind, wird die Firewall eingeschaltet:
Bash
sudo ufw enable
Status-Kontrolle mit erweiterten Details
Mit dem folgenden Befehl lässt sich die vollständige Konfiguration inklusive aktiver Interfaces und Standard-Policies überprüfen:
Bash
sudo ufw status verbose
Erwartete Ausgabe:
Plaintext
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
To Action From
-- ------ ----
80/tcp ALLOW IN Anywhere
443/tcp ALLOW IN Anywhere
22/tcp on tailscale0 ALLOW IN Anywhere
80/tcp (v6) ALLOW IN Anywhere (v6)
443/tcp (v6) ALLOW IN Anywhere (v6)
22/tcp (v6) on tailscale0 ALLOW IN Anywhere (v6)
4. Nützliche Befehle im Alltag
-
Status anzeigen:
sudo ufw status -
Firewall neu laden:
sudo ufw reload -
Regeln nummeriert anzeigen (zum Löschen):
sudo ufw status numbered -
Bestimmte Regel löschen:
sudo ufw delete <Nummer>