OpenClaw veilig draaien op een VPS
Voorkom risico's zoals CVE-2026-32922. Leer hoe u OpenClaw veilig configureert op een VPS met een unprivileged user, firewall en strikte systemd settings.
Wat OpenClaw is, en waarom u het eerst moet harden
OpenClaw is een zelfgehoste AI-agent. U draait het op uw eigen server, koppelt het aan een large language model, en het kan shell-commando's uitvoeren, een browser besturen, uw bestanden lezen en schrijven, en acties uitvoeren op basis van berichten die u via chat-apps stuurt. Die reikwijdte is het hoofddoel van de tool, maar vormt ook het volledige risico. Een agent die elke opdracht kan uitvoeren, is slechts zo veilig als de machine waarop hij draait en de beperkingen die u instelt.
Twee feiten bepalen de insteek van deze handleiding. Ten eerste is OpenClaw ontworpen om door u te worden gehard. Het beveiligingsmodel legt de verantwoordelijkheid voor strikte tool-policies, sandboxing en zorgvuldige permissies bij de operator, niet bij een veilige standaardinstelling. Ten tweede heeft het project al een ernstig beveiligingsincident gehad: in maart 2026 werden binnen vier dagen negen beveiligingsproblemen bekendgemaakt, waaronder een kritiek privilege-escalatie lek, CVE-2026-32922, met een score van 9.9 op 10. Geen van beide feiten betekent dat u OpenClaw moet vermijden. Het betekent dat u het niet op de luie manier moet draaien; deze handleiding is de zorgvuldige manier.
Er is ook goed nieuws. OpenClaw maakt al één veilige keuze voor u: de gateway, het enkele proces dat alles bestuurt, luistert standaard naar het loopback-adres, waardoor het niet bereikbaar is via het internet, tenzij u er actief voor kiest om het te exposeren. Het meeste werk hieronder bestaat uit het behouden van die status en het beperken van de impact als er iets misgaat.
Geef OpenClaw een eigen onbevoegde gebruiker
Draai een agent nooit als root. Als OpenClaw als root draait en er gaat iets mis, of het nu een bug is, een foutieve instructie of een CVE zoals hierboven beschreven, dan is de schade onbeperkt. Maak een dedicated systeemgebruiker aan zonder login-shell en zonder sudo, en draai de agent als die gebruiker:
sudo useradd --system --home /opt/openclaw --shell /usr/sbin/nologin openclawAlles wat OpenClaw bezit, bevindt zich onder /opt/openclaw, eigendom van dat account. Dit is de belangrijkste stap, en het is hetzelfde principe als beschreven in het draaien van services als een onbevoegde gebruiker: het account waaronder een agent draait, vormt de limiet van wat hij kan beschadigen.
Installeer OpenClaw
OpenClaw wordt gedistribueerd als een npm-package; installeer daarom eerst Node.js als de server dit nog niet heeft. Installeer het package globaal, wat de openclaw binary op de PATH zet voor elke gebruiker, en voer daarna de eenmalige onboarding-stap uit:
sudo npm install -g openclaw@latest
sudo -u openclaw openclaw onboardHet uitvoeren van onboarding als de openclaw gebruiker betekent dat de configuratie van de agent in zijn eigen home-directory /opt/openclaw terechtkomt, en niet in die van root. Het project biedt ook een curl -fsSL https://openclaw.ai/install.sh | bash installer die dezelfde installatie in één regel uitvoert. Sla de --install-daemon flag over tijdens de onboarding: deze zou de eigen service van OpenClaw registreren, terwijl de hardened systemd unit die u hieronder bouwt strenger is.
Houd de gateway op loopback, achter een firewall
De gateway bindt standaard aan 127.0.0.1. Laat dit zo staan. Er is bijna nooit een reden om deze poort op het internet te publiceren; hiermee geeft u iedereen die de poort vindt een remote foothold in een proces dat commando's uitvoert.
Plaats een default-deny firewall voor de machine zodat er niets per ongeluk wordt geëxposeerd:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enableTwee valstrikken om hier te vermijden. Een firewall die alleen IPv4 dekt, kan dezelfde service volledig openzetten op IPv6, wat precies de IPv6 firewall gap is waar veel mensen de fout in gaan. En als u de gateway vanaf uw laptop wilt bereiken, open dan niet de poort. Bereik deze via een VPN of een SSH-tunnel, zodat de agent nooit luistert op het openbare internet.
Isoleer de secrets
OpenClaw heeft een API-key nodig voor het taalmodel waarmee u het koppelt. Die sleutel kan uw geld uitgeven en, via de agent, handelen namens u; behandel deze daarom als een wachtwoord. Houd de sleutel buiten het unit-file en buiten elk repository. Plaats de sleutel in een bestand dat alleen de OpenClaw-gebruiker kan lezen:
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 keyDe systemd unit laadt dat bestand met EnvironmentFile, zodat de sleutel het proces bereikt zonder ooit in een command line, een log of uw shell-history te staan.
Draai het als een hardened systemd service
Het draaien van de agent onder systemd biedt automatische herstarts, schone logs via journalctl en, het belangrijkste, een reeks kernel-level sandboxing opties die beperken wat het proces kan aanraken, zelfs als het gecompromitteerd is. De opties die het meest relevant zijn voor een agent zijn NoNewPrivileges zodat de agent nooit nieuwe rechten krijgt, ProtectSystem=strict zodat het bestandssysteem read-only is behalve waar u schrijfrechten toestaat, PrivateTmp voor de eigen geïsoleerde tijdelijke directory, en ProtectHome zodat de agent geen home-directories kan lezen.
Genereer hier een volledige, hardened unit, en kopieer deze naar /etc/systemd/system/openclaw.service:
De unit start openclaw gateway, het langlopende proces dat de agent bestuurt; als which openclaw een ander pad op uw server aangeeft, pas dan ExecStart aan om dit te matchen. De volledige uitleg van deze directives, en van daemon-reload en enable --now, vindt u in het draaien van een programma als een systemd service. De korte versie nadat u de unit heeft geplakt:
sudo systemctl daemon-reload
sudo systemctl enable --now openclawHard de voordeur ook
Een agent-machine is slechts zo veilig als de server eromheen. Twee extra lagen voltooien de taak. Verplaats SSH naar key-only authenticatie en schakel root-login uit, zoals in SSH hardening op een VPS, zodat het account waarmee u de machine beheert niet via brute-force kan worden gekraakt. Voeg daarna Fail2ban toe om scanners te verwijderen die elke publieke poort bestormen. Geen van beide raakt OpenClaw direct, maar beide blokkeren de routes die een aanvaller zou gebruiken om het te bereiken.
Houd het doelbewust up-to-date
De bekendmakingen van maart 2026 zijn het duidelijkste argument voor het blijven bij de nieuwste versies. Een privilege-escalatie bug in een agent is veel serieuzer dan in een gewone web-app, omdat de agent al commando's uitvoert. Houd de releases van het project in de gaten, pas beveiligingsupdates snel toe en behandel een OpenClaw upgrade als routineonderhoud in plaats van iets dat uitgesteld kan worden.
Om te begrijpen wat u daadwerkelijk aan het harden bent, legt de architectuur van een OpenClaw-stijl agent de werking van de onderdelen uit, en het bouwen van uw eigen AI agent op een VPS behandelt de algemene vorm die elke agent aanneemt.
FAQ
Is het veilig om OpenClaw op een publieke VPS te draaien?
Dat kan, mits u het hardt. OpenClaw is krachtig door ontwerp: het voert shell-commando's uit en bestuurt een browser, dus een onvoorzichtige configuratie is echt gevaarlijk, en het project heeft al een kritieke CVE gehad (CVE-2026-32922 in maart 2026). Het beveiligingsmodel verwacht dat u, de operator, de beperkingen toevoegt. Draai het als een onbevoegde gebruiker, houd de gateway op loopback achter een default-deny firewall, isoleer de API-keys en draai het als een hardened systemd service.
Moet ik de OpenClaw gateway exposeren naar het internet?
Nee. De gateway bindt standaard aan loopback, en u moet dat zo laten. Het is het enige proces dat de agent bestuurt, dus een geëxposeerde gateway is een remote pad naar iets dat commando's uitvoert. Als u het op afstand wilt bereiken, gebruik dan een VPN of een SSH-tunnel in plaats van de poort te openen.
Als welke gebruiker moet OpenClaw draaien?
Een dedicated systeemgebruiker zonder login-shell en zonder sudo, nooit root. Als de agent wordt gecompromitteerd, vormt het gebruikersaccount de limiet van de schade; dat account moet dus alleen de eigen bestanden bezitten onder een directory zoals /opt/openclaw en verder niets.
Hoe houd ik de API-keys van OpenClaw veilig?
Sla ze op in een bestand dat alleen door de OpenClaw-gebruiker gelezen kan worden (mode 600) en laad dit in de service met systemd's EnvironmentFile. Houd de sleutel buiten het unit-file, buiten uw shell-history en buiten elk git-repository. Roteer de sleutel als u vermoedt dat deze gelekt is.