32 lines
2.0 KiB
Markdown
32 lines
2.0 KiB
Markdown
# 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)
|