OpenClaw
Seguridad10 min de lectura

Como Acceder a OpenClaw de Forma Remota y Segura

Aprende como exponer de forma segura tu gateway de OpenClaw para acceso remoto usando tuneles SSH, proxies inversos y VPNs mientras mantienes la seguridad.

O

OpenClaw Guides

Tutorial Authors

Por Que Acceso Remoto?

Por defecto, OpenClaw se vincula a 127.0.0.1 (solo localhost), que es la configuracion mas segura. Sin embargo, podrias necesitar acceso remoto cuando:

  • Ejecutas OpenClaw en un servidor domestico mientras viajas
  • Alojas en un VPS y te conectas desde multiples dispositivos
  • Compartes tu asistente de IA a traves de tu red local

Advertencia: Nunca expongas OpenClaw directamente a internet sin autenticacion y encriptacion adecuadas. Esta guia cubre solo metodos seguros.

Metodo 1: Tunel SSH (Recomendado para Uso Personal)

El tunelado SSH es el metodo mas simple y seguro para acceso remoto personal.

En Tu Servidor Remoto

Asegurate de que OpenClaw este corriendo en localhost:

bash
openclaw gateway start
# Gateway escuchando en http://127.0.0.1:18789

En Tu Maquina Local

Crea un tunel SSH:

bash
ssh -L 18789:localhost:18789 usuario@ip-de-tu-servidor

Ahora puedes acceder a OpenClaw en http://localhost:18789 en tu maquina local.

Tunel SSH Persistente con autossh

Para un tunel que se reconecta automaticamente:

bash
# Instalar autossh
# macOS
brew install autossh

# Ubuntu/Debian
sudo apt install autossh

# Crear tunel persistente
autossh -M 0 -f -N -L 18789:localhost:18789 usuario@ip-de-tu-servidor

Metodo 2: Proxy Inverso con Nginx

Para configuraciones mas avanzadas, usa Nginx como proxy inverso con terminacion SSL.

Instala Nginx y Certbot

bash
# Ubuntu/Debian
sudo apt update
sudo apt install nginx certbot python3-certbot-nginx

Configura Nginx

Crea /etc/nginx/sites-available/openclaw:

nginx
server {
    listen 80;
    server_name openclaw.tudominio.com;

    location / {
        proxy_pass http://127.0.0.1:18789;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_cache_bypass $http_upgrade;
    }
}

Habilita el sitio:

bash
sudo ln -s /etc/nginx/sites-available/openclaw /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Agrega SSL con Let's Encrypt

bash
sudo certbot --nginx -d openclaw.tudominio.com

Agrega Autenticacion Basica

Genera un archivo de contrasenas:

bash
sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd tu-usuario

Actualiza tu configuracion de Nginx:

nginx
server {
    listen 443 ssl;
    server_name openclaw.tudominio.com;

    # Configuracion SSL agregada por certbot...

    location / {
        auth_basic "Acceso a OpenClaw";
        auth_basic_user_file /etc/nginx/.htpasswd;

        proxy_pass http://127.0.0.1:18789;
        # ... otras configuraciones de proxy
    }
}

Metodo 3: VPN WireGuard

Para la maxima seguridad, usa una VPN para acceder a tu red domestica.

Instala WireGuard

bash
# Servidor (Ubuntu/Debian)
sudo apt install wireguard

# Generar claves
wg genkey | tee privatekey | wg pubkey > publickey

Configuracion del Servidor

Crea /etc/wireguard/wg0.conf:

ini
[Interface]
PrivateKey = <clave-privada-servidor>
Address = 10.0.0.1/24
ListenPort = 51820

[Peer]
PublicKey = <clave-publica-cliente>
AllowedIPs = 10.0.0.2/32

Configuracion del Cliente

ini
[Interface]
PrivateKey = <clave-privada-cliente>
Address = 10.0.0.2/24

[Peer]
PublicKey = <clave-publica-servidor>
Endpoint = ip-de-tu-servidor:51820
AllowedIPs = 10.0.0.1/32
PersistentKeepalive = 25

Inicia WireGuard

bash
# Servidor
sudo wg-quick up wg0
sudo systemctl enable wg-quick@wg0

# Cliente
sudo wg-quick up wg0

Ahora accede a OpenClaw via la IP de la VPN: http://10.0.0.1:18789

Metodo 4: Cloudflare Tunnel (Zero Trust)

Cloudflare Tunnel proporciona acceso seguro sin exponer puertos.

Instala cloudflared

bash
# macOS
brew install cloudflare/cloudflare/cloudflared

# Linux
curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared.deb

Autentica y Crea el Tunel

bash
cloudflared tunnel login
cloudflared tunnel create openclaw

Configura el Tunel

Crea ~/.cloudflared/config.yml:

yaml
tunnel: <tunnel-id>
credentials-file: /home/usuario/.cloudflared/<tunnel-id>.json

ingress:
  - hostname: openclaw.tudominio.com
    service: http://localhost:18789
  - service: http_status:404

Ejecuta el Tunel

bash
cloudflared tunnel route dns openclaw openclaw.tudominio.com
cloudflared tunnel run openclaw

Mejores Practicas de Seguridad

1. Habilita Limitacion de Tasa

En tu ~/.openclaw/openclaw.json:

json
{
  "security": {
    "rateLimiting": {
      "enabled": true,
      "maxRequests": 60,
      "windowMs": 60000
    }
  }
}

2. Usa Claves API Fuertes

bash
# Rota tus claves API regularmente
openclaw config set api-key

3. Monitorea los Logs de Acceso

bash
# Verificar logs del gateway
openclaw logs --follow

4. Configura Fail2Ban (para Nginx)

bash
sudo apt install fail2ban

# Crear /etc/fail2ban/jail.local
[nginx-http-auth]
enabled = true

Tabla Comparativa

| Metodo | Seguridad | Complejidad | Mejor Para | |--------|-----------|-------------|------------| | Tunel SSH | Alta | Baja | Uso personal | | Nginx + SSL | Alta | Media | Acceso publico | | VPN WireGuard | Muy Alta | Media | Acceso de equipo | | Cloudflare Tunnel | Alta | Baja | Configuracion zero-trust |

Siguientes Pasos