Mycélium
Documentation
Travaux
Membres
(accès restreint)
(accès restreint)
Cette page décrit comment configurer un nouveau client VPN, de sa machine à notre serveur.
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).Cette étape est à réaliser sur le poste du client.
~/Documents/Mycélium/VPN
)make-cadir ./client-ca cd ./client-ca ./easyrsa init-pki
./easyrsa gen-req NOM_CLIENT
./easyrsa gen-req NOM_CLIENT nopass
À la fin, on se retrouve avec un dossier pki/
, qui contient au moins :
pki/private/NOM_CLIENT.key
pki/reqs/NOM_CLIENT.req
Cette étape est à réaliser sur le conteneur openvpn, où se trouve notre CA intermédiaire pour le VPN.
scp pki/reqs/NOM_CLIENT.req openvpn:/tmp/
ssh openvpn manage-vpn create NOM_CLIENT -r /tmp/NOM_CLIENT.req -4 IP4_CLIENT
scp openvpn:/tmp/NOM_CLIENT.ovpn .
Vous aurez besoin du mot de passe de notre Certificat d'Autorité, il est situé dans le dépot Git mycelium-pass. Référez-vous à son README ou à Gestion des secrets au sein de Mycélium au besoin.
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.
Discuter et définir d'une façon d'assigner les adresses IPs
Définir également l'adresse IPv6
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 :
{ echo '<key>'; cat pki/private/NOM_CLIENT.key; echo '</key>'; } >> NOM_CLIENT.ovpn
Pré-requis sous Debian :
On peut ensuite ajouter une nouvelle connexion de type OpenVPN et importer le profil généré précédemment.
Pré-requis sous Debian :
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
.
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.
Pour démarrer le client VPN manuellement, vous pouvez utiliser le service systemd dédié en exécutant :
sudo systemctl start openvpn-client@NOM_CLIENT.service
Si vous avez une phrase de passe, il vous faudra aussi exécuter :
sudo systemd-tty-ask-password-agent
Il suffit d'activer le service systemd dédié en exécutant :
sudo systemctl enable openvpn-client@NOM_CLIENT.service
Si vous avez une phrase de passe, il vous faudra aussi suivre les étapes suivantes pour la stocker et ne pas avoir à la saisir :
/etc/openvpn/client/NOM_CLIENT.conf
, ajoutez la ligne suivante :askpass NOM_CLIENT.auth
/etc/openvpn/client/NOM_CLIENT.auth
qui ne contiendra que votre mot de passe.sudo chmod 600 /etc/openvpn/client/NOM_CLIENT.*