L’outil de virtualisation Docker est vraiment magique pour mettre en place très rapidement des services comme un petit serveur vpn avec OpenVPN.
Pour faciliter la mise en œuvre d’un petit serveur VPN, Kyle Manna met à disposition une image Docker basée sur OpenVPN avec EasyRSA PKI CA.
Caractéristique de l’image Docker docker-openvpn :
- Clé Diffie-Hellman sur 2048 bit
- Génération d’une clé privée
- Un certificat auto signé correspondant à la clé privée pour le serveur OpenVPN
- Certificat et clé RSA 2048 bit
- Une clé d’authentification TLS de sécurité HMAC
- Topology réseau net30
- Réseau 192.168.255.0/24
- Serveur DNS par défaut 8.8.8.8 et 8.8.4.4
- Interface réseau TUN
Un serveur OpenVPN en moins de 5 minutes avec Docker
docker pull kylemanna/openvpn
- Démarrage de l’environnement busybox pour préparer les fichiers de configration d’OpenVPn:
docker run --name ovpn-data -v /etc/openvpn busybox
docker run --volumes-from ovpn-data --rm kylemanna/openvpn ovpn_genconfig -u udp://VPN.SERVERNAME.COM
docker run --volumes-from ovpn-data --rm -it kylemanna/openvpn ovpn_initpki
docker run --volumes-from ovpn-data -d -p 1194:1194/udp --cap-add=NET_ADMIN kylemanna/openvpn
docker run --volumes-from ovpn-data --rm -it kylemanna/openvpn easyrsa build-client-full client-bureau nopass
docker run --volumes-from ovpn-data --rm kylemanna/openvpn ovpn_getclient client-bureau > client-bureau.ovpn
openvpn --config client-bureau.ovpn
Personnaliser les serveurs DNS
- Identifier le numéro d’ID du conteneur :
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS fd45d4ace481 68fbf9e45ab5 "ovpn-data" 2 weeks ago Up 13 days 0.0.0.0:1194->1194/udp
docker exec -i -t fd45d4ace481 /bin/bash
openvpn.conf
:vi openvpn.conf
push dhcp-option DNS 37.187.0.40
exit
docker stop fd45d4ace481 docker start fd45d4ace481
merci pour le tuto.
Attention il y au moins une typo fd45d4ace482 au lieu de fd45d4ace481
merci m’sieur !
on a beau se relire 10 fois mais il y a toujours un p’tit loupé (oups)
Bonjour,
Bon tuto merci ! :)
Juste j’ai remarqué une petite coquille. Il y a deux « sur » dans la phrase :
» basée sur sur OpenVPN avec EasyRSA PKI CA. »
Rien de bien méchant ! ;)
encore merci, corrigé (faut que j’embauche un relecteur ^^ )
Certificat et cle RSA 2048 bit, une autre coquille prépare l’omelette je viens avec les cêpes….la fatigue…
Certificat et clé RSA 2048 bit
J’ai une Debian 9 testing SolydX EE 9 64bit le tuto peut fonctionner dessus !!!???…
je n’ai pas testé mais je pense que oui…
je suis partis en vacances je ne dispose pas d’ une connexion internet mobile et wifi dans mon lieu de vacances . Est ce que le vpn peut m’ aider a avoir une connexion internet illimité .
Merci d’avance
Très bon tuto qui fonctionne sur un serveur kimsufi. Par contre, comment ajouter un mot de passe si le fichier ovpn est intercepté ? J’ai essayé avec le plugin openvpn-auth-pam.so ( en suivant le tutoriel https://blog.gaetan-grigis.eu/systeme/administration/openvpn-et-authentification-par-ca-login-et-mot-de-passe/ ) mais impossible de créer un utilisateur ( surement busybox ).
c’est à dire intercepté ?
sinon tu fais une authnetification via un fichier
sur le serveur :
echo « »ton_login » > /etc/openvpn/auth.txt
echo « ton_mdp » >> /etc/openvpn/auth.txt
chmod 600 /etc/openvpn/auth.txt
dans le fichier client.ovpn tu ajoutes :
auth-user-pass /etc/openvpn/auth.txt
bonjour,
comment changer le port et le protocol, ie tcp/8443
merci
Bonjour,
je trouve cette image docker et son fonctionnement génial.
Cependant je n’ai pas réussi à dépasser le stade de POC. En effet depuis mon ordi, je suis bien connecté car j’ai une ligne pour le tunnel :
utun1: flags=8051 mtu 1500
inet 192.168.255.6 –> 192.168.255.5 netmask 0xffffffff
Mais je n’arrive pas a pinger le docker ou le reseau distant. De même pour internet.
J’ai cru comprendre qu’il faudrait ensuite configurer les tables de route pour le traffic,
mais même si la théorie est plus ou moins comprise, je ne trouve pas d’exemple de tels configuration.
Quelqu’un aurait une piste pour m’aider a continuer ?
Bien cordialement
Rebonjour,
j’ai modifié un parametre dans le fichier ovpn client et tout marche :
j’ai ajouté :
comp-lzo no
en effet, il semblerait que comme cette compression est désactivé sur le serveur, il faut explicitement le désactiver sur le client.
Bonne journée à tous