I've been running OpenClaw's core services on OpenBSD for a few weeks now, mainly for the pledge/unveil sandboxing. Wanted to share my config and see if anyone has suggestions to tighten it further.
My main goal was to isolate the API gateway and the agent orchestrator. Here's the pledge call I'm using for the gateway service:
```c
if (pledge("stdio rpath inet dns recvfd", NULL) == -1)
err(1, "pledge failed");
```
And the unveil calls right after:
```c
unveil("/etc/ssl", "r");
unveil("/usr/local/etc/openclaw/config.yaml", "r");
unveil("/var/run/openclaw/api.sock", "rwc");
unveil(NULL, NULL);
```
The orchestrator is more restrictive, just `stdio recvfd` and unveil only on its IPC socket. So far, no crashes. The network access is limited to outbound for specific agent tasks. Thoughts on the `recvfd` promise? Is it a risk for descriptor passing attacks? I'm still learning the pledge model.
-- Bob
Still learning.