|TUTO| Masquer plusieurs conteneurs derrière 1 seule connexion VPN


Recommended Posts

image.thumb.png.6d223b179d354f8b6161aa3ff61b1691.png

Information:

Je crée ce tuto en français basé sous UNRAID, j'ai essayé de faire le plus simple et le plus explicite pour les novices!

 

Le but de ce tuto est de vous montrer comment masquer plusieurs conteneurs DOCKER derrière UNE seule connexion VPN !

En effet, celon le fournisseur VPN vous pouvez être limité à un nombre de connexion.

La connexion VPN se fera via le conteneur OpenVPN-Client,

Les conteneurs seront alors connectés "sous" le réseau OpenVPN-Client, (ex: chrome, ruTorrent,  etc...)

Pour finir, nous allons vérifier qu'OpenVPN-Client est toujours connecté et relancer le ou les conteneurs si la connexion est perdue.

Le conteneur REBUILD-DNDC sera installé pour surveiller le conteneur OpenVPN-Clien, si la connexion venait à décrocher, REBUILD-DNDC relancera le conteneur OpenVPN-Client ainsi que tous les conteneurs sous le même réseau.

 

PS: mon UNRAID est en français, c'est la version Bêta du coup si vous avez l'interface en anglais je vous laisse adapter les menus.

 

Pré-requis:

Je pars du principe que vous avez installé:

- le plugin "COMMUNITY APPLICATIONS"

- que vous avez activé DOCKER.

- que vous connaissez l'ip de votre routeur

- que vous connaissez votre IP public

- que vous avez accès depuis votre ordinateur au dossier de stockage des conteneurs (/mnt/user/appdata)

- que vous avez un fournisseur VPN (ex: ExpressVPN, NordVPN etc...)

- que vous savez récupérer les identifiants OPENVPN de votre fournisseur

- que vous savez vous récupérer chez votre fournisseur VPN un fichier ".opvpn" 

 

Installation:

1) Installation de OpenVPN-Client

 

a) Téléchargement de l'image OpenVPN-Client

 

0.png.54244bc3a02bbd09f70d340898b22e12.png

 

 

b) Paramétrage du conteneur

 

On renomme tout de suite le conteneur: (important pour la suite)

Nom = openvpn

 

Valider le conteneur comme cela, il ne démarrera pas en l'état.

Nous allons ajouter les fichiers d'identification.

 

02.png.12a367827979cf1f4cb262385854d55c.png

 

 

c) Ajout des identifiants VPN

 

Depuis votre ordinateur, dans le dossier docker ou à été crée le conteneur OpenVPN-client,

avec le bloc-notes créer un fichier nommé "vpn.auth".

Ajouter l'un en dessous de l'autre votre Identifiant puis Mot de passe récupéré chez votre fournisseur VPN.

 

03.png.46bf5a20382f5a542836e78ed69e29d0.png

 

 

d) Ajout du fichier .opvpn

 

Récupérer auprès de votre fournisseur VPN, un fichier pointant vers un serveur de votre fournisseur VPN (.opvpn)

Le placer dans le dossier du conteneur avec le fichier "vpn.auth" crée juste avant.

 

04.png.b4be60eb0dc7da912c3e81437b3579bf.png

 

 

e) Démarrer maintenant le conteneur renommé "openvpn" au-dessus:

 

05.png.82c71e0aad048d257e77925625a23345.png

 

 

Vérifier que la connexion ce fait correctement.

Ouvrir le journal du conteneur "openvpn" si tout ce passe bien,

vous devez avoir tout en bas des logs sur la dernière ligne ceci:

 

06.png.5e369cb7b006bf45be1384e4cde659ff.png

 

 

2) Création d'un réseau "openvpn"

 

(Il faut que le nom du conteneur VPN ne comporte pas de symbole c'est pour cela que nous l'avons renommé au début du tuto)

 

- Connecté vous en SSH depuis UNRAID:

 

07.png.a95c4dd19e865c4a8b0e3dfe51499006.png

 

- Entrer la commande suivant :

docker network create container:openvpn

 

- si tout va bien vous obtenez ceci:

08.png.7bc0db82b2778e430d664f98009b54ed.png

 

 

3) Installation d'un conteneur CHROME

Pour le tuto je vais crée un seul conteneur "sous" le réseau openvpn, mais vous pouvez en mettre autant que vous voulez.

Le principe de configuration sera le même que pour CHROME.

 

a) Téléchargement de l'image CHROME

 

Rechercher le conteneur "chromium" dans APPS:

 

09.png.6292459faba4c580f264d4d2badcc9c2.png

 

 

b) Paramétrage du conteneur

 

- Pour commencer nous allons supprimer la ligne suivant:

(le port sera défini après dans le conteneur "openvpn", noté le bien)

 

10.png.578f18e3fe2681a1d6ee600ed0cc559d.png

 

- Dans "type de réseau" sélectionner "container:openvpn" 

(réseau crée plus haut en ligne commande)

 

11.png.3de9323c6dd2bfb18ba7f63c2dc46ebb.png

 

 

4) Retour sur le conteneur "openvpn"

 

- Ouvrir le conteneur et ajouter un port correspondant à "chrome"

 

13.png.3a452bbd047b6d9e3dcd6d25a9c51735.png

12.png.daa82b0f6349a594479d9a275a4471e3.png

 

 

5) Installation du conteneur "REBUILD-DNDC"

 

C'est bien joli tout ça, nous avons crée une connexion VPN et si la connexion est perdue nos conteneurs ne sont plus accessible.

Mais nous pouvons faire encore mieux, le conteneur "REBUILD-DNDC" va tester à intervalle régulier que le conteneur "openvpn" est bien connecté à internet.

Et si la connexion est perdue, il va redémarrer le ou les conteneurs masqués derrière le conteneur "openvpn"

 

a) Téléchargement de l'image

 

14.png.8a3fad25a26fe56532199be46c60fcbe.png

 

 

b) Paramétrage du conteneur

 

Master Container Name = nom du conteneur VPN à tester

Master Container Connection Check: = activer la vérification de la connexion

Ping IP = IP de votre routeur

Ping IP Alt = choisir un DNS (1.1.1.1 DNS Cloudflare)

Ping Count = nombre de ping par test

Sleep Secs = délai d'attente avant de reconstruire les conteneurs après une perte de connexion VPN

CRON Schedule = intervalle de test

 

15.png.922f98dac68679ebcf9335a5e2653a54.png

17.png.278d2e7c39e9428e6442bfdc673daf33.png

 

 

6) Vérification que vous êtes bien sous une IP de votre VPN

 

Connecté vous à l'interface de "CHROME" depuis:

IP_DU_NAS:8080

 

et allez sur le site:

www.mon-ip.com

 

et vérifier que cela ne correspond pas à votre IP public.

 

FIN

Edited by totoleouf
mauvaise commande "docker create network"
  • Like 1
  • Thanks 3
Link to comment
  • 2 weeks later...

Bonjour @totoleouf et merci pour cet excellent tutoriel.

 

De mon coté, j'ai du en revanche l'adapter au niveau du paramétrage des conteneurs. En effet, dans type de réseau j'ai du préciser 'None' et rajouter une option dans Extra Paramters '--net=container:openvpn' (openvpn étant le nom du container d'openvpn). Après, tout fonctionnait bien. Ai-je loupé quelques chose ?

 

Pour info, je suis sur Unraid 6.9.0 (tout nouveau et tout beau).

Edited by ddespinoy
Link to comment

quand tu as créé le réseau network, il faut bien écrire (docker create network container:openvpn)

attention lors de test en mettant ce que tu as mis dans paramètres extra, pour une raison que j'ignore si le VPN décroche, ton conteneur se retrouve avec la vrai IP au lieu d'être innacessible

 

pas sur que REBUILD fonctionne avec ta méthode en plus

 

 

 

 

Edited by totoleouf
Link to comment

je viens d'essayer la commande indiquée et elle ne marche pas 'docker create network container:openvpn'. Apparement, il veut créer un nouveau network et il cherche par conséquent à télécharger l'image network:latest.

 

Capture d’écran 2021-03-03 à 17.46.23.png

 

Dans ton tuto, tu avais pourtant indiqué 'docker create network openvpn' et suite à cette commande le réseau custom openvpn apparait bien dans la liste des réseaux disponibles. C'est plus son exploitation qui n'a pas aboutie chez moi sans passer par l'option --net en extra parameters

 

Capture d’écran 2021-03-03 à 17.46.03.png

 

Capture d’écran 2021-03-03 à 17.45.08.png

 

le mystère reste entier mais le site monip sur le Google proxyfié indiqué bien une ip loin de chez moi

 

je vais effectivement tester REBUILD pour voir de potentiels effets de bord. Merci encore

Edited by ddespinoy
Link to comment

c'est curieux, car que tu sélectionne le réseau container:openvpn ou que tu le met dans parametres extra cest la même chose.

j'ai vérifié sur le dépôt de "rebuild-dndc", cela ne devrait pas poser de problème pour le fonctionnement de celui-ci en tout cas

Link to comment

hello toto

j'ai taché de suivre ton tuto , mais j'arrive au meme soucis de ddespinoy .... et sa solution marche pas dans mon cas

 

les log du container vpn sont ok

la création du réseau openvpn ok aussi , avec le nom du container, ( la deuxieme commande que tu a donné marche pas , j'en ressort avec une erreur comme dit precedemnt)

chromium tourne correctement si je le mets en bridge , mais si je le mets sur le reseau vpn , ou avec le none et Extra Paramters '--net=container:openvpn' il devient inaccessible

 

je ne sais pas trop quoi checker pour solutionner tout ça ^^

esperant que tu puisse m'aide

Link to comment

1127343505_2021-03-0614_22_23-Tower_UpdateContainer.thumb.png.a92c20fd3214368fa7ba7cf09f354673.png

 

2021-03-06 14_22_37-Tower_UpdateContainer.png

 

 

La connexion a échoué

Firefox ne peut établir de connexion avec le serveur à l’adresse 192.168.2.110:8080.

    Le site est peut-être temporairement indisponible ou surchargé. Réessayez plus tard ;
    Si vous n’arrivez à naviguer sur aucun site, vérifiez la connexion au réseau de votre ordinateur ;
    Si votre ordinateur ou votre réseau est protégé par un pare-feu ou un proxy, assurez-vous que Firefox est autorisé à accéder au Web.

Edited by Xili
Link to comment

ok je vois que pour le conteneur chrome, pour le network tu as :

custom : openvpn

 

hors tu devrais avoir:

custom : container:openvpn

 

l'erreur viens de là pour moi.

 

il doit y avoir quelque chose que tu as mal fait lors de la création du reseau network

 

 

Edited by totoleouf
Link to comment

bonjour toto,

 

Suite à ton dernier post, je viens de refaire entièrement le tutoriel en ayant pris soin d'effacer les précédentes données.

Je te confirme que cela marche. Il fallait bien créer le network en précisant le mot clef "container:" avant le nom du container d'openvpn.

 

Merci encore

Edited by ddespinoy
Link to comment
  • 3 weeks later...
  • 10 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.