Créer un serveur OpenVPN sur Microsoft Azure

Un article inspiré par le tutoriel disponible sur Digital Ocean: How To Set Up an OpenVPN Server on Ubuntu 16.04

Prérequis:

  • Disposer d’un serveur Ubuntu 16.04 LTS sur Azure, je recommande l’installation de ce serveur en mode « Classique ».
  • Ouvrir le point de terminaison 443 <=> 443 en TCP

Il faut suivre les étapes suivantes avec un utilisateur administrateur et non avec votre compte root.

Etape 1 – Installer OpenVPN

le package easy-rsa permet de gérer facilement notre certificat d’autorité interne.

Etape 2 – Configurer le répertoire CA

Etape 3 – Configurer les variables du certificat

Le fichier doit contenir entre autres les informations suivantes, modifier à votre convenance le texte entre guillement:

Etape 4 – Construire le certificat d’autorité

Vous devriez voir le message suivant:
On s’assure de travailler dans un environnement propre:
On génère le certificat racine:
Etant donné qu’on a renseigné le fichier vars avec nos informations, appuyez simplement sur entré au long de l’opération pour confirmer les sélections.

Etape 5 – Créer la clé, le certificat du serveur et le fichier de chiffrement

Vous pouvez accepter les valeurs par défaut proposés, puis valider la signature du certificat et la mise à jour de la base.
Nous allons générer un autre élément permettant de chiffrer de manière forte nos échanges de clés:
Afterwards, we can generate an HMAC signature to strengthen the server’s TLS integrity verification capabilities:

Etape 6 – Générer le certificat client et le signer

Etape 7 – Configurer le serveur OpenVPN

Nous allons tout d’abord copier les fichiers nécessaires à OpenVPN et que nous venons de générer:

Nous copions maintenant le fichier d’exemple de configuration d’OpenVPN pour nous en servir comme base:

On édite le fichier de configuration du serveur:

On modifie les données de dh, port et proto:

Voici l’ensemble des lignes à décommenter:

 

On ajoute la ligne key-direction:

 

On commente la ligne dev tun:

Etape 8 – Ajuster la configuration réseau de votre serveur

Editer le fichier « /etc/sysctl.conf »

et décommenter la ligne suivante:

Appliquez la modification au système avec la commande suivante:

 Editer le fichier de configuration du pare-feu « ufw » pour ajouter les lignes entre « START OPENVPN RULES » et « END OPENVPN RULES »

Vous allez peut être devoir modifier la ligne « -A POSTROUTING » afin qu’elle corresponde à votre carte réseau. Pour connaître le nom de votre carte réseau qui accède au net:

Si vous obtenez le résultat suivant, cela signifie que vous devez modifier dans votre fichier de configuration « eth0 » par « wlp11s0 »

Egalement nous allons modifier la configuration de ufw pour qu’il accepte le forward de packet par défaut:

Ajustement du pare-feu:

Rechargement du pare-feu:

Etape 9 – Démarrage et activation du service OpenVPN

Etape 10 – Créer un dossier pour stocker les configurations clients

Modifier les permissions sur les fichiers et répertoires que nous stockons:

Créons un fichier de configuration de base pour nos futurs utilisateurs:

On édite notre fichier:

Modifier la ligne « remote »:

Server_IP_adress correspond à l’adresse IP ou le domaine pointant vers votre serveur (XYZ.cloudapp.net).

Décommentez les lignes suivantes:

Commentez la ligne dev tun:

Commentez les lignes suivantes car nous allons intégrer directement dans notre fichier client les éléments correspondants:

Ajouter en fin de fichier la ligne suivante:

Créons maintenant un script pour générer rapidement notre fichier permettant de configurer le client VPN de nos utilisateurs:

Coller les lignes suivantes:

Rendre ce fichier exécutable:

A l’étape 6, nous avons générer les certificats pour notre utilisateur client1, nous allons maintenant générer le fichier de configuration qu’il doit recevoir de notre part:

Vous venez de générer un fichier client1.ovpn qui se situe dans votre dossier ~/client-configs/files.

Il ne vous reste plus qu’à le transmettre à votre utilisateur finale.

Bon surf !