Créer un conteneur Docker client OpenVPN
On crée un dossier pour le projet et on s'y rend :
On crée un fichier avec l'identifiant et le mot de passe de son service VPN :
On crée un dossier configs afin de stocker différents fichiers de configuration OpenVPN (.ovpn) de son service VPN :
Pour y copier les fichiers connectez vous à votre Raspberry par SFTP.
On crée un script shell qui s'exécutera à la connexion du service VPN :
La première règle ajoute une opération de "masquage" sur les paquets sortant via l'interface VPN tun0, ce qui permet aux machines du réseau local d'accéder à Internet en utilisant l'adresse IP du conteneur comme si c'était leur propre adresse. Les deux autres règles gèrent le transfert de paquets entre l'interface VPN tun0 et l'interface réseau locale eth0, autorisant uniquement les paquets associés à des connexions déjà établies ou en réponse à des requêtes initiées par le réseau local à traverser dans le sens tun0 vers eth0 et vice versa.
On crée un script shell qui s'exécutera à la déconnexion de son service VPN :
On supprime les règles crées lors de la connexion au service VPN.
On crée un script shell qui s'exécutera à l'exécution du conteneur :
On crée une boucle infinie dans laquelle on choisit un fichier de configuration OpenVPN (.ovpn) au hasard, on exécute OpenVPN, et si ce dernier s'interrompt brutalement, 10 secondes, après on choisit à nouveau un fichier de configuration OpenVPN (.ovpn) au hasard et on exécute à nouveau OpenVPN.
On crée le Dockerfile qui contient les instructions afin de créer une image de conteneur :
On consruit l'image :
On lance un conteneur à partir de l'image créée :
La commande présentée lance un conteneur Docker nommé openvpn-client qui exécute un client VPN OpenVPN en arrière-plan, assurant une connexion internet sécurisée. Elle spécifie notre réseau Docker, une adresse IP statique pour garantir qu'il conserve la même adresse IP sur le réseau, des serveurs DNS pour la confidentialité, et monte des volumes pour les configurations VPN et l'authentification. Le conteneur est également configuré pour utiliser le périphérique réseau virtuel tun, avec des permissions réseau étendues et des ajustements du noyau pour optimiser le trafic IP et désactiver IPv6. Cette configuration garantit que le conteneur redémarre automatiquement à moins d'être arrêté, fournissant une solution robuste et sécurisée pour se connecter à des réseaux via VPN.
On vérifie que notre conteneur soit en cours d'exécution :
On affiche les journaux (ou logs) générés par le conteneur, particulièrement utile pour le débogage, permettant de comprendre le comportement du conteneur, de suivre son processus d'exécution ou d'identifier des problèmes et des erreurs potentielles :
Commandes utiles
Arrêter le conteneur :
Supprimer le conteneur :
Redémarrer le conteneur :
Dernière mise à jour