Zwischen 2025 und 2026 ist die typische Angriffsfläche für selbst gehostete Agent-Stacks gewachsen: öffentlich erreichbare Tool- und Gateway-Ports, zu breite MCP-Endpunkte, versehentlich exponierte Health-Checks und lang lebende Bearer-Tokens, die in CI-Logs, Screen-Shares oder Backup-Skripten landen. Scanner und Botnetze testen kontinuierlich gängige Ports; sobald ein Gateway ohne Auth antwortet, reicht oft ein einziger Skill-Aufruf, um laterale Bewegung zu starten. Dieser Leitfaden richtet sich an Teams und Einzelentwickler, die OpenClaw auf einem gemieteten Remote-Mac betreiben: konkrete Befehle, Konfigurationsanker und Schwellen – ohne Marketing-Floskeln. Vertiefung: Deployment-Guide, MCP & Preflight, Docker-CI; Angebot: Startseite, Kaufen, Hilfe.

Vorab-Checks vor dem Deployment (Node-Version und Berechtigungsmodell)

Bevor Sie Token und Firewall anfassen, muss die Laufzeitumgebung stabil und vorhersehbar sein. OpenClaw-CLI und zugehörige Pakete setzen in Produktions-Setups üblicherweise Node.js 22 LTS voraus; ältere Major-Versionen führen zu kryptischen ESM- oder Postinstall-Fehlern. Gleiches gilt für npm-Versionen, die mit overrides oder Workspaces kollidieren: ein einheitlicher npm -v auf allen Buildern verhindert „bei mir geht’s“-Drift.

node -v
which node
npm config get prefix

Legen Sie den Dienstbenutzer fest – nicht root, nicht Ihr persönlicher Admin-Account. Auf dem Mac genügt oft ein dedizierter Account mit eingeschränktem Home und ohne sudo für den Gateway-Prozess. Prüfen Sie realen Dateizugriff statt nur ls; erweiterte Attribute und ACLs verursachen subtile EPERM-Fehler, wenn der Prozess unter einer anderen UID läuft als der Entwickler, der das Repo geklont hat.

id
ls -le ~/path/to/workspace
csrutil status

Wenn Skripte Dateien unter ~/Library oder Tastatur-/Bildschirm-Capture anfassen, können TCC-Dialoge blockieren. Dokumentieren Sie jede manuelle Freigabe; in Headless-Remote-Macs vermeiden Sie solche Pfade konsequent und halten Sie Arbeitsverzeichnisse unterhalb eines klaren Präfixes wie /srv/openclaw oder ~/svc/openclaw. Gatekeeper und Quarantäne-Attribute (xattr -l auf heruntergeladenen Binaries) sollten vor dem Go-Live geprüft werden, damit der erste Produktionsstart nicht an „App kann nicht geöffnet werden“ scheitert. Für globale npm-Binaries: sicherstellen, dass der PATH in der launchd-plist denselben Prefix enthält wie die interaktive Shell – ein klassischer Grund für „Befehl nicht gefunden“ nur im Daemon.

Zusätzlich: SSH-Härtung (PasswordAuthentication no, PermitRootLogin no) und unnötige Dienste auf gemieteten Images deaktivieren.

Gateway-Token und Zugriffskontrolle – Konfigurationsschritte

Das Gateway darf nicht „nebenbei“ im Internet lauschen. Priorität 1: Bindung an 127.0.0.1 und Zugriff nur über SSH-Port-Weiterleitung (ssh -L 18789:127.0.0.1:18789 user@remote-mac), WireGuard oder einen internen Reverse-Proxy mit mTLS. Priorität 2: ein statistisch starkes Secret (mindestens 32 Bytes zufällig, Base64), gespeichert als Umgebungsvariable – nicht in Git, nicht in Slack-Threads.

openssl rand -base64 32
export OPENCLAW_GATEWAY_TOKEN='…' # Platzhaltername; an Ihre OpenClaw-Doku anpassen

In der openclaw.json (oder gleichwertigen Projektdatei) sollten Sie Host/Port explizit setzen, sodass ein späteres Update nicht still auf 0.0.0.0 zurückfällt. Das folgende JSON ist ein illustratives Muster – Feldnamen können je nach Version abweichen; entscheidend ist die Idee: fester Loopback-Host, fester Port, Auth gebunden an Umgebungsvariable.

{
  "gateway": {
    "host": "127.0.0.1",
    "port": 18789,
    "auth": { "mode": "bearer", "tokenEnv": "OPENCLAW_GATEWAY_TOKEN" }
  }
}

Rotieren Sie Tokens bei Personenwechsel oder nach Log-Leak sofort; halten Sie getrennte Tokens für Staging und Produktion. Für CI: Secret-Store der Plattform statt Klartext in YAML; in GitHub Actions z. B. verschlüsselte Secrets, niemals echo $TOKEN in Schritten mit Protokollierung. Ergänzend: read-only Mounts für sensible Repos, wenn der Agent nur lesen soll – das begrenzt Schaden bei kompromittiertem Skill-Code.

curl -sS -o /dev/null -w "%{http_code}\n" \
  -H "Authorization: Bearer $OPENCLAW_GATEWAY_TOKEN" \
  http://127.0.0.1:18789/health

Ersetzen Sie Pfad und Headernamen gemäß Ihrer Gateway-API; wichtig ist: lokaler Test vor Öffnung nach außen. Hinter nginx/Caddy: TLS 1.2+, begrenzte Body-Größe und Timeouts.

Outbound-Domain-Whitelist und Proxy-Strategie – Checkliste

Agenten führen ausgehende Aufrufe zu Modell-APIs, Paketregistern und Git-Hosts aus. Ohne Policy kann ein kompromittiertes Skill beliebige Exfiltration starten oder DNS-Tunneling vorbereiten. Zwei Ebenen: Anwendung (erlaubte Basis-URLs in Config, feste Model-Endpoints) und Netz (Firewall / pf / MDM / Host-IPS / egress-proxy). Wer nur die App-Layer absichert, übersieht oft curl in Postinstall-Skripten oder Sidecar-Prozesse.

Proxy-Variablen für npm, Git und Node sollten konsistent und mit Ausnahmen gesetzt sein, damit interne Registry-Hosts nicht versehentlich über den Exit-Node laufen und damit TLS-Inspection nicht doppelt bricht:

export HTTPS_PROXY=http://proxy.firma.local:8080
export NO_PROXY=127.0.0.1,localhost,.internal,registry.internal

Für Node mit eigener CA-Datei in Unternehmensnetzen:

export NODE_EXTRA_CA_CERTS=/etc/ssl/corp-root.pem

Git separat testen, weil es eigene http.proxy-Einstigungen kennt:

git config --global --get http.proxy
GIT_CURL_VERBOSE=1 git ls-remote https://github.com/…

Whitelist-Kern (projektspezifisch erweitern): api.openai.com, api.anthropic.com, registry.npmjs.org, github.com, objects.githubusercontent.com, ggf. huggingface.co, cdn.openai.com (falls Ihr Client Modelle cached) und Ihr eigener Mirror-Host. Alles andere bleibt gesperrt, bis ein Ticket die Freigabe dokumentiert. Für EU-Deployments: prüfen Sie, ob Ihr Anbieter regionale API-Hosts nutzt und tragen Sie diese explizit nach – sonst scheitern Deployments „nur in Frankfurt“.

Auf macOS können Sie mit pf arbeiten (Anchor-Datei, dann pfctl -f). Ein Minimalmuster ist: Standard deny ausgehend für den Gateway-UID-Bereich und pass nur für Whitelist-Ziele – exakte Regeln hängen von IPv4/IPv6, Standard-Gateway und VPN-Split-Tunnel ab; pf vor Produktion in einer Staging-VM validieren. Alternativ: dedizierter Egress-Proxy mit Domain-Policy, den nur der Dienstbenutzer nutzen darf.

sudo pfctl -sr
sudo pfctl -si

Log-Audit, Aufbewahrung und Alarm-Schwellen

Ohne strukturierte Logs sehen Sie weder Brute-Force auf das Token noch plötzliche DNS-Peaks. Unter launchd leiten Sie stdout/stderr in rotierende Dateien; ergänzend log rotate oder newsyslog-Einträge, damit der Datenträger nicht vollläuft, wenn ein Agent in eine Retry-Schleife gerät.

StandardOutPath /var/log/openclaw/gateway.log
StandardErrorPath /var/log/openclaw/gateway.err

Nutzen Sie log show --predicate für kurze Echtzeitanalysen auf dem Host (Zeitfenster anpassen). Der Prozessname kann je nach Startscript variieren – prüfen Sie mit ps aux | grep -i openclaw den tatsächlichen Binary-Namen.

log show --last 30m --predicate 'process == "openclaw"' --style syslog

JSON-Logs mit request_id, client_ip und auth_result erleichtern Aggregation in SIEM oder Managed-Logging.

Schwellen (Startwerte, nach Baseline feinjustieren):

  • Mehr als 20 HTTP 401/403 vom Gateway in 5 Minuten pro Quell-IP → Eskalation.
  • Neue ausgehende TCP-Ziele außerhalb der Whitelist → sofortiger Alert.
  • Speicher- oder CPU-Sprung über gleitenden 15-Minuten-Mittelwert → möglicher Mining- oder Loop-Bug.
  • Plötzlicher Anstieg erfolgreicher 200-Antworten bei gleichbleibendem Team → prüfen auf gestohlenes Token oder neuen unautorisierten Client.

Rohlogs mindestens 14 Tage vorhalten; Request-Bodies vor SIEM-Export redigieren. Bei gemieteten Instanzen: klären, ob Logs bei Reset verloren gehen.

Typische Fehler: Port, TLS und Berechtigungen lokalisieren

Die folgende Tabelle fasst Symptome zusammen, die auf gemieteten Macs besonders oft auftreten, wenn mehrere Dienste dieselbe UID nutzen oder wenn Corporate-TLS das Node-Trust-Store sprengt. Arbeiten Sie von außen nach innen: erst Erreichbarkeit (curl), dann Auth, dann Dateisystem.

Symptom Wahrscheinliche Ursache Diagnose / Fix
EADDRINUSE Port doppelt belegt (alter Prozess, anderer Dienst) lsof -nP -iTCP:18789 -sTCP:LISTEN → PID beenden oder Port in Config ändern
TLS: UNABLE_TO_VERIFY_LEAF_SIGNATURE Firmenproxy oder fehlende Root-CA in Node openssl s_client -connect api.example.com:443 -servername api.example.com; NODE_EXTRA_CA_CERTS setzen
401 trotz Token Falsche Header-Zeile, Leerzeichen, anderes Secret in launchd vs. Shell Env in der LaunchAgent-plist prüfen (plutil -p ~/Library/LaunchAgents/…plist); Token synchronisieren
Operation not permitted (Datei) TCC, falsche UID, SIP-geschützte Pfade Workspace unter ~/openclaw des Dienstusers halten; keine Systemordner
Timeout nur zu Registry-Hosts Proxy falsch, NO_PROXY zu schmal oder DNS-Filter curl -v https://registry.npmjs.org mit/ohne Proxy vergleichen

Zusätzlich: Wenn nur IPv6 zum Zielhost aufgelöst wird, Ihre Firewall aber nur IPv4-Regeln hat, wirkt der Dienst „tot“. Test mit curl -4 vs. curl -6. Bei Docker auf demselben Host (siehe Docker-Artikel) prüfen Sie Published-Ports auf Kollisionen mit dem nativen Gateway-Port.

Go-Live-Sicherheitscheckliste (kurz abhaken)

  1. Gateway nur 127.0.0.1 oder Socket; öffentliche Erreichbarkeit nur mit WAF + IP-Allowlist.
  2. Token per Zufallsgenerator; Rotation dokumentiert; keine Duplikate zwischen Teams.
  3. Outbound-Whitelist aktiv; Ausnahmen ticketgebunden.
  4. launchd-/Docker-Restart-Policy getestet (Stromausfall-Simulation).
  5. Logs mit Schwellen angebunden; Testalarm ausgelöst.
  6. Abhängigkeiten und Skills aus vertrauenswürdigen Quellen; Pinning in Lockfiles.
  7. Backup der openclaw.json und LaunchAgents verschlüsselt; keine Secrets in Klartext-Archiven.
  8. Incident-Playbook: wer rotiert Tokens, wer sperrt IPs, wer Kommunikation mit dem Provider (z. B. MacPull) aufnimmt.

Nach dem Abhaken: ein kurzer Penetrations-Test vom internen Netz (nmap auf den Builder-Port, falscher Bearer) sollte aktiv abgewiesen werden – ohne dass Produktionsdaten tangiert werden.

Sicherheits-FAQ

Warum reicht ein starkes Passwort für das OpenClaw-Gateway nicht?
Weil automatisierte Clients mit statischen Bearer-Tokens arbeiten. Ohne Netzsegmentierung und Rotation ersetzt kein Passwort die Kontrolle über dieses Secret.
Soll das Gateway auf 0.0.0.0 lauschen, wenn nur ein Reverse-Proxy davor steht?
Nur wenn Firewall und Quell-IP-Policy greifen. Sauberer ist Loopback-Bindung und TLS am Proxy – siehe auch unsere Matrix im MCP-Preflight-Artikel.
Welche Domains gehören typischerweise auf die Whitelist?
Modell-APIs, npm/Git-Registry, ggf. Hugging Face und interne Mirrors – nicht „das ganze Internet“.
Wie erkenne ich TLS-Probleme hinter Corporate-Proxy schnell?
openssl s_client und Vergleich der Zertifikatskette; Node mit NODE_EXTRA_CA_CERTS alignen.
Welche Log-Schwellen sind für ein kleines Team sinnvoll?
Start mit Auth-Fehlern pro IP und Zeitfenster, plus Alert bei unbekanntem Egress – dann an die echte Baseline anpassen.

Zusammenfassung: Die produktive OpenClaw-Oberfläche 2025/2026 ist ein Zusammenspiel aus Node-22-Laufzeit, Gateway-Bindung, Bearer-Token-Lebenszyklus, Egress-Policy und auswertbaren Logs. Typische Brüche: 0.0.0.0 ohne Schutz, gleiche Tokens in mehreren Umgebungen, keine Auswertung von Auth-Fehlern. Mit den Befehlen und Checklisten oben reduzieren Sie das Risiko ohne Overhead-Papierkram.

Beschaffung & Betrieb: Ein gemieteter Apple-Silicon-Knoten entlastet Patch- und Netz-Arbeit: Kaufen (Region/Paket), Hilfe (Zugriff/Peering), Startseite (Vergleich). Teams trennen Staging/Produktion per Token, Ports und Logs. Mehr HowTos: Technik-Blog, Deployment, MCP-Preflight, Docker.

Remote-Mac auswählen Hilfe & Netzwerk

Weitere OpenClaw-Artikel: Blog-Übersicht · MacPull Startseite