# VPS Contabo — WireGuard + qBittorrent en installation native Ubuntu (pas de Docker) **Date** : 2026-07-05 **Instance** : hermes-nyora **Tags** : nyora, vps, contabo, wireguard, qbittorrent, kill-switch, natif ## Contexte Seedbox perso (Ahmed) sur VPS Contabo Cloud VPS 20 SSD, tunnel VPN KeepSolid (France) obligatoire pour que qBittorrent n'expose jamais l'IP réelle du VPS. ## Décision : natif, pas Docker Le premier jet prévoyait `linuxserver/wireguard` + `linuxserver/qbittorrent` en `network_mode: service:wireguard`. Remplacé par une installation native Ubuntu — plus simple à sécuriser avec un kill-switch iptables directement sur l'hôte, sans dépendance à l'ordre de démarrage des containers Docker. ## Architecture - `wg0` natif (`wireguard-tools`, `wg-quick up wg0`), activé au boot (`systemctl enable wg-quick@wg0`) - `qbittorrent-nox` natif, tourne sous un user dédié (`qbtuser`, pas root) - Table de routage dédiée (`ip rule` + table 51820) force tout le trafic de `qbtuser` via `wg0` - Kill-switch iptables : `REJECT` tout trafic sortant du user `qbtuser` qui ne passe pas par `wg0` ou `lo` - Service systemd `qbittorrent-nox.service` avec `BindsTo=wg-quick@wg0.service` + `Requires=` → qBittorrent ne démarre/reste jamais actif sans le tunnel ## Piège évité La clé privée WireGuard (`B4837_fr_wg.conf`) s'est retrouvée en permissions 777 sur le NAS (au lieu de 600 comme documenté) — n'importe quel process/container avec accès au mount aurait pu la lire. Toujours vérifier les permissions réelles après écriture d'un fichier de credentials, ne pas se fier au commentaire dans le handoff. ## Fichiers - `hermes-nyora/data/workspace/contabo-vps/setup-wireguard.sh` - `hermes-nyora/data/workspace/contabo-vps/setup-qbittorrent.sh` - `hermes-nyora/data/workspace/contabo-vps/HANDOFF.md` ## Ordre d'exécution sur le VPS 1. `sudo bash setup-wireguard.sh` 2. `sudo bash setup-qbittorrent.sh` (vérifie que `wg0` est up avant de continuer) 3. Changer le mot de passe WebUI par défaut (admin/adminadmin)