Sécurité

OpenClaw a accès à ton serveur, tes APIs, et potentiellement tes messages. Voilà comment limiter la surface d’exposition.

Les Owner IDs : ta première ligne de défense

Le champ owners dans ta config détermine qui peut parler à ton agent. Sans ça, n’importe qui peut envoyer des commandes à ton bot.

{
  "channels": [
    {
      "type": "telegram",
      "token": "...",
      "owners": [123456789]
    }
  ]
}

⚠️ Ne laisse jamais owners vide. Ton bot ignorera tout le monde — ou pire, répondra à tout le monde, selon la config.

Trouver ton Owner ID

Sur Telegram, envoie /start à @userinfobot. Il te renvoie ton ID numérique.

Sécuriser le serveur

Accès SSH

# Désactiver l'authentification par mot de passe
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl restart sshd

# Changer le port SSH (optionnel mais recommandé)
sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config

💡 Utilise uniquement des clés SSH. Jamais des mots de passe.

Firewall (UFW)

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp   # SSH (ou 22 si tu gardes le port par défaut)
sudo ufw allow 80/tcp     # HTTP
sudo ufw allow 443/tcp    # HTTPS
sudo ufw enable

Fail2ban

Bloque les IPs qui tentent du brute-force :

sudo apt install fail2ban -y
sudo systemctl enable fail2ban

Config recommandée dans /etc/fail2ban/jail.local :

[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600

Protéger tes clés API

Ne jamais commiter tes clés

Le fichier ~/.openclaw/openclaw.json contient tes clés API. Il ne doit jamais se retrouver dans un repo Git.

# Vérifier les permissions
chmod 600 ~/.openclaw/openclaw.json

Rotation des clés

Prends l’habitude de régénérer tes clés API tous les 3–6 mois :

Si tu suspectes une fuite, régénère immédiatement.

MEMORY.md et données sensibles

L’agent écrit dans MEMORY.md ce qu’il juge utile de retenir. Par défaut il évite les secrets — mais vérifie régulièrement :

# Scanner les patterns sensibles
grep -iE '(password|secret|token|apikey|sk-|ghp_)' ~/.openclaw/workspace/MEMORY.md

💡 Si tu utilises ton agent dans un groupe, MEMORY.md n’est pas chargé dans les sessions partagées — uniquement en conversation directe.

Reverse proxy et HTTPS

N’expose jamais OpenClaw directement sur internet. Passe par un reverse proxy :

  • Traefik (recommandé avec Docker)
  • Nginx / Caddy

Avec Let’s Encrypt pour le HTTPS automatique :

# Exemple Traefik (labels Docker)
labels:
  - "traefik.http.routers.app.tls=true"
  - "traefik.http.routers.app.tls.certresolver=letsencrypt"

Headers de sécurité

Ajoute ces headers dans ton reverse proxy :

X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains
Content-Security-Policy: default-src 'self'

Mises à jour

Garde tout à jour — c’est la base :

# Système
sudo apt update && sudo apt upgrade -y

# OpenClaw
openclaw update run

# Images Docker
docker compose pull && docker compose up -d

💡 Tu peux mettre en place un cron job OpenClaw pour vérifier automatiquement les mises à jour chaque semaine.

Checklist de sécurité

Avant de considérer ton install comme “prête pour la prod” :

  • Owner IDs configurés
  • SSH par clé uniquement (mot de passe désactivé)
  • Firewall actif (UFW)
  • Fail2ban installé
  • HTTPS avec certificat valide
  • Headers de sécurité en place
  • openclaw.json en chmod 600
  • Pas de secrets dans MEMORY.md
  • Mises à jour système régulières