OpenClaw
Sécurité10 min de lecture

Comment acceder a OpenClaw a distance en toute securite

Apprenez a exposer en toute securite votre passerelle OpenClaw pour l'acces a distance en utilisant des tunnels SSH, des proxys inverses et des VPN tout en maintenant la securite.

O

OpenClaw Guides

Tutorial Authors

Pourquoi l'acces a distance ?

Par defaut, OpenClaw se lie a 127.0.0.1 (localhost uniquement), ce qui est la configuration la plus securisee. Cependant, vous pourriez avoir besoin d'un acces a distance quand :

  • Vous executez OpenClaw sur un serveur domestique pendant vos deplacements
  • Vous hebergez sur un VPS et vous connectez depuis plusieurs appareils
  • Vous partagez votre assistant IA sur votre reseau local

Avertissement : N'exposez jamais OpenClaw directement sur Internet sans authentification et chiffrement adequats. Ce guide couvre uniquement les methodes securisees.

Methode 1 : Tunnel SSH (Recommande pour usage personnel)

Le tunneling SSH est la methode la plus simple et la plus securisee pour l'acces a distance personnel.

Sur votre serveur distant

Assurez-vous qu'OpenClaw fonctionne sur localhost :

bash
openclaw gateway start
# Gateway listening on http://127.0.0.1:18789

Sur votre machine locale

Creez un tunnel SSH :

bash
ssh -L 18789:localhost:18789 user@your-server-ip

Maintenant vous pouvez acceder a OpenClaw sur http://localhost:18789 depuis votre machine locale.

Tunnel SSH persistant avec autossh

Pour un tunnel qui se reconnecte automatiquement :

bash
# Installer autossh
# macOS
brew install autossh

# Ubuntu/Debian
sudo apt install autossh

# Creer un tunnel persistant
autossh -M 0 -f -N -L 18789:localhost:18789 user@your-server-ip

Methode 2 : Proxy inverse avec Nginx

Pour des configurations plus avancees, utilisez Nginx comme proxy inverse avec terminaison SSL.

Installer Nginx et Certbot

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

Configurer Nginx

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

nginx
server {
    listen 80;
    server_name openclaw.yourdomain.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;
    }
}

Activez le site :

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

Ajouter SSL avec Let's Encrypt

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

Ajouter l'authentification basique

Generez un fichier de mot de passe :

bash
sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd your-username

Mettez a jour votre configuration Nginx :

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

    # Configuration SSL ajoutee par certbot...

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

        proxy_pass http://127.0.0.1:18789;
        # ... autres parametres proxy
    }
}

Methode 3 : VPN WireGuard

Pour la securite maximale, utilisez un VPN pour acceder a votre reseau domestique.

Installer WireGuard

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

# Generer les cles
wg genkey | tee privatekey | wg pubkey > publickey

Configuration du serveur

Creez /etc/wireguard/wg0.conf :

ini
[Interface]
PrivateKey = <server-private-key>
Address = 10.0.0.1/24
ListenPort = 51820

[Peer]
PublicKey = <client-public-key>
AllowedIPs = 10.0.0.2/32

Configuration du client

ini
[Interface]
PrivateKey = <client-private-key>
Address = 10.0.0.2/24

[Peer]
PublicKey = <server-public-key>
Endpoint = your-server-ip:51820
AllowedIPs = 10.0.0.1/32
PersistentKeepalive = 25

Demarrer WireGuard

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

# Client
sudo wg-quick up wg0

Maintenant accedez a OpenClaw via l'IP VPN : http://10.0.0.1:18789

Methode 4 : Tunnel Cloudflare (Zero Trust)

Cloudflare Tunnel fournit un acces securise sans exposer de ports.

Installer 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

Authentifier et creer le tunnel

bash
cloudflared tunnel login
cloudflared tunnel create openclaw

Configurer le tunnel

Creez ~/.cloudflared/config.yml :

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

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

Executer le tunnel

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

Bonnes pratiques de securite

1. Activer la limitation de debit

Dans votre ~/.openclaw/openclaw.json :

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

2. Utiliser des cles API fortes

bash
# Effectuez regulierement la rotation de vos cles API
openclaw config set api-key

3. Surveiller les logs d'acces

bash
# Verifier les logs de la passerelle
openclaw logs --follow

4. Configurer Fail2Ban (pour Nginx)

bash
sudo apt install fail2ban

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

Tableau comparatif

| Methode | Securite | Complexite | Ideal pour | |---------|----------|------------|------------| | Tunnel SSH | Elevee | Faible | Usage personnel | | Nginx + SSL | Elevee | Moyenne | Acces public | | VPN WireGuard | Tres elevee | Moyenne | Acces equipe | | Tunnel Cloudflare | Elevee | Faible | Configuration zero-trust |

Prochaines etapes