nas-runbooks/hermes-nyora/vps-contabo-wireguard-qbitt...

2.0 KiB

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)