En prélude à une série d’articles partageant avec vous ma préparation d’une machine physique que j’ai eu chez OVH, je vous partage un petit script que j’ai mis en place pour créer un VPN en 2-2. 🙂
OpenVPN est un logiciel libre permettant de créer un réseau privé virtuel (VPN).
Installer Openvpn sous Ubuntu se fait aussi facilement que n’importe quel autre logiciel (voir Installer un paquet sur Ubuntu-fr).
Notre paquet est openvpn
Pour utiliser mon script vous devrez installer openvpn, zip et unzip.
sudo apt-get install zip unzip openvpn
VPN Config Generator
Le but de ce logiciel est la génération d’un zip de configuration Client de VPN compatible Windows et Linux. Ce script :
- Génère et signe le certificat client
- Génère la configuration VPN à partir d’un modèle.
- Ordonne les fichiers dans un zip que vous pouvez décompresser dans le dossier de configuration d’OpenVPN
Génération de la configuration serveur
Allez à la racine du dossier du script:
cd vpn-config-generator/easyrsa-2.0
# Editer vars pour y entrer des valeurs par défaut (Country, ORG ...)
vim vars
source ./vars
./clean-all
Générer le certificat CA (de votre autorité de certification)
./build-ca
./build-dh
Les fichiers générés se trouvent dans vpn-config-generator/keys
Générer maintenant votre configuration serveur. Bien entendu vous avez fait le travail préliminaire de savoir quel PORT, quel plage d’adresse réseau, quel nom de serveur votre VPN utilisera. Par exemple:
Protocol: TCP
Port: 2000
Serveur: testme.com
subnet: 10.0.1.0/24
Lancer toujours dans EasyRsa:
./build-key-server testme.com
Copier les fichiers de configuration du serveur:
# Certificats
sudo cp ../keys/ca.crt /etc/openvpn/
sudo cp ../keys/testme.com.key /etc/openvpn/
sudo cp ../keys/testme.com.crt /etc/openvpn/
sudo cp ../keys/dh1024.pem /etc/openvpn/
# configuration
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gunzip /etc/openvpn/server.conf.gz
sudo vim /etc/openvpn/server.conf
Entrer les différents paramètres du VPN.
Configuration le Script VPNConfigGen
vim envvars
VPN_NAME=test
VPN_PORT=2000
VPN_SERVER=testme.com
Modifier le modèle de configuration selon vos paramètres (Il s’agit surtout des paramètres « dev tun » ou « dev tap »
vim vpn-tmpl/client.conf
Vous pouvez à présent générer la configuration de John :
./gen-config.sh john john@mail.com
output/john-test-vpn-config.zip
├── test-vpn
│ ├── ca.crt
│ ├── john.crt
│ └── john.key
├── test-vpn.conf
└── test-vpn.ovpn
En espérant que ce script vous fera gagner du temps 🙂
Super pratique … Et en plus cela marche bien 😉