OpenVPN : mettre en place une connexion VPN

Présentation

OpenVPN est un protocole VPN open-source permettant de chiffrer les échanges entre 2 appareils (un client et ce qu’on appelle un serveur).

Afin d’utiliser la dernière version, nous allons ajouter le repository officiel et pour cela nous allons commencer par importer la clé PGP publique pour signer les paquetages :

Puis ajoutons le repo à la liste des sources :

Nous pouvons maintenant installer les packages requis

OpenVPN est un VPN TLS/SSL. Cela signifie qu’il utilise des certificats pour chiffrer le trafic Internet entre le serveur et les clients. Pour cela, nous allons devoir créer une autorité de certification (CA).
Nous allons créer un dossier pour les clés et utiliser un jeu de scripts livrés avec OpenVPN.

Configuration du serveur

Grace aux scripts installés dans le répertoire /etc/openvpn/easy-rsa/ nous allons pouvoir maintenant configurer OpenVPN et utiliser une authentification par clés et certificats.
Le fichier /etc/openvpn/easy-rsa/vars permet d’initialiser les variables.

Configurer maintenant le fichier

Compléter les champs XXX ci-dessus sans modifier la variable KEY_NAME.
Ensuite lancez les commandes suivantes pour générer les fichiers

Chargeons les variables

Réinitialisons les clés (utile si vous avez déjà généré des clés ou que vous voulez recommencer leur génération)

Créer l’autorité de certification

Puisque nous avons renseigné les variables, vous n’avez qu’à appuyer sur Entrée pour confirmer

Créez maintenant le certificat du serveur
(c’est à ca que va servir KEY_NAME=”server”)

Ne tapez pas de challenge password et tapez y pour signer le certificat.

Cela a généré les fichiers server.crt et server.key dans /etc/openvpn/easy-rsa/keys/, et ces fichiers sont signés par l’autorité de certification.

Nous allons maintenant créer un dispositif cryptographique nommé Diffie Hellman. Cela va servir à échanger des clés utilisés par 2 équipements pour établir une clé partagée connue d’eux seuls. Cela va prendre plusieurs minutes.

Pour la dernière étape de la configuration serveur, nous allons générer une clé HMAC (Hash-based message authentication code) prépartagée pour contrer les attaques reposant sur les injections de paquets et les interceptions (de type man in the middle).

Si tout s’est bien passé, vous devriez avoir les fichiers suivants :

Configuration du serveur OpenVPN

Nous allons déplacer tous les fichiers qui concernent la configuration du serveur dans le dossier /etc/openvpn/server.

Récupérons maintenant le fichier de configuration du serveur

OpenVPN tourne par défaut avec l’utilisateur root. Nous allons donc créer un utilisateur spécifique

Editez le fichier de configuration du serveur et modifiez ainsi les instructions :

Si vous ne souhaitez pas conserver les logs, vous pouvez les rediriger vers /dev/null

Démarrer le serveur
Il y a 2 services à lancer :

Le @server est le nom du serveur que vous avez configuré dans le fichier vars (= export KEY_NAME)
Vérifions que les services tournent bien

Si les 2 services ont un statut ‘active’, c’est que c’est bon.

Nous pouvons également vérifier si l’interface tun0 est disponible

Vous devriez obtenir la réponse suivante

Il ne reste plus qu’à activer le service pour qu’il se lance au démarrage

Configuration des clients

Maintenant que le serveur est actif, nous allons pouvoir passer à la configuration des clients

Dans l’exemple suivant, le client s’appellera client1 mais je vous conseille de choisir un nom plus explicite (nom de machine ou de la personne qui utilisera le certificat)
Pour sécuriser le certificat client avec un mot de passe, tapez la commande suivante

Si vous ne voulez pas utiliser de mot de passe, ce qui est conseillé pour une connexion VPN automatique, la commande est

Nous allons maintenant créer le fichier de configuration pour le(s) client(s).
Nous allons préparer le répertoire :

et y copier le fichier de configuration client

Editons le fichier

Adaptez le fichier pour obtenir ceci :

Script de configuration

Nous allons créer un script pour compiler dans le fichier de configuration le certificat et les clés.
Créons le fichier make_config.sh dans le dossier /etc/openvpn/client-configs/

Et collez le contenu suivant

Rendons le fichier exécutable

Générer le fichier de configuration client

Avec le script, nous allons pouvoir générer facilement les fichiers de configuration client. Nous avons précédemment créer les fichiers client1.crt et client1.key, nous allons maintenant créer le fichier de configuration pour client1.

Si tout se passe bien, vous devriez avoir un fichier client1.ovpn dans /etc/openvpn/client-configs/files

Si le client est sous Windows, vous devrez commenter les lignes suivantes dans le fichier .ovpn

Pour finir, copier le fichier .ovpn dans le dossier C:\Program Files\OpenVPN\config et lancer OpenVPN GUI.

Paramétrage réseau du serveur

Nous devons tout d’abord autoriser le serveur à rediriger le trafic. Ouvrez le fichier suivant

et activez la directive suivante en supprimant le commentaire

Collez le contenu suivant :
Redémarrez

Vous aimerez aussi...