[Tuto] Installation de Wireguard Client, Prowlarr, rutorrent, Sonarr, Radarr

EVO

Administreur
Membre du personnel
25 Novembre 2019
8 247
1 581
278
/var/run/docker.sock
[Tuto] Installation de Wireguard Client, Prowlarr, rutorrent, Sonarr, Radarr


EN COURS DE RÉDACTION ! 🚧😅

Pourquoi ce tutoriel ? :giggle:
Celui-ci, je l'espere va vous apprendre a installer Jackett, Prowlarr, rutorrent, Qbittorrent, Sonarr et Ă  faire en sorte que tout ce petit monde communique au travers d'un conteneur Wireguard Client.

Cette stack docker-compose contient les logiciels :
- Wireguard ( en mode client )
- Prowlarr
- rutorrent
- Sonarr
- Radarr

Elle permet d'installer rapidement ces logiciels et de s'assurer que ces derniers ne communiquerons que Ă  travers le Client VPN.

Ce tutoriel n'est pas là pour vous apprendre à télécharger des fichiers illégaux, tous messages à ce sujet seront supprimés.
Disclamer :
Le but de ce tuto sera de rendre cette installation facile et accessible a tous, bien que loin d’ĂȘtre un expert, n’hĂ©siter pas Ă  rĂ©pondre Ă  ce sujet avec vos interrogations, .. Pour ceux qui sont plus a l'aise avec ce genre d'installation, n'hĂ©siter pas a proposer des amĂ©liorations, ou des conseils, ...

Sommaire :
1/ Création des dossiers
2/ Modifications des .env
3/ Configuration du client Wireguard
4/ Transfert des fichiers dans /downloads-vpn
5/ Création des conteneurs


Aller go :)




1/ Création des dossiers

- Avec cd aller dans le dossier de votre choix, par exemple "docker".
Exemple : Si votre dossier "docker" ce trouve dans /volume1, alors la commande sera :

Code:
cd /volume1/docker

- Maintenant que nous sommes dans le bon dossier, nous allons exécuter la commande suivante pour créer d'un coup, toute l'architecture nécessaire :

Code:
mkdir -p downloads-vpn/wireguard/{config,scripts} downloads-vpn/rutorrent/{data,passwd,downloads} downloads-vpn/prowlarr/config downloads-vpn/sonarr/config downloads-vpn/radarr/config




2/ Modifications des .env

- Récupérer les fichiers .env, docker-compose.yml et rtorrent-rutorrent.env sur votre machine ( les fichiers sont disponible en fichiers joints a la fin de ce post )

> Vous pouvez faire un clic droit - Enregistrer sous ... sur les liens ci-dessus pour télécharger les fichiers.

- Par défaut, il n'y a rien a modifier dans rtorrent-rutorrent.env.

- Dans le fichier .env vous allez devoir modifier plusieurs chose :

PUID et PGID devront correspondre aux ID de votre utilisateurs, plus d'info ici : Connaitre le PUID / PGID d'un utilisateur





3/ Configuration du client Wireguard
Pour Ă©tablir la connexion au VPN, votre fournisseur VPN a du vous fournir un fichier .conf contenant votre configuration. Ce fichier doit ĂȘtre renommer avec le nom "wg0.conf".

Il ressemble probablement a cela :
1671649364946.png

Nous allons juste avant [Peer] rajouter deux lignes, qui sont lĂ  pour permettre l'acces local au interface des conteneurs :
Code:
PostUp = DROUTE=$(ip route | grep default | awk '{print $3}'); HOMENET=192.168.0.0/16; HOMENET2=172.16.0.0/12; ip route add $HOMENET2 via $DROUTE; ip route add $HOMENET via $DROUTE;iptables -I OUTPUT -d $HOMENET -j ACCEPT;iptables -A OUTPUT -d $HOMENET2 -j ACCEPT; iptables -A OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
PreDown = HOMENET=192.168.0.0/16; HOMENET2=172.16.0.0/12; ip route del $HOMENET2 via $DROUTE; ip route del $HOMENET via $DROUTE; iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT; iptables -D OUTPUT -d $HOMENET -j ACCEPT; iptables -D OUTPUT -d $HOMENET2 -j ACCEPT

On retrouve dans ces lignes HOMENET=192.168.0.0/16 qui représente votre réseau local, et HOMENET2=172.16.0.0/12, le réseau Docker. C'est bien sur a adapté si votre réseau n'est pas "standard".

Votre fichier va donc ressembler a ceci :
1671649349980.png





4/ Transfert des fichiers dans /downloads-vpn

Il faut transfert les fichiers ( .env, docker-compose.yml, rtorrent-rutorrent.env ) dans le dossier /downloads-vpn précédemment créé ! Par exemple, avec FileZilla. Attention au nommage de .env

Le fichier wg0.conf, lui, est a placer dans /downloads-vpn/wireguard/config





5/ Création des conteneurs[/SIZE]

Pour créer les conteneurs de la stack, toujours en SSH dans le dossier donwload-vpn, on execute la commande suivante :
Code:
docker compose up -d

( Attention si vous ĂȘtes sous dockercompose v1, la commande est
[I]docker-compose up -d[/I][/SIZE]



Oups, c'est l'heure de faire a manger ! La suite plus tard ....

2022-12-27 - Correction d'une erreur dans le compose ( 2x labels )
2022-12-21 - Création
 

PiĂšces jointes

  • .env
    66 bytes · Affichages: 98
  • docker-compose.yml
    3.5 KB · Affichages: 175
  • rtorrent-rutorrent.env
    986 bytes · Affichages: 9
DerniĂšre Ă©dition:
  • J'aime
RĂ©actions: P4sh0u
Yo, merci hier j'ai cherché sur Google mais j'ai pas chercher avec ces mots clés la ^^'
( si du monde bloque comme moi sur ça j'ai utilisé cette vidéo pour avoir le ficher .conf
)

Ă©dit: j'ai cette erreur "services.rtorrent-rutorrent.labels must be a mapping" quand je lance la commande docker compose up -d

bonne fĂȘte Ă  tous
 
DerniĂšre Ă©dition:
Ă©dit: j'ai cette erreur "services.rtorrent-rutorrent.labels must be a mapping" quand je lance la commande docker compose up -d
Désolé je n'avais pas vu ton édition

Il y a une faute dans mon docker-compsoe, je corrige dans 2 min, labels est présent deux fois dans rutorrent
1672174817268.png

edit : C'est corrigé
 
  • J'aime
RĂ©actions: BluError
Bonjour,

lorsque je rajoute dans le fichier wg0.conf les 2 lignes concernant le routage, j'ai bien accĂšs Ă  l'interface de rutorrent mais pas de connexion avec Wireguard.

si je les enlĂšve, wireguard se connecte bien, mais je n'ai plus d'accĂšs Ă  l'interface.

Voici le log du docker VPN :
Code:
Uname info: Linux 527978b8a945 5.15.74-1-pve #1 SMP PVE 5.15.74-1 (Mon, 14 Nov 2022 20:17:15 +0100) x86_64 x86_64 x86_64 GNU/Linux
**** It seems the wireguard module is already active. Skipping kernel header install and module compilation. ****
**** As the wireguard module is already active you can remove the SYS_MODULE capability from your container run/compose. ****
**** Client mode selected. ****
[custom-init] No custom files found, skipping...
**** Disabling CoreDNS ****
Warning: `/config/wg0.conf' is world accessible
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.205.197.2/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a wg0 -m 0 -x
[#] wg set wg0 fwmark 51820
[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
[#] iptables-restore -n
[#] DROUTE=$(ip route | grep default | awk '{print $3}'); HOMENET=192.168.100.0/24; HOMENET2=172.18.100.0/24; ip route add $HOMENET2 via $DROUTE; ip route add $HOMENET via $DROUTE;iptables -I OUTPUT -d $HOMENET -j ACCEPT;iptables -A OUTPUT -d $HOMENET2 -j ACCEPT; iptables -A OUTPUT ! -o wg0 -m mark ! --mark $(wg show wg0 fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
RTNETLINK answers: File exists
[#] resolvconf -d wg0 -f
[#] iptables-restore -n
[#] ip -4 rule delete table 51820
[#] ip -4 rule delete table main suppress_prefixlength 0
[#] ip link delete dev wg0
s6-rc: warning: unable to start service svc-wireguard: command exited 2

et mon fichier wg0.conf
Code:
[Interface]
PrivateKey = xx
Address = 10.205.197.2/24
DNS = 208.67.222.222, 208.67.220.220

PostUp = DROUTE=$(ip route | grep default | awk '{print $3}'); HOMENET=192.168.100.0/24; HOMENET2=172.18.100.0/24; ip route add $HOMENET2 via $DROUTE; ip route add $HOMENET via $D>PreDown = HOMENET=192.168.100.0/24; HOMENET2=172.18.100.0/24; ip route del $HOMENET2 via $DROUTE; ip route del $HOMENET via $DROUTE; iptables -D OUTPUT ! -o %i -m mark ! --mark $(>

[Peer]
PublicKey = xx
PresharedKey = xx
Endpoint = xx
AllowedIPs = 0.0.0.0/0
 
Bonsoir Ă  tous,

Merci pour ce tuto, par contre ayant un DS1522+, je reçois ce message de WIREGUARD en me disant que le kernel est inexistant.

Code:
Reading package lists...
**** No kernel headers found in the Ubuntu or Debian repos!! Will try the headers from host (if mapped), may or may not work ****
**** Kernel headers don't seem to be available in Ubuntu, Debian and Raspbian repos, or shared from the host; therefore can't compile the module. Sleeping now. . . ****

Quelqu'un a t-ill une idée ?
 
Pas de wireguard sur dsm sans modifications du kernel

Merci, en cherchant j'ai pu trouver une version adapter Ă  mon NAS, par contre lels logs me ressortent plusieurs erreurs.

Code:
Uname info: Linux 185681e9c728 4.4.180+ #42962 SMP Tue Oct 18 15:07:46 CST 2022 x86_64 x86_64 x86_64 GNU/Linux
**** It seems the wireguard module is already active. Skipping kernel header install and module compilation. ****
**** As the wireguard module is already active you can remove the SYS_MODULE capability from your container run/compose. ****
**** Client mode selected. ****
[custom-init] No custom files found, skipping...
**** Disabling CoreDNS ****
Warning: `/config/wg0.conf' is world accessible
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.5.0.2/16 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a wg0 -m 0 -x
[#] wg set wg0 fwmark 51820
[#] ip -6 route add ::/0 dev wg0 table 51820
[#] ip -6 rule add not fwmark 51820 table 51820
[#] ip -6 rule add table main suppress_prefixlength 0
[#] ip6tables-restore -n
ip6tables-restore v1.8.7 (nf_tables): Could not fetch rule set generation id: Invalid argument
[#] resolvconf -d wg0 -f
[#] ip -6 rule delete table 51820
[#] ip -6 rule delete table main suppress_prefixlength 0
[#] ip link delete dev wg0
s6-rc: warning: unable to start service svc-wireguard: command exited 4
 
Bonjour,

lorsque je rajoute dans le fichier wg0.conf les 2 lignes concernant le routage, j'ai bien accĂšs Ă  l'interface de rutorrent mais pas de connexion avec Wireguard.

si je les enlĂšve, wireguard se connecte bien, mais je n'ai plus d'accĂšs Ă  l'interface.

Voici le log du docker VPN :
Code:
Uname info: Linux 527978b8a945 5.15.74-1-pve #1 SMP PVE 5.15.74-1 (Mon, 14 Nov 2022 20:17:15 +0100) x86_64 x86_64 x86_64 GNU/Linux
**** It seems the wireguard module is already active. Skipping kernel header install and module compilation. ****
**** As the wireguard module is already active you can remove the SYS_MODULE capability from your container run/compose. ****
**** Client mode selected. ****
[custom-init] No custom files found, skipping...
**** Disabling CoreDNS ****
Warning: `/config/wg0.conf' is world accessible
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.205.197.2/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a wg0 -m 0 -x
[#] wg set wg0 fwmark 51820
[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
[#] iptables-restore -n
[#] DROUTE=$(ip route | grep default | awk '{print $3}'); HOMENET=192.168.100.0/24; HOMENET2=172.18.100.0/24; ip route add $HOMENET2 via $DROUTE; ip route add $HOMENET via $DROUTE;iptables -I OUTPUT -d $HOMENET -j ACCEPT;iptables -A OUTPUT -d $HOMENET2 -j ACCEPT; iptables -A OUTPUT ! -o wg0 -m mark ! --mark $(wg show wg0 fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
RTNETLINK answers: File exists
[#] resolvconf -d wg0 -f
[#] iptables-restore -n
[#] ip -4 rule delete table 51820
[#] ip -4 rule delete table main suppress_prefixlength 0
[#] ip link delete dev wg0
s6-rc: warning: unable to start service svc-wireguard: command exited 2

et mon fichier wg0.conf
Code:
[Interface]
PrivateKey = xx
Address = 10.205.197.2/24
DNS = 208.67.222.222, 208.67.220.220

PostUp = DROUTE=$(ip route | grep default | awk '{print $3}'); HOMENET=192.168.100.0/24; HOMENET2=172.18.100.0/24; ip route add $HOMENET2 via $DROUTE; ip route add $HOMENET via $D>PreDown = HOMENET=192.168.100.0/24; HOMENET2=172.18.100.0/24; ip route del $HOMENET2 via $DROUTE; ip route del $HOMENET via $DROUTE; iptables -D OUTPUT ! -o %i -m mark ! --mark $(>

[Peer]
PublicKey = xx
PresharedKey = xx
Endpoint = xx
AllowedIPs = 0.0.0.0/0
hello, tu as trouvé une réponse ?
 
De mon cÎté, sans le postUp/PréDown, j'arrive à faire fonctionner WIREGUARD.
Des que je les ajoutes :

Code:
Warning: `/config/wg0.conf' is world accessible
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.5.0.2/16 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a wg0 -m 0 -x
[#] ip -4 route add 0.0.0.0/1 dev wg0
[#] DROUTE=$(ip route | grep default | awk '{print $3}'); HOMENET=192.168.0.0/16; HOMENET2=172.16.0.0/12; ip route add $HOMENET2 via $DROUTE; ip route add $HOMENET via $DROUTE;iptables -I OUTPUT -d $HOMENET -j ACCEPT;iptables -A OUTPUT -d $HOMENET2 -j ACCEPT; iptables -A OUTPUT ! -o wg0 -m mark ! --mark $(wg show wg0 fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
iptables v1.8.7 (legacy): mark: bad integer value for option "--mark", or out of range.
Try `iptables -h' or 'iptables --help' for more information.
[#] resolvconf -d wg0 -f
[#] ip link delete dev wg0
s6-rc: warning: unable to start service svc-wireguard: command exited 2

Fichier wg0.conf

Code:
[Interface]
PrivateKey = xxx
Address = 10.5.0.2/16
DNS = 1.1.1.1
PostUp = DROUTE=$(ip route | grep default | awk '{print $3}'); HOMENET=192.168.0.0/16; HOMENET2=172.16.0.0/12; ip route add $HOMENET2 via $DROUTE; ip route add $HOMENET via $DROUTE;iptables -I OUTPUT -d $HOMENET -j ACCEPT;iptables -A OUTPUT -d $HOMENET2 -j ACCEPT; iptables -A OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
PreDown = HOMENET=192.168.0.0/16; HOMENET2=172.16.0.0/12; ip route del $HOMENET2 via $DROUTE; ip route del $HOMENET via $DROUTE; iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT; iptables -D OUTPUT -d $HOMENET -j ACCEPT; iptables -D OUTPUT -d $HOMENET2 -j ACCEPT

[Peer]
PublicKey = xxx
AllowedIPs = 0.0.0.0/1, ::/1
Endpoint = xxx.xxx.xxx.xx:51820
PersistentKeepalive = 25
 
DerniĂšre Ă©dition: