Sicherheit

UFW erklärt — Uncomplicated Firewall für Linux-Server

Direkte Antwort: UFW (Uncomplicated Firewall) ist Ubuntus Standard-Firewall-Frontend für iptables/nftables. Sie regelt, welche Netzwerk-Ports von außen erreichbar sind. Auf einem OpenClaw-Server stellst du sie auf "default deny" und öffnest nur die nötigen Ports (SSH, HTTPS, ggf. Webhook).

Was ist UFW?

UFW steht für Uncomplicated Firewall und ist genau das: ein einfaches Frontend für die komplexen Linux-Firewall-Subsysteme iptables und nftables. Statt dich mit kryptischen Regelsyntaxen herumzuschlagen, schreibst du ufw allow 22 — und UFW kümmert sich um den Rest.

Auf Ubuntu-Servern (z.B. einem frischen Hetzner-VPS für OpenClaw) ist UFW vorinstalliert, aber initial deaktiviert. Es zu aktivieren ist eine der ersten Maßnahmen beim Hardening.

Kontext

Linux hat von Haus aus mit iptables ein extrem mächtiges Firewall-System. Mächtig, aber auch grauenhaft kompliziert. Eine simple Regel sieht z.B. so aus:

iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

UFW versteckt diese Komplexität hinter einem freundlichen Interface. Hinter den Kulissen schreibt es trotzdem iptables/nftables-Regeln, also profitierst du von der Robustheit, ohne den Aufwand.

Andere Linux-Distros nutzen oft firewalld (Fedora/RHEL) oder nftables direkt — UFW ist Ubuntu-typisch.

Funktionsweise

UFW arbeitet nach dem Prinzip "Default Policy + Exceptions":

  1. Default Deny für eingehenden Traffic (alles wird geblockt)
  2. Default Allow für ausgehenden Traffic (Server darf raus)
  3. Spezifische Regeln öffnen einzelne Ports oder erlauben einzelne IPs

So ist dein Server per Default sicher — niemand kommt rein. Du öffnest nur, was wirklich nötig ist.

Praxis-Beispiel

Erstmaliges Setup auf einem OpenClaw-Server:

# Regeln definieren BEVOR du UFW aktivierst (sonst sperrst du dich aus)
sudo ufw default deny incoming
sudo ufw default allow outgoing

# SSH erlauben (sonst bist du raus!)
sudo ufw allow 22/tcp

# Optional: Web-UI fuer OpenClaw oder Reverse-Proxy
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# UFW aktivieren
sudo ufw enable

# Status pruefen
sudo ufw status verbose

Output von sudo ufw status verbose:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)

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

Wichtige Befehle

# Port erlauben
sudo ufw allow 22/tcp
sudo ufw allow 8080

# Port nur fuer eine IP erlauben
sudo ufw allow from 1.2.3.4 to any port 22

# Port nur fuer ein Subnetz erlauben
sudo ufw allow from 192.168.1.0/24 to any port 22

# Port wieder schliessen
sudo ufw delete allow 22/tcp

# Regel nach Nummer loeschen
sudo ufw status numbered
sudo ufw delete 3

# Verbindungen blocken (anstatt deny -> reject)
sudo ufw reject 25

# UFW komplett ausschalten (z.B. zum Debuggen)
sudo ufw disable

# Reset aller Regeln
sudo ufw reset

Standard-Setup für OpenClaw-Server

Empfohlene UFW-Konfiguration für einen typischen OpenClaw-Server auf Hetzner:

sudo ufw default deny incoming
sudo ufw default allow outgoing

# SSH: nur eigene IP erlauben (oder Tailscale)
sudo ufw allow from 1.2.3.4 to any port 22 proto tcp
# Alternative: SSH offen lassen, mit fail2ban absichern
# sudo ufw allow 22/tcp

# Wenn du Web-UI/Reverse-Proxy nutzt
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# WhatsApp/Telegram: keine Eingaenge noetig
# (Bot pollt selbst raus)

sudo ufw enable

UFW + fail2ban

UFW und fail2ban ergänzen sich:

  • UFW macht statische Regeln (welche Ports überhaupt offen)
  • fail2ban reagiert dynamisch (wer zu oft daneben tippt, fliegt raus)

Beide gleichzeitig laufen lassen ist Best Practice.

UFW + Tailscale

Wenn du Tailscale als Mesh-VPN nutzt, kannst du SSH komplett aus der öffentlichen Welt ziehen:

# SSH nur aus Tailscale-Netz erlauben
sudo ufw allow in on tailscale0 to any port 22

# Public SSH wieder zuschliessen
sudo ufw delete allow 22/tcp

Damit ist dein SSH öffentlich gar nicht mehr erreichbar — nur über Tailscale.

Logging

UFW loggt blockierte Pakete (auf Default-Level "low"). Logs sind in /var/log/ufw.log oder via journalctl -k | grep UFW.

Logging-Level einstellen:

sudo ufw logging low      # Standard
sudo ufw logging medium   # mehr Details
sudo ufw logging high     # vollständig (kann fluten)
sudo ufw logging off      # aus

Häufige Fehler / Stolperfallen

  1. SSH vergessen vor enable: Klassiker. Wenn du UFW aktivierst, ohne vorher SSH zu erlauben, fliegst du raus. Hetzner Console-Feature rettet dich, aber besser vermeiden.
  2. IPv6 nicht beachten: Default schaltet UFW IPv4 + IPv6, manche Setups nur IPv4. sudo ufw allow 22 deckt beide ab, aber sudo ufw allow from 1.2.3.4 nur IPv4.
  3. UFW + Docker = Verwirrung: Docker manipuliert iptables an UFW vorbei. Container-Ports sind oft trotz UFW offen. Workaround: --iptables=false in Docker oder UFW-Docker-Bridge.
  4. Port "spaeter mal" geöffnet vergessen: Audit deine UFW-Regeln regelmäßig. sudo ufw status numbered und alles raus, was du nicht aktiv brauchst.
  5. Default Allow für Eingehendes: Niemals. Das ist quasi "Firewall aus". Default Deny ist Pflicht.

Verwandte Begriffe

Vollständiges Server-Hardening: Modul 2 der Masterclass.

Tipp: OpenClaw braucht einen Server, auf dem es 24/7 läuft. Hostinger KVM 2 in Frankfurt reicht für den Anfang und kostet nur wenige Euro im Monat. Hostinger ansehenAffiliate-Link — wir erhalten eine Provision, wenn du über diesen Link bestellst. Für dich ändert sich am Preis nichts.

Weitere Begriffe

Soul.md

Die Persönlichkeits-Datei deines OpenClaw-Agenten.

Heartbeat

Das System, das deinen OpenClaw-Agenten proaktiv arbeiten lässt.

Model Context Protocol (MCP)

Ein Standard-Protokoll für die Kommunikation zwischen KI-Agenten und externen Tools.

Identity File

Die Grundkonfiguration, die festlegt, wer dein Agent ist und wie er sich verhält.

OpenClaw Skills

Vorgefertigte Fähigkeiten, die deinem Agent beibringen, externe Tools zu nutzen.

OpenClaw Gateway

Der laufende Prozess, der deinen Agenten mit Messengern verbindet.

Anthropic API

Pay-per-Use API für Claude — die direkte Schnittstelle zu Anthropics LLMs.

Claude Token

Authentifizierungs-Token für Claude Pro und Max — günstiger als API-Pay-per-Use.

Tool Use

Mechanismus, mit dem LLMs externe Funktionen aufrufen — die Grundlage agentischer Systeme.

RAG (Retrieval-Augmented Generation)

KI-Antworten mit zusätzlichem Wissen aus Dokumenten oder Vektor-Datenbanken anreichern.

Cron / Crontab

Linux-Standard für zeitgesteuerte Aufgaben — die Grundlage proaktiver KI-Agenten.

systemd

Linux Service-Manager — startet OpenClaw automatisch und überwacht den Prozess.

fail2ban

Brute-Force-Schutz für SSH und andere Dienste — sperrt verdächtige IPs automatisch.

Tailscale

Mesh-VPN — sicherer Remote-Zugriff auf den eigenen KI-Server ohne offene Ports.

Webhook

HTTP-Callback für ereignisbasierte Integrationen — wie Telegram OpenClaw kontaktiert.

Prompt Injection

Angriffstechnik gegen LLM-Systeme — OWASP-LLM-Top-1-Risiko.

User.md

Datei mit Nutzer-Infos für Personalisierung deines OpenClaw-Agenten.