Skip to main content

Le déploiement

Ordre de déploiement

Étape 1 — Générer les clés

Sur chaque serveur, générer une paire de clés :

# Sur OVH
wg genkey | tee /etc/wireguard/privatekey-ovh | wg pubkey > /etc/wireguard/publickey-ovh

# Sur Marseille
wg genkey | tee /etc/wireguard/privatekey-mrs | wg pubkey > /etc/wireguard/publickey-mrs

# Sur Albi
wg genkey | tee /etc/wireguard/privatekey-albi | wg pubkey > /etc/wireguard/publickey-albi

# Pour chaque client
wg genkey | tee privatekey-client | wg pubkey > publickey-client

Étape 2 — Remplacer les placeholders

Dans tous les fichiers .conf, remplacer :

    <CLE_PRIVEE_OVH> → contenu de privatekey-ovh <CLE_PUBLIQUE_OVH> → contenu de publickey-ovh <CLE_PRIVEE_MRS> → contenu de privatekey-mrs <CLE_PUBLIQUE_MRS> → contenu de publickey-mrs <CLE_PRIVEE_ALBI> → contenu de privatekey-albi <CLE_PUBLIQUE_ALBI> → contenu de publickey-albi <IP_PUBLIQUE_OVH> → IP publique du VPS OVH <IP_PUBLIQUE_MRS> → IP publique de la box Marseille <IP_PUBLIQUE_ALBI> → IP publique de la box Albi (idem pour les clés clients)

    Étape 3 — Configuration des box internet

    Box Marseille & Box Albi

    Effectuer dans l'interface admin de chaque box :

    Port forwarding :

    Protocole : UDP
    Port externe : 51820
    IP destination : 192.168.X.100 (IP locale du serveur)
    Port destination : 51820
    

    Étape 4 — Déployer dans l'ordre

    # 1. Démarrer le hub OVH en premier
    ssh ovh "cd /opt/wireguard && docker compose up -d"
    
    # 2. Démarrer Marseille
    ssh marseille "cd /opt/wireguard && docker compose up -d"
    
    # 3. Démarrer Albi
    ssh albi "cd /opt/wireguard && docker compose up -d"
    
    # Une fois wg0 créé, appliquer le pare-feu :
    sudo bash ovh-ufw-setup.sh         # sur OVH
    sudo bash marseille-ufw-setup.sh   # sur Marseille
    sudo bash albi-ufw-setup.sh        # sur Albi

    Étape 5 — Vérification de sécurité

    Note Docker (importante pour Home Assistant)

    Après ufw enable, si les conteneurs (Home Assistant, Frigate…) perdent l'accès réseau, redémarrer Docker une seule fois pour qu'il replace ses règles FORWARD au-dessus de celles d'UFW :

    sudo systemctl restart docker
    

    À faire à un moment calme (cela redémarre HA et Frigate). En pratique HA en host n'a pas besoin de la chaîne FORWARD, donc ce redémarrage est rarement nécessaire — mais c'est le réflexe si un conteneur perd le réseau.

    Vérifier les règles Par-feu
    ufw status verbose
    ufw route status                       # liste les règles FORWARD VPN
    iptables -t nat -L POSTROUTING -n | grep MASQUERADE

    Vérifier que Portainer n'est PAS exposé sur l'IP publique

    # Depuis internet (doit échouer — connexion refusée ou timeout)
    curl -v --max-time 5 http://<IP_PUBLIQUE_OVH>:9000
    
    # Depuis le VPN avec private-only actif (doit fonctionner)
    curl -v http://10.0.0.1:9000
    

    Tester le cloisonnement LAN

    # Avec private-only.conf actif, tenter d'atteindre le LAN de Marseille
    ping 192.168.1.1    # doit échouer (pas de route + iptables DROP)
    ping 192.168.2.1    # doit échouer
    
    # Avec mrs-exitnode.conf actif
    ping 192.168.1.1    # doit répondre (autorisé)
    ping 192.168.2.1    # doit échouer (bloqué)
    
    # Avec albi-exitnode.conf actif
    ping 192.168.1.1    # doit échouer
    ping 192.168.2.1    # doit répondre (autorisé)
    

    Vérifier l'état du mesh

    # Sur OVH — doit lister MRS et Albi avec handshake récent
    docker exec wireguard-ovh wg show
    
    # Exemple de sortie attendue :
    # peer: <CLE_PUBLIQUE_MRS>
    #   endpoint: <IP_MRS>:51820
    #   allowed ips: 10.0.0.2/32
    #   latest handshake: X seconds ago
    #   transfer: X MiB received, X MiB sent
    

    Vérifier les sauvegardes rsync (tunnel direct P2P)

    # Depuis Marseille vers Albi — ne doit PAS faire monter les compteurs OVH
    docker exec wireguard-mrs rsync -avz /data/ user@10.0.0.3:/backup/
    
    # Pendant le rsync, vérifier sur OVH que les bytes N'augmentent PAS :
    watch -n1 "docker exec wireguard-ovh wg show | grep -A4 'marseille\|albi'"

    Étape 6 — Configurer Portainer UI

      Ouvrir http://10.0.0.1:9000 avec le profil private-only.conf actif Aller dans Environments > Add environment > Agent Ajouter Marseille : URL = 10.0.0.2:9001, nom = "Marseille" Ajouter Albi : URL = 10.0.0.3:9001, nom = "Albi"