Paano Ligtas Patakbuhin ang OpenClaw sa VPS
Alamin kung paano i-harden ang OpenClaw sa VPS gamit ang unprivileged user, firewall, secrets, at systemd, matapos ang 9 na security issue sa loob ng 4 na araw.
Ano ang OpenClaw, at bakit kailangan mo itong i-harden muna
Ang OpenClaw ay isang self-hosted AI agent. Pinapatakbo mo ito sa sarili mong server, kinokonekta sa isang large language model, at maaari itong magpatakbo ng shell commands, mag-control ng browser, magbasa at magsulat ng mga file, at kumilos batay sa mga mensaheng ipinapadala mo rito mula sa chat apps. Ang saklaw na ito ang buong layunin ng tool, at ito rin ang buong panganib. Ang isang agent na maaaring magpatakbo ng anumang command ay kasingligtas lamang ng server na pinapatakboan nito at ng mga limitasyong itinakda mo rito.
Dalawang katotohanan ang nagtatakda ng direksiyon ng gabay na ito. Una, idinisenyo ang OpenClaw upang ikaw ang mag-harden nito. Inilalagay ng security model nito sa operator ang responsibilidad para sa mahigpit na tool policies, sandboxing, at maingat na permissions, sa halip na umasa sa ligtas na default. Ikalawa, nagkaroon na ang project ng seryosong security event: noong March 2026, siyam na security issue ang ibinunyag sa loob ng apat na araw, kabilang ang isang critical privilege-escalation flaw na CVE-2026-32922 at may rating na 9.9 sa 10. Hindi ibig sabihin ng alinman sa dalawang katotohanang ito na dapat mong iwasan ang OpenClaw. Ibig sabihin, hindi mo ito dapat patakbuhin sa pinakamadaling paraan, at ang gabay na ito ang maingat na paraan. Bahagi ng maingat na paraan ang maagang pagpapasya kung gaano karami ang maaaring gawin ng agent nang hindi nagtatanong, isang pagpiling malinaw na ipinapakita ng Claude Code sa permission modes nito, kung saan ang server na hindi mo direktang binabantayan ay dapat magkaroon ng mas mahigpit na setting kaysa sa laptop na mino-monitor mo.
May magandang balita rin. May isang ligtas nang pagpipilian ang OpenClaw para sa iyo: ang gateway nito, ang nag-iisang process na kumokontrol sa lahat, ay nakikinig sa loopback address bilang default. Dahil dito, hindi ito maaabot mula sa internet maliban kung sadya mo itong i-expose. Karamihan ng gawain sa ibaba ay ang pagpapanatili nito sa ganitong configuration at ang paglilimita sa blast radius kung may magkaproblema.
Bigyan ang OpenClaw ng sariling unprivileged user
Huwag kailanman magpatakbo ng agent bilang root. Kung tumatakbo ang OpenClaw bilang root at may mangyaring mali, bug man ito, maling instruction, o CVE gaya ng nasa itaas, walang limitasyon ang maaaring maging pinsala. Gumawa ng dedikadong system user na walang login shell at walang sudo, at patakbuhin ang agent bilang user na iyon:
sudo useradd --system --home /opt/openclaw --shell /usr/sbin/nologin openclawLahat ng pagmamay-ari ng OpenClaw ay nasa ilalim ng /opt/openclaw at pagmamay-ari ng account na iyon. Ito ang pinakamahalagang hakbang, at ito rin ang prinsipyong saklaw sa pagpapatakbo ng mga serbisyo bilang unprivileged user: ang account na ginagamit ng agent ang nagtatakda ng pinakamalaking pinsalang maaari nitong idulot.
I-install ang OpenClaw
Ibinabahagi ang OpenClaw bilang npm package, kaya i-install muna ang Node.js kung wala ito sa server. I-install ang package nang global para mailagay ang openclaw binary sa PATH ng bawat user, pagkatapos ay patakbuhin ang onboarding step na isang beses lang kailangan:
sudo npm install -g openclaw@latest
sudo -u openclaw openclaw onboardKapag onboarding ang pinatakbo bilang user na openclaw, mapupunta ang configuration ng agent sa home directory nito, /opt/openclaw, at hindi sa root's. Nag-aalok din ang proyekto ng curl -fsSL https://openclaw.ai/install.sh | bash installer na nagsasagawa ng parehong installation sa isang command. Huwag gamitin ang --install-daemon flag sa onboarding. Ire-register nito ang sariling service ng OpenClaw, samantalang mas mahigpit ang hardened systemd unit na gagawin mo sa ibaba.
Panatilihin ang gateway sa loopback, sa likod ng firewall
Naka-bind ang gateway sa 127.0.0.1 bilang default. Iwanan ito roon. Halos wala kailanman dahilan para i-publish ang port na iyon sa internet. Kapag ginawa mo ito, binibigyan mo ang sinumang makahanap nito ng remote foothold sa isang process na nagpapatakbo ng mga command.
Maglagay ng default-deny firewall sa harap ng server upang walang aksidenteng ma-expose:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enableMay dalawang trap na dapat iwasan dito. Ang firewall na IPv4 lamang ang saklaw ay maaaring mag-iwan sa parehong serbisyo na bukas na bukas sa IPv6. Ito mismo ang gap sa IPv6 firewall na madalas nakakalito sa maraming tao. Kung kailangan mong ma-access ang gateway mula sa laptop, huwag buksan ang port. I-access ito sa pamamagitan ng VPN o SSH tunnel upang hindi kailanman makinig ang agent sa bukas na internet.
Ihiwalay ang mga secret nito
Kailangan ng OpenClaw ng API key para sa language model na ikokonekta mo rito. Maaaring gamitin ng key na ito ang pera mo at, sa pamamagitan ng agent, kumilos para sa iyo, kaya ituring itong parang password. Huwag itong ilagay sa unit file o sa anumang repository. Ilagay ito sa file na ang OpenClaw user lamang ang makakabasa:
sudo install -o openclaw -g openclaw -m 600 /dev/null /opt/openclaw/openclaw.env
sudoedit /opt/openclaw/openclaw.env # add ANTHROPIC_API_KEY=... or your model provider's keyIlo-load ng systemd unit ang file na iyon gamit ang EnvironmentFile, kaya nakakarating ang key sa process nang hindi kailanman nalalagay sa command line, log, o shell history. Nalalapat ang paraang ito sa lahat ng secret sa server: ang hardening pass sa self-hosted Vaultwarden ay nakatuon sa admin token at backup file nito, hindi sa encryption nito, dahil ang file permissions ang aktuwal na nagtatakda kung sino ang makakabasa ng secret habang naka-store ito.
Patakbuhin ito bilang hardened systemd service
Ang pagpapatakbo ng agent sa ilalim ng systemd ay nagbibigay ng automatic restart, malinis na logs sa pamamagitan ng journalctl, at higit sa lahat, mga kernel-level sandboxing option na naglilimita sa maaaring ma-access ng process kahit ma-breach ito. Para sa agent, pinakamahalaga ang NoNewPrivileges upang hindi ito kailanman makakuha ng bagong privilege, ProtectSystem=strict upang read-only ang filesystem maliban sa mga lokasyong pinapayagan mong sulatan, PrivateTmp para sa sarili nitong isolated temporary directory, at ProtectHome upang hindi nito mabasa ang mga home directory.
Bumuo ng kumpletong hardened unit dito, pagkatapos ay kopyahin ito sa /etc/systemd/system/openclaw.service:
Sinisimulan ng unit ang openclaw gateway, ang long-running process na kumokontrol sa agent. Kung ibang path ang ipinapakita ng which openclaw sa server mo, baguhin ang ExecStart upang tumugma rito. Nasa pagpapatakbo ng program bilang systemd service ang kumpletong paliwanag sa mga directive na ito, pati sa daemon-reload at enable --now. Ito ang maikling bersyon kapag na-paste mo na ang unit:
sudo systemctl daemon-reload
sudo systemctl enable --now openclawPatibayin din ang front door
Kasing-ligtas lamang ng server na kinalalagyan nito ang isang agent box. Dalawa pang layer ang kailangan upang makumpleto ang proteksiyon. Ilipat ang SSH sa key-only authentication at huwag paganahin ang root login, gaya ng nasa Pagpapatibay ng SSH sa isang VPS, upang hindi ma-brute-force ang account na ginagamit mo sa pag-administer ng box. Pagkatapos, idagdag ang Fail2ban upang paalisin ang mga scanner na paulit-ulit na umaatake sa bawat public port. Walang direktang binabago ang alinman sa mga ito sa OpenClaw, ngunit parehong hinaharangan ng mga ito ang mga rutang gagamitin ng attacker upang maabot ito.
Panatilihin itong updated, nang sinasadya
Ang mga disclosure noong March 2026 ang pinakamalinaw na dahilan para manatiling updated. Mas seryoso ang privilege-escalation bug sa isang agent kaysa sa ordinaryong web app dahil nagpapatakbo na ng commands ang agent. Subaybayan ang releases ng proyekto, mabilis na ilapat ang security updates, at ituring ang OpenClaw upgrade bilang regular na maintenance sa halip na ipagpaliban ito.
Para maunawaan kung ano talaga ang iyong hina-hardening, inilalarawan sa architecture ng isang OpenClaw-style agent ang mga bahaging gumagalaw, habang tinatalakay sa pagbuo ng sarili mong AI agent sa isang VPS ang pangkalahatang anyo ng anumang agent. Kung magpapatakbo ka ng pangalawang agent kasabay nito, tandaan na maaaring magpasa ng trabaho sa isa’t isa ang dalawang Claude Code session sa isang VPS, kaya kailangan ng bawat isa ng sarili nitong account at sariling limits sa halip na gamitin ang sa iyo.
FAQ
Ligtas bang patakbuhin ang OpenClaw sa isang public VPS?
Maaari, kung patitibayin mo ang seguridad nito. Makapangyarihan ang OpenClaw ayon sa disenyo nito: nagpapatakbo ito ng shell commands at kumokontrol ng browser, kaya tunay na mapanganib ang pabaya o maling setup. Nagkaroon na rin ang proyekto ng critical CVE (CVE-2026-32922 noong March 2026). Inaasahan ng security model nito na ikaw, bilang operator, ang magdagdag ng mga limitasyon. Patakbuhin ito bilang unprivileged user, panatilihin ang gateway nito sa loopback sa likod ng default-deny firewall, ihiwalay ang mga API key nito, at patakbuhin ito bilang hardened systemd service.
Dapat ko bang ilantad sa internet ang OpenClaw gateway?
Hindi. Naka-bind ang gateway sa loopback bilang default, at dapat mo itong iwan doon. Ito ang nag-iisang process na kumokontrol sa agent, kaya ang exposed gateway ay remote path papunta sa isang programang nagpapatakbo ng commands. Kung kailangan mo itong ma-access nang remote, gumamit ng VPN o SSH tunnel sa halip na buksan ang port.
Anong user ang dapat gamitin ng OpenClaw?
Isang dedicated system user na walang login shell at walang sudo; huwag kailanman gumamit ng root. Kung ma-compromise ang agent, ang user account nito ang nagtatakda ng pinakamalaking posibleng pinsala. Kaya dapat ang account na iyon ang magmay-ari lamang ng sarili nitong files sa ilalim ng directory gaya ng /opt/openclaw, at ng wala nang iba.
Paano ko mapananatiling secure ang mga API key ng OpenClaw?
I-store ang mga ito sa file na OpenClaw user lamang ang maaaring magbasa (mode 600), at i-load ito sa service gamit ang systemd's EnvironmentFile. Huwag ilagay ang key sa unit file, shell history, o anumang git repository. I-rotate ito kung may hinala kang na-leak ito.