Skip to content

Security & operational gaps in setup guide (suggested hardening updates) #1

@bobbythelobster

Description

@bobbythelobster

Thanks for publishing this guide — it’s very approachable for first-time users. I found a few gaps that could improve security and reliability for production users.

1) Installer trust model ()

Current guide uses:

�[38;2;255;77;77m�[1m
🦞 OpenClaw Installer
�[0m�[38;2;136;146;176m I can't fix your code taste, but I can fix your build and your backlog.�[0m

�[38;2;0;229;204m✓�[0m Detected: macos

�[38;2;255;77;77m�[1mInstall plan�[0m
�[38;2;90;100;128mOS:�[0m macos
�[38;2;90;100;128mInstall method:�[0m npm
�[38;2;90;100;128mRequested version:�[0m latest
�[38;2;90;100;128m·�[0m Existing OpenClaw installation detected, upgrading

�[38;2;255;77;77m�[1m[1/3] Preparing environment�[0m
�[38;2;0;229;204m✓�[0m Homebrew already installed
�[38;2;0;229;204m✓�[0m Node.js v22.22.0 found
�[38;2;90;100;128m·�[0m Active Node.js: v22.22.0 (/opt/homebrew/bin/node)
�[38;2;90;100;128m·�[0m Active npm: 10.9.4 (/opt/homebrew/bin/npm)

�[38;2;255;77;77m�[1m[2/3] Installing OpenClaw�[0m
�[38;2;0;229;204m✓�[0m Git already installed
�[38;2;90;100;128m·�[0m Installing OpenClaw v2026.3.2
�[38;2;0;229;204m✓�[0m OpenClaw npm package installed
�[38;2;0;229;204m✓�[0m OpenClaw installed

�[38;2;255;77;77m�[1m[3/3] Finalizing setup�[0m
�[38;2;90;100;128m·�[0m Refreshing loaded gateway service
�[38;2;0;229;204m✓�[0m Gateway service metadata refreshed
�[38;2;0;229;204m✓�[0m Gateway service restarted
�[38;2;230;57;70m✗�[0m Probing gateway service failed — re-run with --verbose for details
�[38;2;90;100;128m·�[0m Running doctor to migrate settings
�[38;2;0;229;204m✓�[0m Doctor complete

�[38;2;0;229;204m�[1m🦞 OpenClaw installed successfully (2026.3.2)!�[0m
�[38;2;90;100;128mLeveled up! New skills unlocked. You're welcome.�[0m

�[38;2;90;100;128m·�[0m Upgrade complete
�[38;2;90;100;128m·�[0m Running openclaw doctor
�[38;2;255;176;32m!�[0m Doctor failed; skipping plugin updates
�[38;2;90;100;128m·�[0m Gateway daemon detected; restarting
�[38;2;0;229;204m✓�[0m Gateway restarted

◇ Doctor warnings ────────────────────────────────────────────────────────╮
│ │
│ - channels.telegram.groupPolicy is "allowlist" but groupAllowFrom (and │
│ allowFrom) is empty — all group messages will be silently dropped. │
│ Add sender IDs to channels.telegram.groupAllowFrom or │
│ channels.telegram.allowFrom, or set groupPolicy to "open". │
│ - channels.signal.groupPolicy is "allowlist" but groupAllowFrom (and │
│ allowFrom) is empty — all group messages will be silently dropped. │
│ Add sender IDs to channels.signal.groupAllowFrom or │
│ channels.signal.allowFrom, or set groupPolicy to "open". │
│ - channels.bluebubbles.groupPolicy is "allowlist" but groupAllowFrom │
│ (and allowFrom) is empty — all group messages will be silently │
│ dropped. Add sender IDs to channels.bluebubbles.groupAllowFrom or │
│ channels.bluebubbles.allowFrom, or set groupPolicy to "open". │
│ │
├──────────────────────────────────────────────────────────────────────────╯
Dashboard URL: http://127.0.0.1:18789/#token=7a6e40b3af1b2fa16ce64a814698ebff8ee799be8469d242
Copied to clipboard.
Opened in your browser. Keep that tab to control OpenClaw.

FAQ: �[38;2;136;146;176mhttps://docs.openclaw.ai/start/faq�[0m

Suggested improvement:

  • Add a note about trust implications of piping remote scripts directly to shell.
  • Recommend reviewing the script first or pinning installer source/version where possible.

2) Missing post-install hardening checklist

The guide gets users online quickly, but production hardening is light.

Suggested checklist section after setup:

  • Ensure gateway bind is loopback or VPN-only access
  • Enforce token auth and rotate strong token
  • Keep channel policies as allowlist/pairing (avoid open policies)
  • Restrict tools ( confirmation, deny control-plane tools unless needed)
  • Enable agent sandboxing for non-main sessions

3) Discord permissions & intents could be more explicit

Current OAuth section says to check only scope.

Suggested improvement:

  • Explicitly document minimum required bot permissions
  • Explicitly call out required intents and why (esp. Message Content Intent)
  • Mention role scoping best practices in server settings

4) Channel ID format ambiguity

Guide says wizard may ask for .

Suggested improvement:

  • Add one exact validated example format from a current OpenClaw run to reduce confusion.

5) Operational runbook gaps

Suggested additions:

  • Quick health checks (OpenClaw status

Overview
┌─────────────────┬───────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Item │ Value │
├─────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Dashboard │ http://127.0.0.1:18789/
│ OS │ macos 15.7.3 (arm64) · node 22.22.0 │
│ Tailscale │ off │
│ Channel │ stable (default) │
│ Update │ pnpm · npm latest 2026.3.2 │
│ Gateway │ local · ws://127.0.0.1:18789 (local loopback) · reachable 27ms · auth token · Mac (192.168.2. │
│ │ 104) app 2026.3.2 macos 15.7.3 │
│ Gateway service │ LaunchAgent installed · loaded · running (pid 24547) │
│ Node service │ LaunchAgent not installed │
│ Agents │ 4 · 1 bootstrap file present · sessions 204 · default main active 1m ago │
│ Memory │ 910 files · 6010 chunks · sources memory, sessions · plugin memory-core · vector ready · fts │
│ │ ready · cache on (5174) │
│ Probes │ skipped (use --deep) │
│ Events │ none │
│ Heartbeat │ disabled (main), disabled (edgar), 30m (john-clawmack), disabled (john-mcclawfee) │
│ Sessions │ 204 active · default gpt-5.3-codex (200k ctx) · 4 stores │
└─────────────────┴───────────────────────────────────────────────────────────────────────────────────────────────────┘

Security audit
Summary: 0 critical · 4 warn · 1 info
WARN Reverse proxy headers are not trusted
gateway.bind is loopback and gateway.trustedProxies is empty. If you expose the Control UI through a reverse proxy, configure trusted proxies so local-client c…
Fix: Set gateway.trustedProxies to your proxy IPs or keep the Control UI local-only.
WARN Some configured models are below recommended tiers
Smaller/older models are generally more susceptible to prompt injection and tool misuse. - anthropic/claude-haiku-4-5 (Haiku tier (smaller model)) @ agents.def…
Fix: Use the latest, top-tier model for any bot with tools or untrusted inboxes. Avoid Haiku tiers; prefer GPT-5+ and Claude 4.5+.
WARN Potential multi-user setup detected (personal-assistant model warning)
Heuristic signals indicate this gateway may be reachable by multiple users: - channels.discord.groupPolicy="allowlist" with configured group targets - channels…
Fix: If users may be mutually untrusted, split trust boundaries (separate gateways + credentials, ideally separate OS users/hosts). If you intentionally run shared-user access, set agents.defaults.sandbox.mode="all", keep tools.fs.workspaceOnly=true, deny runtime/fs/web tools unless required, and keep personal/private identities + credentials off that runtime.
WARN Discord slash commands have no allowlists
Discord slash commands are enabled, but neither an owner allowFrom list nor any per-guild/channel users allowlist is configured; /… commands will be rejected f…
Fix: Add your user id to channels.discord.allowFrom (or approve yourself via pairing), or configure channels.discord.guilds..users.
Full report: openclaw security audit
Deep probe: openclaw security audit --deep

Channels
┌─────────────┬─────────┬────────┬────────────────────────────────────────────────────────────────────────────────────┐
│ Channel │ Enabled │ State │ Detail │
├─────────────┼─────────┼────────┼────────────────────────────────────────────────────────────────────────────────────┤
│ Telegram │ ON │ OK │ token config×4 (8550…eP_c · len 46) · accounts 4/4 │
│ Discord │ ON │ OK │ token config×2 (MTQ3…iheA · len 72) · accounts 2/2 │
│ Signal │ ON │ OK │ configured │
│ BlueBubbles │ ON │ OK │ configured │
└─────────────┴─────────┴────────┴────────────────────────────────────────────────────────────────────────────────────┘

Sessions
┌────────────────────────────────────────────┬────────┬─────────┬───────────────────┬─────────────────────────────────┐
│ Key │ Kind │ Age │ Model │ Tokens │
├────────────────────────────────────────────┼────────┼─────────┼───────────────────┼─────────────────────────────────┤
│ agent:main:telegram:direct:3835… │ direct │ 1m ago │ gpt-5.3-codex │ 202k/272k (74%) · 🗄️ 99% cached │
│ agent:main:main │ direct │ 1m ago │ claude-opus-4-6 │ 91k/200k (45%) · 🗄️ 100% cached │
│ agent:edgar:telegram:direct:383… │ direct │ 3m ago │ gpt-5.3-codex │ 29k/272k (11%) · 🗄️ 99% cached │
│ agent:edgar:main │ direct │ 4m ago │ gpt-5.3-codex │ 14k/272k (5%) · 🗄️ 54% cached │
│ agent:main:cron:1fdeeee6-a984-4… │ direct │ 4m ago │ claude-sonnet-4-6 │ 59k/200k (30%) · 🗄️ 391% cached │
│ agent:main:cron:1fdeeee6-a984-4… │ direct │ 4m ago │ claude-sonnet-4-6 │ 59k/200k (30%) · 🗄️ 391% cached │
│ agent:john-clawmack:main │ direct │ 11m ago │ claude-opus-4-6 │ 23k/200k (11%) · 🗄️ 38% cached │
│ agent:edgar:cron:d8293a66-d87f-… │ direct │ 16m ago │ claude-sonnet-4-6 │ 22k/200k (11%) · 🗄️ 944% cached │
│ agent:edgar:cron:d8293a66-d87f-… │ direct │ 16m ago │ claude-sonnet-4-6 │ 22k/200k (11%) · 🗄️ 944% cached │
│ agent:main:cron:1fdeeee6-a984-4… │ direct │ 19m ago │ claude-sonnet-4-6 │ 30k/200k (15%) · 🗄️ 670% cached │
└────────────────────────────────────────────┴────────┴─────────┴───────────────────┴─────────────────────────────────┘

FAQ: https://docs.openclaw.ai/faq
Troubleshooting: https://docs.openclaw.ai/troubleshooting

Next steps:
Need to share? openclaw status --all
Need to debug live? openclaw logs --follow
Need to test channels? openclaw status --deep, service status)

  • Log troubleshooting commands
  • Update path and rollback notes
  • Backup guidance for state/config before major changes

6) Security note for shared/community servers

The warning is good; recommend making this stronger:

  • Include a “least privilege” mini-checklist (bot role, mention gating, allowlists, no broad admin perms)
  • Add reminder to avoid exposing sensitive tools in shared contexts

7) Local install warning can be tightened

Current note says local is possible but not recommended.

Suggested improvement:

  • Add one clear sentence on blast radius (filesystem/shell/tool access) and advise sandboxed/dedicated host for non-experts.

If helpful, I can open a PR with a concrete “QuickStart + Hardening” section that preserves the beginner flow while adding a production-safe baseline.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions