Skip to main content

Un serveur OpenVPN avec Docker

https://memo-linux.com/un-serveur-openvpn-en-moins-de-5-minutes-avec-docker/


L’outil de virtualisation Docker est vraiment magique pour mettre en place très rapidement des services comme un petit serveur vpn avec OpenVPN.

logo_openvpn_docker

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

 

  • Téléchargement de l’image Docker :
docker pull kylemanna/openvpn
  • Préparation du serveur 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
      • Génération des des fichiers de configuration :
    docker run --volumes-from ovpn-data --rm kylemanna/openvpn ovpn_genconfig -u udp://VPN.SERVERNAME.COM
      • Génération des clés RSA et DH avec pass phrase :
    docker run --volumes-from ovpn-data --rm -it kylemanna/openvpn ovpn_initpki
  • Démarrage du serveur OpenVPN :
docker run --volumes-from ovpn-data -d -p 1194:1194/udp --cap-add=NET_ADMIN kylemanna/openvpn
  • Création d’un fichier client pour OpenVPN sans mot de passe :
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
  • Test d’accès au serveur OpenVPN à partir d’un poste client GNU/linux :
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
    • Se connecter au conteneur :
docker exec -i -t fd45d4ace481 /bin/bash
    • Editer le fichier openvpn.conf :
vi openvpn.conf
    • Modifier les serveurs DNS, exemple avec ceux d’OpenNIC :
push dhcp-option DNS 37.187.0.40
    • Enregistrer les modifications avec la combinaison de touches :wq!
    • Se déconnecter du conteneur :
exit
    • Redémarrer le conteneur :
docker stop fd45d4ace481
docker start fd45d4ace481