openclaw-secure-linux-cloud
$
npx mdskill add xixu-me/skills/openclaw-secure-linux-cloudHarden OpenClaw on cloud servers with secure deployment defaults.
- Secures remote Linux hosts via loopback binding and SSH tunnels.
- Integrates Podman, Tailscale, and token authentication protocols.
- Prioritizes sandboxing and narrow tool profiles by default.
- Delivers hardened configurations through command matrices and checklists.
SKILL.md
.github/skills/openclaw-secure-linux-cloudView on GitHub ↗
--- name: openclaw-secure-linux-cloud description: Use when self-hosting OpenClaw on a cloud server, hardening a remote OpenClaw gateway, choosing between SSH tunneling, Tailscale, or reverse-proxy exposure, or reviewing Podman, pairing, sandboxing, token auth, and tool-permission defaults for a secure personal deployment. --- ## Overview Use this skill for the conservative "deploy first, expose later" pattern for OpenClaw on a cloud server. Default to a private control plane: - Harden the Linux host before exposing anything. - Keep the gateway bound to `127.0.0.1`. - Reach the Control UI through an SSH tunnel first. - Keep token authentication, pairing, and sandboxing enabled. - Start with a narrow tool profile and loosen only with an explicit need. This skill is for secure Linux cloud hosting. If the user only wants the fastest generic OpenClaw install on a local machine, prefer the official OpenClaw onboarding docs instead of forcing this flow. Open [`references/REFERENCE.md`](./references/REFERENCE.md) when you need the command matrix, baseline config shape, checklist, or access-path comparison. ## When To Use Use this skill when the user mentions any of the following: - OpenClaw on a cloud server, VM, or other Linux host - Secure self-hosting, hardening, or "run it privately" - Podman, loopback binding, SSH tunneling, or remote Control UI access - Tailscale vs reverse proxy for OpenClaw - Pairing, sandboxing, token auth, or locked-down tool permissions - Reviewing whether an existing OpenClaw host is too exposed Do not use this skill for: - General Linux hardening with no OpenClaw component - Local single-machine onboarding where remote access is irrelevant - Pure local onboarding with no remote-host hardening questions - Non-Linux hosting unless the user explicitly wants this Linux-first pattern adapted ## Workflow ### 1. Classify the request Put the task in one of these buckets before giving detailed guidance: 1. **Fresh deploy**: the user wants to stand up OpenClaw securely on a Linux cloud host from scratch. 2. **Hardening review**: the user already has OpenClaw running and wants to reduce exposure or audit risky defaults. 3. **Access-model decision**: the user is choosing between SSH tunneling, Tailscale, or a reverse proxy. ### 2. Start from the secure baseline Unless the user clearly asks for something else, recommend this baseline: - Harden the Linux host first: updates, SSH keys, SSH lock-down, and a default-deny inbound firewall matched to the distro. - Run OpenClaw under rootless Podman rather than as a root-owned long-lived process. - Keep the gateway on loopback only. - Keep the Control UI private and access it through an SSH tunnel. - Require token authentication. - Keep pairing enabled for inbound messaging channels. - Start with a minimal tool set and sandbox sessions by default. Treat these as explicit red flags: - Binding the gateway to `0.0.0.0` - Opening port `18789` to the public internet - Turning on broad runtime, filesystem, automation, or browser access by default - Leaving `~/.openclaw` readable by other local users ### 3. Separate local and server actions Always distinguish between: - **Local machine actions**: SSH key generation, tunnel setup, browser access - **Server actions**: Linux hardening, Podman install path, OpenClaw service setup, config permissions, service restarts Do not blur the two execution contexts together. The user should be able to tell which commands run on their laptop and which run on the Linux host. ### 4. Ask only for blocking facts Only stop for missing facts that change the safe path, such as: - Linux distro and host access details when package-manager or firewall commands matter - Whether OpenClaw is already installed - Whether the user truly needs repeated remote private access or public access - Whether an existing deployment is already reachable from the internet If a detail is not safety-critical, make the reasonable secure assumption and state it. ### 5. Use the access escalation ladder Recommend remote access in this order: 1. **SSH tunnel**: default for first deployment and personal use 2. **Tailscale**: next step when the user needs repeated private access across trusted devices 3. **Reverse proxy**: only when the user explicitly needs public exposure and accepts the extra hardening burden If the user asks for Tailscale or reverse proxy, still explain why the loopback binding and private-first model remain the baseline. ## Output Expectations For a fresh deployment, provide: - A short architecture summary - Local-vs-server steps - A conservative config baseline - A pre-launch checklist - A short "what not to expose" warning For a hardening review, provide: - The likely risks in the current setup - A prioritized remediation sequence - Any immediate exposure concerns to fix before anything else For an access-path decision, provide: - A recommendation - Why it is the lowest-risk fit - What extra safeguards are required if the user chooses a broader exposure model ## Common Mistakes - Treating OpenClaw like a normal public web app on day one - Assuming auth alone replaces network boundaries - Turning on more tool power before the user has a clear workflow that needs it - Disabling pairing just to save time during early setup - Skipping follow-up audits after changing config or sandbox settings ## Reference Usage Use [`references/REFERENCE.md`](./references/REFERENCE.md) when you need: - The cross-distro hardening flow and Debian/Ubuntu example commands - The Podman-based OpenClaw setup outline - The baseline config skeleton - The pre-launch checklist - The day-to-day audit commands - The SSH tunnel vs Tailscale vs reverse-proxy comparison
More from xixu-me/skills
- develop-userscriptsUse when building, debugging, packaging, or publishing browser userscripts for Tampermonkey or ScriptCat, including GM APIs, metadata blocks, permission issues, @match/@grant/@connect setup, ScriptCat background or scheduled scripts, UserConfig blocks, or subscription workflows.
- github-actions-docsUse when users ask how to write, explain, customize, migrate, secure, or troubleshoot GitHub Actions workflows, workflow syntax, triggers, matrices, runners, reusable workflows, artifacts, caching, secrets, OIDC, deployments, custom actions, or Actions Runner Controller, especially when they need official GitHub documentation, exact links, or docs-grounded YAML guidance.
- opensource-guide-coachUse when a user wants guidance on starting, contributing to, growing, governing, funding, securing, or sustaining an open source project, or asks about contributor onboarding, community health, maintainer burnout, code of conduct, metrics, legal basics, or open source project adoption.
- readme-i18nUse when the user wants to translate a repository README, make a repo multilingual, localize docs, add a language switcher, internationalize the README, or update localized README variants in a GitHub-style repository.
- running-claude-code-via-litellm-copilotUse when routing Claude Code through a local LiteLLM proxy to GitHub Copilot, reducing direct Anthropic spend, configuring ANTHROPIC_BASE_URL or ANTHROPIC_MODEL overrides, or troubleshooting Copilot proxy setup failures such as model-not-found, no localhost traffic, or GitHub 401/403 auth errors.
- secure-linux-web-hostingUse when setting up, hardening, or reviewing a cloud server for self-hosting, including DNS, SSH, firewalls, Nginx, static-site hosting, reverse-proxying an app, HTTPS with Let's Encrypt or ACME clients, safe HTTP-to-HTTPS redirects, or optional post-launch network tuning such as BBR.
- skills-cliUse when users ask to discover, install, list, check, update, remove, back up, restore, sync, or initialize Agent Skills, mention `bunx skills`, `npx skills`, `skills.sh`, or `skills-lock.json`, ask "find a skill for X", or want help extending agent capabilities with installable skills.
- tzstUse when the user needs to create, extract, flatten, list, test, install, script, or troubleshoot `tzst` CLI workflows for `.tzst` or `.tar.zst` archives, including compression levels, streaming mode, extraction filters, conflict resolution, JSON output, or standalone binary setup, even if they describe the archive task without naming `tzst`.
- use-my-browserUse when work depends on the user's live browser session or visible rendered state rather than static fetches, especially for browser debugging contexts or DevTools-selected elements or requests, logged-in dashboards or CMS flows, localhost apps, forms, uploads, downloads, media inspection, DOM or iframe inspection, Shadow DOM, or browser failures that look like soft 404s, auth walls, anti-bot checks, or rate limits.
- xdropUse this skill when the user wants to send or fetch files through an Xdrop server from the terminal, asks to automate encrypted Xdrop share-link workflows, provides an Xdrop `/t/:transferId#k=...` link to download and decrypt locally, or needs Xdrop CLI flags such as `--quiet`, `--json`, `--expires-in`, `--output`, or `--api-url`, even if they do not explicitly mention the skill name.