Configuration de OpenVPN Sur Ubuntu 14.04 / 16.04

Ilyess Ennaceur
10 min readFeb 22, 2018

Vous souhaitez accéder à Internet en toute sécurité depuis votre smartphone ou votre ordinateur portable lorsque vous êtes connecté à un réseau non fiable tel que le WiFi d’un hôtel ou d’un café? Un réseau privé virtuel (VPN) vous permet de traverser des réseaux non fiables en privé et en toute sécurité comme si vous étiez sur un réseau privé. Le trafic émerge du serveur VPN et continue son trajet vers la destination.

Combinée aux connexions HTTPS, cette configuration présenté par Safozi vous permet de sécuriser vos connexions et transactions sans fil. Vous pouvez contourner les restrictions géographiques et la censure, et protéger votre position et tout trafic HTTP non chiffré du réseau non approuvé.

OpenVPN est une solution VPN SSL (Secure Socket Layer) Open Source complète qui prend en charge un large éventail de configurations.

Dans ce tutoriel, nous allons configurer un serveur OpenVPN sur Safozi BOXES.

Ce tutoriel gardera les étapes d’installation et de configuration aussi simples que possible pour ces configurations.

Conditions préalables :

Safozi Boxes

Pour compléter ce tutoriel, vous aurez besoin d'accéder à un serveur Ubuntu 14.04.

Tu peux ainsi utiliser l’un de nos services Safozi ( Safozi BOXES qui sont des serveurs Cloud publics préconfigurés (Open-Source ou Windows) avec des ressources prédéfinies et dédiées. Les serveurs se différencient par les propriétés du Cloud Computing qui suivent; la rapidité du déploiement, la facturation, la haute disponibilité, l’évolutivité verticale et horizontale).

Etape 1: Installez OpenVPN

Pour commencer ,il faut Indiquez le nom d'hôte ou l'adresse IP de votre serveur et cliquez sur 'ouvrir' pour lancer la connexion. Vous pouvez laisser toutes les options par défaut. Si c'est la première fois que vous vous connectez au serveur, vous devrez accepter son certificat SSH.

Une fois connecté , Indiquez « root » (si vous avez un accès root sur votre serveur) ou votre nom d’utilisateur puis spécifiez votre mot de passe .

Les étapes ci-dessus vous permettent de vous connecter à un serveur SSH avec une configuration par défaut.

Pour le rendre plus sûr, chez Safozi, nous avons apporté des modifications supplémentaires telles que la modification du port SSH par défaut, la substitution de l'autorisation par mot de passe par des clés et bien d'autres.

Pour mettre à jour l'index de votre serveur et installer les paquets nécessaires, tapez:

Le logiciel nécessaire est maintenant sur le serveur, prêt à être configuré.

Etape 2: Configurer le répertoire CA

OpenVPN est un VPN TLS / SSL. Cela signifie qu'il utilise des certificats afin de chiffrer le trafic entre le serveur et les clients. Afin d'émettre des certificats de confiance, nous devons configurer notre propre autorité de certification (CA).

Pour commencer, nous pouvons copier le répertoire du modèle easy-rsa dans notre répertoire personnel avec la commande

Placez-vous dans le répertoire nouvellement créé pour commencer à configurer l'autorité de certification:

Etape 3: Configurer les variables CA

Pour configurer les valeurs que notre CA utilisera, nous devons éditer le fichier vars dans le répertoire. Ouvrez ce fichier maintenant dans votre éditeur de texte :

A l’intérieur, vous trouverez quelques variables qui peuvent être ajustées pour déterminer comment vos certificats seront créés. Nous avons seulement besoin de s’inquiéter de quelques-uns d’entre eux .

Vers le bas du fichier, recherchez les paramètres qui définissent les valeurs par défaut du champ pour les nouveaux certificats. Ça devrait ressembler a quelque chose comme ca :

Modifiez les valeurs en rouge selon vos préférences, mais ne les laissez pas vides

nous allons également modifier la valeur KEY_NAME juste en dessous de cette section, qui remplit le champ objet. Pour rester simple, nous l'appellerons SafoziRSA dans ce guide :

Etape 4: Création de l'autorité de certification :

Maintenant, nous pouvons utiliser les variables que nous avons définies et les utilitaires easy-rsa pour construire notre autorité de certification.

Vérifiez que vous êtes dans le répertoire de votre autorité de certification, puis recherchez le fichier vars que vous venez de modifier

Vous devriez voir ce qui suit s’il a été trouvé correctement:

Assurez-vous que nous travaillons dans un environnement propre en tapant:

Maintenant, nous pouvons construire notre CA racine en tapant:

Cela lancera le processus de création de la clé et du certificat d’autorité de certification racine. Depuis que nous avons rempli le fichier vars, toutes les valeurs doivent être remplies automatiquement. Appuyez simplement sur ENTER à travers les invites pour confirmer les sélections :

Nous avons maintenant une autorité de certification qui peut être utilisée pour créer le reste des fichiers dont nous avons besoin.

Etape 5: créer le certificat de serveur, la clé et les fichiers de chiffrement

Ensuite, nous allons générer notre certificat de serveur et la paire de clés, ainsi que certains fichiers supplémentaires utilisés pendant le processus de cryptage.

Commencez par générer le certificat de serveur OpenVPN et la paire de clés. Nous pouvons le faire en tapant :

Encore une fois, les invites auront des valeurs par défaut basées sur l'argument que nous venons de passer (SafoziRSA) et le contenu de notre fichier vars que nous avons obtenu.

N’hésitez pas à accepter les valeurs par défaut en appuyant sur ENTER. N’entrez pas de mot de passe de challenge pour cette configuration. Vers la fin, vous devrez entrer y deux questions pour signer et valider le certificat :

Ensuite, nous allons générer quelques autres éléments. Nous pouvons générer de puissantes clés Diffie-Hellman à utiliser lors de l'échange de clés en tapant:

Ensuite, nous pouvons générer une signature HMAC pour renforcer les capacités de vérification d’intégrité TLS du serveur.

Etape 6: Générer un certificat client et une paire de clés

Ensuite, nous pouvons générer un certificat client et une paire de clés. Bien que cela puisse être fait sur l’ordinateur client, puis signé par le serveur / CA à des fins de sécurité, pour ce guide, nous allons générer la clé signée sur le serveur par souci de simplicité.

Nous allons générer une seule clé client / certificat pour ce guide, mais si vous avez plusieurs clients, vous pouvez répéter ce processus autant de fois que vous le souhaitez. Transmettez une valeur unique au script pour chaque client.

Comme vous pourrez revenir à cette étape plus tard, nous recruterons le fichier vars. Nous utiliserons « SafoziClient1 » comme valeur pour notre premier certificat / paire de clés pour ce guide.

Pour générer des informations d’identification sans mot de passe, pour faciliter les connexions automatiques, utilisez la commande comme ceci:

Si à la place, vous souhaitez créer un ensemble d'informations d'identification protégé par mot de passe, utilisez la commande :

Etape 7:Configurer le service OpenVPN

Pour commencer, nous devons copier les fichiers dont nous avons besoin dans le répertoire de configuration / etc / openvpn.

Nous pouvons commencer avec tous les fichiers que nous venons de générer. Ils ont été placés dans le répertoire ~ / openvpn-ca / keys au fur et à mesure de leur création. Nous devons déplacer notre certificat CA, notre clé et notre certificat SafoziRSA, la signature HMAC et le fichier Diffie-Hellman:

Ensuite, nous devons copier et décompresser un exemple de fichier de configuration OpenVPN dans le répertoire de configuration afin que nous puissions l’utiliser comme base pour notre installation

Ajuster la configuration OpenVPN

Maintenant que nos fichiers sont en place, nous pouvons modifier le fichier de configuration du serveur

Configuration de base

Recherchez d’abord la section HMAC en recherchant la directive tls-auth. Retirer le “;” pour décommenter la ligne tls-auth. En dessous de ceci, ajoutez le paramètre de direction de la clé à “0”:

Ensuite, recherchez la section sur les chiffrements cryptographiques en recherchant les lignes de chiffrement commentées. Le chiffrement AES-128-CBC offre un bon niveau de chiffrement et est bien supporté. Retirer le “;” pour décommenter la ligne chiffrement AES-128-CBC:

En dessous, ajoutez une ligne d’authentification pour sélectionner l’algorithme de résumé de message HMAC. Pour cela, SHA256 est un bon choix:

Enfin, trouvez les paramètres de l’utilisateur et du groupe et supprimez le “;” au début de décommenter ces lignes:

Etape 8: Ajustez la configuration du réseau du serveur

Ensuite, nous devons ajuster certains aspects de la mise en réseau du serveur afin qu’OpenVPN puisse acheminer correctement le trafic.

Autoriser le transfert IP

Premièrement, nous devons autoriser le serveur à transférer le trafic. Ceci est assez essentiel à la fonctionnalité que nous voulons que notre serveur Safozi VPS fournisse.

Nous pouvons ajuster ce paramètre en modifiant le fichier /etc/sysctl.conf:

À l’intérieur, recherchez la ligne qui définit net.ipv4.ip_forward. Supprimez le caractère “#” du début de la ligne pour annuler le commentaire :

Enregistrez et fermez le fichier lorsque vous avez terminé.

Pour lire le fichier et ajuster les valeurs de la session en cours, tapez:

Ajuster les règles UFW aux connexions client Masquerade

Si vous avez suivi le guide de configuration initiale du serveur Ubuntu 14.04(Safozi Boxes ) dans les conditions préalables, vous devez avoir le pare-feu UFW en place. Que vous utilisiez le pare-feu pour bloquer le trafic indésirable (ce que vous devez presque toujours faire), nous avons besoin du pare-feu de ce guide pour manipuler une partie du trafic entrant dans le serveur. Nous devons modifier le fichier de règles pour configurer le masquage, un concept iptables qui fournit un NAT dynamique à la volée pour router correctement les connexions client.

Avant d’ouvrir le fichier de configuration du pare-feu pour ajouter le masquage, nous devons trouver l’interface réseau publique de notre machine. Pour ce faire, tapez:

Lorsque l’interface est associée à votre itinéraire par défaut, ouvrez le fichier /etc/ufw/before.rules pour ajouter la configuration appropriée:

Ce fichier gère la configuration qui doit être mise en place avant le chargement des règles UFW conventionnelles. Vers le haut du fichier, ajoutez les lignes en suivants ci-dessous. Cela va définir la politique par défaut pour la chaîne POSTROUTING dans la table nat et masquer tout trafic provenant du VPN

Nous devons également indiquer à UFW d’autoriser les paquets transférés par défaut. Pour ce faire, nous allons ouvrir le fichier / etc / default / ufw:

À l’intérieur, trouvez la directive DEFAULT_FORWARD_POLICY. Nous allons changer la valeur de DROP à ACCEPT :

Ouvrez le port OpenVPN et activez les modifications

Ensuite, nous allons ajuster le pare-feu lui-même pour autoriser le trafic vers OpenVPN.

Si vous n’avez pas modifié le port et le protocole dans le fichier /etc/openvpn/server.conf, vous devrez ouvrir le trafic UDP vers le port 1194 ( port Openvpn/VPS) . Si vous avez modifié le port et / ou le protocole, remplacez les valeurs que vous avez sélectionnées ici.

Nous ajouterons également le port SSH au cas où vous auriez oublié de l’ajouter en suivant le tuto Safozi prérequis:

Maintenant, nous pouvons désactiver et réactiver UFW pour charger les changements de tous les fichiers que nous avons modifiés

Notre serveur est maintenant configuré pour gérer correctement le trafic OpenVPN .

--

--

Ilyess Ennaceur

Network engineer | International multidisciplinary engineering School of Sousse-Tunisia