Pour commencer il faut installer les programmes openvpn et easy-rsa:
apt install openvpn easy-rsa
Si vous voulez gardez une sauvegarde de votre dossier:
rsync -av /usr/share/easy-rsa ~/keymaster
Ensuite modifions le fichier /usr/share/easy-rsa/vars
export KEY_COUNTRY="FR" export KEY_PROVINCE="PACA" export KEY_CITY="Marseille" export KEY_ORG="tieduino" export KEY_EMAIL="af@tieduino.fr" export KEY_OU="tieduino"
Pensez à remplacer les informations par les votres !
Ensuite, nous allons créez un lien symbolique pour le fichier openssl.cnf
ln -s openssl-1.0.0.cnf openssl.cnf
Ensuite il faut initialisez le PKI
./vars ./clean-all ./build-ca
Créons ensuite le certificat du serveur
./build-key-server <nom_du_serveur>
Ensuite un certificat du client
./build-key <nom_du_client>
(Utilisez-le autant de fois que vous avez de client)
Créons ensuite une clé de sécurité dh:
./build-dh
Dans le dossier /etc/openvpn, créons la clé partagé entre le serveur et les clients
openvpn --genkey --secret ta.key
(il faudra ensuite copiezcette clé dans les OpenVPN clients)
Dans le dossier /etc/openvpn créez un dossier keys et mettez y toutes les clés du dossier /usr/share/easy-rsa/keys
cp /usr/share/easy-rsa/keys/* /etc/openvpn/keys
Ensuite copiez l'exemple l'exemple de configuration OpenVPN dans /etc/openvpn
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/<nom_du_serveur>.conf.gz
Décompressez-le:
gzip -d <nom_du_serveur>.conf.gz
Ensuite modifiez le fichier nouvellement décompressé: /etc/openvpn/<nom_du_serveur>.conf
... ca keys/ca.crt cert keys/<nom_du_serveur>.crt key keys/<nom_du_serveur>.key # This file should be kept secret ... # Diffie hellman parameters. # Generate your own with: # openssl dhparam -out dh2048.pem 2048 dh keys/dh2048.pem ...
Vérifiez aussi dans le fichier /etc/openvpn/<nom_du_serveur>.conf, cette ligne:
tls-auth ta.key 0
La valeur doit être à 0 pour le serveur, et à 1 pour le client
Ensuite, dans le dossier /etc/openvpn, validez la configuration:
openvpn <nom_du_serveur>.conf
Si il n'y a pas d'erreur, relancez le serveur:
reboot
Sur le serveur, créons une certification pour le client
Dans le dossier /usr/share/easy-rsa:
./build-key <nom_du_client>
Sur le client, installer aussi OpenVPN:
apt install openvpn
Ensuite mettez-vous dans le dossier /etc/openvpn et décompressez le fichier de conf client:
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/<nom_du_client>.conf.gz
Décompressez ensuite le fichier:
gzip -d <nom_du_client>.conf.gz
Ensuite mettez les clé suivantes du serveur dans le dossier /etc/openvpn/keys du client
<nom_du_client>.crt, <nom_du_client>.key, dh2048.pem, ca.crt
Ensuite mettez la clé suivante du serveur dans le dossier /etc/openvpn du client:
ta.key
Modifiez ensuite le fichier /etc/openvpn/<nom_du_client>.conf:
... ca keys/ca.crt cert keys/<nom_du_client>.crt key keys/<nom_du_client>.key # This file should be kept secret ... # Diffie hellman parameters. # Generate your own with: # openssl dhparam -out dh2048.pem 2048 dh keys/dh2048.pem ...
Modifiez ensuite dans ce fichier, la valeur remote par ceci:
remote <adresse_ip_du_serveur> 1194
Puis vérifiez la ligne:
tls-auth ta.key 1
La valeur doit être à 1 pour le client
Ensuite toujours dans le dossier, /etc/openvpn:
openvpn <nom_du_client>.conf
Il ne doit pas y avoir d'erreur.
Tentez un ping vers le tun0 du serveur
ping <adresse_ip_de_l'interface_tun0_du_serveur>
Si vous obtenez une réponse, félicitation !
Activez ensuite openvpn de manière difinitive:
systemctl enable openvpn
Puis lancer le service:
systemctl start openvpn
Sur le serveur, créons une certification pour le client
Dans le dossier /usr/share/easy-rsa:
./build-key <nom_du_client>
Sur le client Windows,pour commencer télécharger un client OpenVPN pour Windows:
Ensuite faîtes passez les fichiers suivants du serveur vers le dossier C:\Program Files\OpenVPN\config du client:
<nom_du_client>.crt, <nom_du_client>.key, ca.crt, ta.key
Dans ce même dossier C:\Program Files\OpenVPN\config, créer un fichier <nom_du_client>.ovpn
Insérez ensuite la configuration suivante:
client dev tun proto udp remote <adresse_ip_de_l'interface_tun0_du_serveur> 1194 resolv-retry infinite nobind ca ca.crt cert <nom_du_client>.crt key <nom_du_client>.key tls-auth ta.key 1 persist-key persist-tun cipher AES-256-CBC verb 3
Ensuite, cliquez sur la flêche vers le haut, dans la barre des tâche windows, et trouvez l'icone d'OpenVPN.
Cliquez ensuite sur connecter, félicitation !