Outils pour utilisateurs

Outils du site


documentation:technique:openvpn:client

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
documentation:technique:openvpn:client [2022/12/03 16:26] – [Sous GNU/Linux] sragonsdocumentation:technique:openvpn:client [2022/12/04 21:30] (Version actuelle) – supprimée sragons
Ligne 1: Ligne 1:
-====== Client OpenVPN ====== 
  
-Cette page décrit comment configurer un nouveau client VPN, de sa machine à notre serveur. 
- 
-<WRAP info> 
-Avant de vous lancer, il faut définir ces variables et les remplacer dans cette page : 
-  * ''NOM_CLIENT'' : le nom d'adhérent·e, suivi optionnellement d'un nom au choix. Par exemple, pour l'adhérent⋅e //camille// : ''camille'', ''camille-maison'', ''camille-autre''. 
-  * ''IP4_CLIENT'' : l'adresse IPv4 qu'on va assigner à ce client VPN, dans notre plage IP (80.67.162.x), où ''x'' est incrémenté à chaque nouvelle souscription VPN. 
-</WRAP> 
- 
-===== Générer un certificat et une clé privée ===== 
- 
-Cette étape est à réaliser sur le poste du client. 
- 
-==== Sous GNU/Linux ==== 
-=== Pré-requis === 
- 
-Assurez-vous d'avoir les paquets suivants d'installés : 
- 
-  * ''openvpn'' 
-  * ''easy-rsa'' 
- 
-Si vous n'êtes pas sous Debian, pour faciliter la mise en place de l'environnement //easy-rsa//, il vous faudra télécharger en plus le script {{ :documentation:technique:openvpn:make-cadir |make-cadir}} (modifié depuis le script du paquet [[https://salsa.debian.org/debian/easy-rsa/-/raw/master/debian/make-cadir|Debian]]). 
- 
-=== Création du certificat et de la clé === 
- 
-  - Lancer un terminal. Avec votre compte utilisateur, placez-vous dans un répertoire de votre choix (par exemple dans ''~/Documents/Mycélium/VPN'') 
-  - Créer le dossier qui contiendra les certificats avec //easy-rsa//, s'y rendre et initialiser l'environnement : <code bash> 
-make-cadir ./client-ca 
-cd ./client-ca 
-./easyrsa init-pki 
-</code> 
-  - Créer le certificat et la clé du client : 
-    * soit avec une phrase de passe, qui vous sera demandée et qui sera à saisir à chaque connexion au serveur VPN :<code bash> 
-./easyrsa gen-req NOM_CLIENT 
-</code> 
-    * soit sans chiffrer la clé privée avec un mot de passe :<code bash> 
-./easyrsa gen-req NOM_CLIENT nopass 
-</code> 
-  - Puis validez la suite des informations demandées. 
- 
-À la fin, on se retrouve avec un dossier ''pki/'', qui contient au moins : 
-  * la clé privée du client : ''pki/private/NOM_CLIENT.key'' 
-  * la requête de signature de certificat du client : ''pki/reqs/NOM_CLIENT.req'' 
- 
-<WRAP info> 
-Lors de l’exécution de la commande **./easyrsa gen-req** vous devez indiquer un **Common Name (CN)**. 
-Attention de saisir un CN indentique à NOM_CLIENT. En particulier, éviter les caractères spéciaux.  
-</WRAP> 
- 
-===== Signer le certificat du client et le créer sur le serveur ===== 
- 
-Cette étape est à réaliser sur le conteneur //openvpn//, où se trouve notre CA intermédiaire pour le VPN. 
- 
-  - Copier la requête de signature de certificat du client :<code bash> 
-scp pki/reqs/NOM_CLIENT.req openvpn:/tmp/ 
-</code> 
-  - Se connecter sur le conteneur et créer le client dans OpenVPN :<code bash> 
-ssh openvpn 
-manage-vpn create NOM_CLIENT -r /tmp/NOM_CLIENT.req -4 IP4_CLIENT 
-</code> 
-  - Récupérer le profil OpenVPN généré pour le client sur votre machine :<code bash> 
-scp openvpn:/tmp/NOM_CLIENT.ovpn . 
-</code> 
- 
-Vous aurez besoin du mot de passe de notre Certificat d'Autorité, il est situé dans le password store mycelium-pass[[documentation:technique:git:usage-des-depots-mycelium|[1]]][[:documentation:gestion:gestion-des-secrets|[2]]], sous le libellé ''mycelium/openvpn/ca''. 
- 
-<WRAP info> 
-Vous pouvez également communiquer à l'adhérent⋅e sa clé signée, qui se trouve dans ''/etc/openvpn/easy-rsa/pki/issued/NOM_CLIENT.crt'' sur le conteneur //openvpn//. Ce fichier serait alors à placer dans son dossier ''pki/signed'', créé préalablement. 
-</WRAP> 
- 
-TODO Discuter et définir d'une façon d'assigner les adresses IPs 
- 
-TODO Définir également l'adresse IPv6 
- 
-===== Configurer OpenVPN sur le client ===== 
- 
-Le profil OpenVPN récupéré précédemment est à transmettre à l'adhérent⋅e. Pour que ce fichier soit complet, il reste à ajouter sa clé privée à la fin, dans une balise ''<key></key>''. Sous bash, cela peut se faire avec la commande suivante dans le dossier où se trouve l'environnement //easy-rsa// :<code bash> 
-{ echo '<key>'; cat pki/private/NOM_CLIENT.key; echo '</key>'; } >> NOM_CLIENT.ovpn 
-</code> 
- 
-==== Sous Gnome avec NetworkManager ==== 
- 
-**Pré-requis sous Debian :** 
-  * [[https://packages.debian.org/stable/network-manager-openvpn-gnome|network-manager-openvpn-gnome]] 
- 
-On peut ensuite ajouter une nouvelle connexion de type **OpenVPN** et importer le profil généré précédemment. 
- 
-==== Comme service avec systemd ==== 
- 
-**Pré-requis sous Debian :** 
-  * [[https://packages.debian.org/stable/openvpn|openvpn]] 
- 
-On peut ensuite copier le profil généré précédemment dans le dossier ''/etc/openvpn/client'' en le renommant en ''NOM_CLIENT.conf''. 
- 
-<WRAP important> 
-Le client OpenVPN peut recevoir les informations liées au serveur DNS, mais n'est pas capable nativement de les appliquer. Il faudra pour cela suivre les instructions que vous trouverez dans le fichier de configuration. 
-</WRAP> 
- 
-=== Démarrer le tunnel manuellement === 
- 
-Pour démarrer le client VPN manuellement, vous pouvez utiliser le service systemd dédié en exécutant :<code bash> 
-sudo systemctl start openvpn-client@NOM_CLIENT.service 
-</code> 
- 
-Si vous avez une phrase de passe, il vous faudra aussi exécuter :<code bash> 
-sudo systemd-tty-ask-password-agent 
-</code> 
- 
-=== Établir le tunnel au démarrage de la machine === 
- 
-Il suffit d'activer le service systemd dédié en exécutant :<code bash> 
-sudo systemctl enable openvpn-client@NOM_CLIENT.service 
-</code> 
- 
-Si vous avez une phrase de passe, il vous faudra aussi suivre les étapes suivantes pour la stocker et ne pas avoir à la saisir : 
-  - Dans le fichier de configuration ''/etc/openvpn/client/NOM_CLIENT.conf'', ajoutez la ligne suivante :<code> 
-askpass NOM_CLIENT.auth 
-</code> 
-  - Avec votre éditeur favori, créez le fichier ''/etc/openvpn/client/NOM_CLIENT.auth'' qui ne contiendra que votre mot de passe. 
-  - Réglez les permissions pour que les fichiers ne soit lisible que par root :<code bash> 
-sudo chmod 600 /etc/openvpn/client/NOM_CLIENT.* 
-</code> 

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki