Saltar al contenido principal
Expón el Gateway solo después de poder explicar quién puede acceder a él, cómo se autentica, qué agentes puede activar y qué herramientas pueden usar esos agentes. En caso de duda, vuelve al acceso solo por loopback y ejecuta de nuevo la auditoría.
Este runbook convierte la guía más amplia de Seguridad en una lista de comprobación operativa para acceso remoto y exposición de mensajería.

Elige el patrón de exposición

Prefiere el patrón más limitado que satisfaga el flujo de trabajo.
PatrónRecomendado cuandoControles requeridos
Loopback + túnel SSHUso personal, acceso de administración, depuraciónMantén gateway.bind: "loopback" y crea un túnel a 127.0.0.1:18789
Loopback + Tailscale ServeAcceso de tailnet personal a Control UI/WebSocketMantén el Gateway solo en loopback; las cabeceras de identidad de Tailscale solo autentican la superficie WebSocket de Control UI, no otras rutas de autenticación
Enlace Tailnet/LANRed privada dedicada con dispositivos conocidosAutenticación del Gateway, lista de permitidos del firewall, sin redirección de puerto pública
Proxy inverso de confianzaSSO/OIDC de la organización delante del GatewayAutenticación trusted-proxy, trustedProxies estrictos, reglas para sobrescribir/eliminar cabeceras, usuarios permitidos explícitos
Internet públicaDespliegues raros y de alto riesgoProxy con identidad, TLS, límites de tasa, listas de permitidos estrictas, sesiones no principales aisladas
Evita redirigir puertos públicos directamente al Gateway. Si se requiere acceso público, coloca delante un proxy con identidad y haz que el proxy sea la única ruta de red hacia el Gateway.

Inventario previo

Registra esto antes de cambiar la política de bind, proxy, Tailscale o canal:
  • Host del Gateway, usuario del sistema operativo y directorio de estado (predeterminado ~/.openclaw).
  • URL del Gateway y modo de bind (gateway.bind; puerto predeterminado 18789).
  • Modo de autenticación, origen de token/contraseña u origen de identidad del proxy de confianza.
  • Cada canal habilitado y si acepta mensajes directos, grupos o webhooks.
  • Agentes accesibles desde remitentes no locales.
  • Perfil de herramientas, modo de sandbox y política de herramientas elevadas para cada agente accesible.
  • Credenciales externas disponibles para esos agentes.
  • Ubicación de copia de seguridad de ~/.openclaw/openclaw.json y credenciales.
Si más de una persona puede enviar mensajes al bot, trátalo como autoridad delegada compartida sobre herramientas, no como aislamiento de host por usuario.

Comprobaciones de referencia

Ejecuta esto antes de abrir el acceso:
openclaw doctor
openclaw security audit
openclaw security audit --deep
openclaw health
Resuelve primero los hallazgos críticos. Acepta advertencias solo cuando sean intencionales y estén documentadas para el despliegue. Consulta Comprobaciones de auditoría de seguridad para saber qué significa cada checkId y su clave de corrección. Para la validación remota de CLI, pasa las credenciales explícitamente:
openclaw gateway probe --url ws://127.0.0.1:18789 --token "$OPENCLAW_GATEWAY_TOKEN"
No asumas que las credenciales de la configuración local se aplican a una URL remota explícita.

Base mínima segura

Usa esta forma como punto de partida para despliegues expuestos:
{
  gateway: {
    bind: "loopback",
    auth: {
      mode: "token",
      token: "replace-with-a-long-random-token",
    },
  },
  session: {
    dmScope: "per-channel-peer",
  },
  agents: {
    defaults: {
      sandbox: { mode: "non-main" },
    },
  },
  tools: {
    profile: "messaging",
    exec: { security: "deny", ask: "always" },
    elevated: { enabled: false },
  },
}
Amplía un control a la vez: añade una lista de permitidos específica de canal antes de habilitar herramientas con capacidad de escritura, o habilita un proxy inverso antes de aceptar tráfico remoto de Control UI. tools.exec.security: "deny" bloquea todas las llamadas exec, incluidos diagnósticos benignos. Si se requieren diagnósticos o comandos de bajo riesgo, relaja esto solo después de elegir los remitentes, agentes, comandos y modo de aprobación específicos que coincidan con tu modelo de amenazas.

Exposición de mensajes directos y grupos

Los canales de mensajería son superficies de entrada no confiables. Antes de permitir mensajes directos o grupos:
  • Prefiere dmPolicy: "pairing" o una lista estricta allowFrom en lugar de dmPolicy: "open".
  • No combines listas de permitidos "*" con acceso amplio a herramientas.
  • Requiere menciones en grupos salvo que la sala esté estrictamente controlada.
  • Configura session.dmScope: "per-channel-peer" (o "per-account-channel-peer" para canales con varias cuentas) cuando varias personas puedan enviar mensajes directos al bot, para que las sesiones de mensajes directos no compartan contexto.
  • Enruta los canales compartidos a agentes con herramientas mínimas y sin credenciales personales.
El emparejamiento aprueba al remitente para activar el bot. No convierte a ese remitente en un límite de seguridad de host separado.

Comprobaciones de proxy inverso

Para proxies con identidad:
  • El proxy debe autenticar a los usuarios antes de reenviar al Gateway.
  • El firewall o la política de red debe bloquear el acceso directo al puerto del Gateway.
  • gateway.trustedProxies debe listar solo las IP de origen del proxy.
  • El proxy debe eliminar o sobrescribir las cabeceras de identidad y reenvío proporcionadas por el cliente.
  • Configura gateway.auth.trustedProxy.allowUsers cuando el proxy atienda a más de una audiencia.
  • Usa gateway.auth.trustedProxy.allowLoopback solo para un proxy en el mismo host donde los procesos locales sean confiables y el proxy controle las cabeceras de identidad.
Ejecuta openclaw security audit --deep después de cambios de proxy. Los hallazgos de proxy de confianza son de alta señal porque el proxy se convierte en el límite de autenticación.

Revisión de herramientas y sandbox

Antes de exponer un agente a remitentes remotos:
  • Confirma qué sesiones se ejecutan en el host y cuáles en sandbox.
  • Deniega o exige aprobación para exec en el host.
  • Mantén deshabilitadas las herramientas elevadas salvo que un remitente específico y confiable las necesite.
  • Evita herramientas de navegador, canvas, node, cron, gateway y generación de sesiones para superficies de mensajería abiertas o semiabiertas.
  • Mantén limitados los montajes bind; evita credenciales, directorios personales, socket de Docker y rutas del sistema.
  • Usa gateways, usuarios del sistema operativo u hosts separados para límites de confianza materialmente distintos.
Si los usuarios remotos no son plenamente confiables, el aislamiento debe venir de despliegues separados, no solo de prompts o etiquetas de sesión.

Validación posterior al cambio

Después de cada cambio de exposición:
  1. Ejecuta de nuevo openclaw security audit --deep.
  2. Confirma que una conexión autorizada correcta tenga éxito.
  3. Confirma que se deniegue un remitente o una sesión de navegador no autorizados.
  4. Confirma que los registros oculten los secretos.
  5. Confirma que el enrutamiento de mensajes directos/grupos llegue solo al agente previsto.
  6. Confirma que las herramientas de alto impacto pidan aprobación o sean denegadas.
  7. Documenta las advertencias residuales aceptadas.
No pases al siguiente cambio de exposición hasta que el actual se entienda.

Plan de reversión

Si el Gateway puede estar sobreexpuesto:
{
  gateway: {
    bind: "loopback",
  },
  channels: {
    whatsapp: { dmPolicy: "disabled" },
    telegram: { dmPolicy: "disabled" },
    discord: { dmPolicy: "disabled" },
    slack: { dmPolicy: "disabled" },
  },
  tools: {
    exec: { security: "deny", ask: "always" },
    elevated: { enabled: false },
  },
}
Luego:
  1. Detén el reenvío público, Tailscale Funnel o las rutas de proxy inverso.
  2. Rota los tokens/contraseñas del Gateway y las credenciales de integración afectadas.
  3. Elimina "*" y remitentes inesperados de las listas de permitidos.
  4. Revisa los registros de auditoría recientes, el historial de ejecuciones, las llamadas de herramientas y los cambios de configuración.
  5. Ejecuta de nuevo openclaw security audit --deep.
  6. Vuelve a habilitar el acceso con el patrón más limitado que satisfaga el flujo de trabajo.

Lista de comprobación de revisión

  • El Gateway permanece solo en loopback salvo que haya una razón documentada.
  • El acceso no loopback tiene autenticación, firewall y ninguna ruta pública directa.
  • Los despliegues con proxy de confianza tienen IP de proxy estrictas y controles de cabeceras.
  • Los mensajes directos usan emparejamiento o listas de permitidos, no acceso abierto de forma predeterminada.
  • Los grupos requieren menciones o listas de permitidos explícitas.
  • Los canales compartidos no llegan a credenciales personales.
  • Las sesiones no principales se ejecutan en modo sandbox.
  • El exec en host y las herramientas elevadas están denegados o protegidos por aprobación.
  • Los registros ocultan secretos.
  • Los hallazgos críticos de auditoría están resueltos.
  • Los pasos de reversión están probados y documentados.