Skip to main content

Un serveur OpenVPN 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

Un serveur OpenVPN en moins de 5 minutes avec Docker

 

  • 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