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.
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
