Comment installer et configurer un serveur OpenVPN sur CentOS 8

De Get Docs
Aller à :navigation, rechercher

Introduction

Un réseau privé virtuel (VPN) vous permet de traverser des réseaux non fiables comme si vous étiez sur un réseau privé. Il vous donne la liberté d'accéder à Internet en toute sécurité depuis votre smartphone ou votre ordinateur portable lorsqu'il est connecté à un réseau non fiable, comme le WiFi d'un hôtel ou d'un café.

Lorsqu'elle est combinée avec les connexions HTTPS, cette configuration 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 emplacement et tout trafic HTTP non chiffré des réseaux non fiables.

OpenVPN est une solution VPN TLS (Transport Layer Security) open source complète qui s'adapte à un large éventail de configurations. Dans ce didacticiel, vous allez configurer OpenVPN sur un serveur CentOS 8, puis le configurer pour qu'il soit accessible depuis une machine cliente.

Remarque : Si vous envisagez de configurer un serveur OpenVPN sur un droplet DigitalOcean, sachez que, comme de nombreux hébergeurs, nous facturons les dépassements de bande passante. Pour cette raison, soyez attentif au volume de trafic que votre serveur gère.

Voir cette page pour plus d'informations.


Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin de :

  • Un serveur CentOS 8 avec un utilisateur sudo non root et un pare-feu activé. Pour le configurer, vous pouvez suivre notre tutoriel Configuration initiale du serveur avec CentOS 8. Nous l'appellerons Serveur OpenVPN tout au long de ce guide.
  • Un serveur CentOS 8 distinct configuré en tant qu'autorité de certification (CA) privée, que nous appellerons CA Server tout au long de ce guide. Après avoir exécuté les étapes du Guide de configuration initiale du serveur sur ce serveur, vous pouvez suivre les étapes 1 à 3 de notre guide sur Comment installer et configurer une autorité de certification (CA) sur CentOS 8[ X203X] pour y parvenir.

Remarque : Bien qu'il soit techniquement possible d'utiliser votre serveur OpenVPN ou votre ordinateur local comme autorité de certification, cela n'est pas recommandé car cela expose votre VPN à certaines failles de sécurité. Selon la documentation officielle OpenVPN, vous devez placer votre autorité de certification sur une machine autonome dédiée à l'importation et à la signature des demandes de certificat. Pour cette raison, ce guide suppose que votre autorité de certification se trouve sur un serveur CentOS 8 distinct qui a également un utilisateur non root avec des privilèges sudo et un pare-feu de base activé.


En plus de cela, vous aurez besoin d'une machine cliente que vous utiliserez pour vous connecter à votre serveur OpenVPN. Dans ce guide, nous l'appellerons le Client OpenVPN. Pour les besoins de ce didacticiel, il est recommandé d'utiliser votre machine locale comme client OpenVPN.

Une fois ces prérequis en place, vous êtes prêt à commencer à installer et à configurer un serveur OpenVPN sur CentOS 8.

Remarque : Veuillez noter que si vous désactivez l'authentification par mot de passe lors de la configuration de ces serveurs, vous pouvez rencontrer des difficultés lors du transfert de fichiers entre eux plus loin dans ce guide. Pour résoudre ce problème, vous pouvez réactiver l'authentification par mot de passe sur chaque serveur. Alternativement, vous pouvez générer une paire de clés SSH pour chaque serveur, puis ajouter la clé SSH publique du serveur OpenVPN au fichier authorized_keys de la machine CA et vice versa. Voir Comment configurer des clés SSH sur CentOS 8 pour obtenir des instructions sur la façon d'effectuer l'une ou l'autre de ces solutions.


Étape 1 — Installation d'OpenVPN et d'Easy-RSA

La première étape de ce tutoriel consiste à installer OpenVPN et Easy-RSA. Easy-RSA est un outil de gestion d'infrastructure à clé publique (PKI) que vous utiliserez sur le serveur OpenVPN pour générer une demande de certificat que vous vérifierez et signerez ensuite sur le serveur CA.

Cependant, OpenVPN et Easy-RSA ne sont pas disponibles par défaut dans CentOS 8, vous devrez donc activer le référentiel Extra Packages for Enterprise Linux (EPEL). EPEL est géré par le projet Fedora et contient des packages non standard mais populaires pour Fedora, CentOS et d'autres distributions Linux qui utilisent le format de package RPM. Connectez-vous à votre serveur OpenVPN en tant qu'utilisateur sudo non root que vous avez créé lors des étapes de configuration initiales et exécutez ce qui suit :

sudo dnf install epel-release
sudo dnf install openvpn easy-rsa

Ensuite, vous devrez créer un nouveau répertoire sur le serveur OpenVPN en tant qu'utilisateur non root appelé ~/easy-rsa :

mkdir ~/easy-rsa

Vous devrez maintenant créer un lien symbolique à partir du script easyrsa que le package a installé dans le répertoire ~/easy-rsa que vous venez de créer :

ln -s /usr/share/easy-rsa/3/* ~/easy-rsa/

Remarque : Alors que d'autres guides peuvent vous demander de copier les fichiers de package easy-rsa dans votre répertoire PKI, ce didacticiel adopte une approche de lien symbolique. Par conséquent, toute mise à jour du package easy-rsa sera automatiquement reflétée dans les scripts de votre PKI.


Enfin, assurez-vous que le propriétaire du répertoire est votre utilisateur sudo non root et limitez l'accès à cet utilisateur en utilisant chmod :

sudo chown sammy ~/easy-rsa
chmod 700 ~/easy-rsa

Une fois ces programmes installés et déplacés vers les bons emplacements sur votre système, l'étape suivante consiste à créer une infrastructure à clé publique (PKI) sur le serveur OpenVPN afin que vous puissiez demander et gérer les certificats TLS pour les clients et les autres serveurs qui connectez-vous à votre VPN.

Étape 2 - Création d'une PKI pour OpenVPN

Avant de pouvoir créer la clé privée et le certificat de votre serveur OpenVPN, vous devez créer un répertoire local d'infrastructure de clé publique sur votre serveur OpenVPN. Vous utiliserez ce répertoire pour gérer les demandes de certificats du serveur et des clients au lieu de les faire directement sur votre serveur CA.

Pour créer un répertoire PKI sur votre serveur OpenVPN, vous devrez remplir un fichier appelé vars avec certaines valeurs par défaut. Vous allez d'abord cd dans le répertoire easy-rsa, puis vous allez créer et modifier le fichier vars avec votre éditeur de texte préféré.

L'éditeur de texte par défaut fourni avec CentOS 8 est vi. vi est un éditeur de texte extrêmement puissant, mais il peut être quelque peu obtus pour les utilisateurs qui manquent d'expérience avec lui. Vous voudrez peut-être installer un éditeur plus convivial tel que nano pour faciliter l'édition des fichiers de configuration sur votre serveur CentOS 8 :

sudo dnf install nano

Lorsque vous êtes invité à installer nano, entrez y pour poursuivre les étapes d'installation. Vous êtes maintenant prêt à éditer le fichier vars :

cd ~/easy-rsa
nano vars

Une fois le fichier ouvert, collez les deux lignes suivantes :

~/easy-rsa/vars

set_var EASYRSA_ALGO "ec"
set_var EASYRSA_DIGEST "sha512"

Ces lignes garantiront que vos clés privées et vos demandes de certificat sont configurées pour utiliser la cryptographie à courbe elliptique (ECC) moderne afin de générer des clés et des signatures sécurisées pour vos clients et votre serveur OpenVPN.

La configuration de vos serveurs OpenVPN & CA pour utiliser ECC signifie que lorsqu'un client et un serveur tentent d'établir une clé symétrique partagée, ils peuvent utiliser des algorithmes de courbe elliptique pour effectuer leur échange. L'utilisation d'ECC pour un échange de clés est nettement plus rapide que l'utilisation de Diffie-Hellman simple avec l'algorithme RSA classique, car les nombres sont beaucoup plus petits et les calculs sont plus rapides.

Contexte : Lorsque les clients se connectent à OpenVPN, ils utilisent un cryptage asymétrique (également appelé clé publique/privée) pour effectuer une prise de contact TLS. Cependant, lors de la transmission du trafic VPN crypté, le serveur et les clients utilisent le cryptage symétrique, également appelé cryptage à clé partagée.

Il y a beaucoup moins de surcharge de calcul avec le chiffrement symétrique par rapport au chiffrement asymétrique : les nombres utilisés sont beaucoup plus petits et les processeurs modernes intègrent des instructions pour effectuer des opérations de chiffrement symétrique optimisées . Pour passer du cryptage asymétrique au cryptage symétrique, le serveur et le client OpenVPN utiliseront l'algorithme Elliptic Curve Diffie-Hellman (ECDH) pour convenir d'une clé secrète partagée le plus rapidement possible.


Une fois que vous avez rempli le fichier vars, vous pouvez procéder à la création du répertoire PKI. Pour ce faire, exécutez le script easyrsa avec l'option init-pki. Bien que vous ayez déjà exécuté cette commande sur le serveur CA dans le cadre des prérequis, il est nécessaire de l'exécuter ici car votre serveur OpenVPN et votre serveur CA ont des répertoires PKI distincts :

./easyrsa init-pki

Notez que sur votre serveur OpenVPN, il n'est pas nécessaire de créer une autorité de certification. Votre serveur CA est seul responsable de la validation et de la signature des certificats. La PKI sur votre serveur VPN est uniquement utilisée comme emplacement pratique et centralisé pour stocker les demandes de certificat et les certificats publics.

Après avoir initialisé votre PKI sur le serveur OpenVPN, vous êtes prêt à passer à l'étape suivante, qui consiste à créer une demande de certificat de serveur OpenVPN et une clé privée.

Étape 3 - Création d'une demande de certificat de serveur OpenVPN et d'une clé privée

Maintenant que votre serveur OpenVPN a tous les prérequis installés, l'étape suivante consiste à générer une clé privée et une demande de signature de certificat (CSR) sur votre serveur OpenVPN. Après cela, vous transférerez la demande à votre autorité de certification pour qu'elle soit signée, en créant le certificat requis. Une fois que vous avez un certificat signé, vous le transférez sur le serveur OpenVPN et l'installez pour que le serveur l'utilise.

Pour commencer, accédez au répertoire ~/easy-rsa sur votre serveur OpenVPN en tant qu'utilisateur non root :

cd ~/easy-rsa

Vous allez maintenant appeler le easyrsa avec l'option gen-req suivie d'un nom commun (CN) pour la machine. Le CN peut être ce que vous voulez, mais il peut être utile d'en faire quelque chose de descriptif. Tout au long de ce didacticiel, le CN du serveur OpenVPN sera server. Assurez-vous d'inclure également l'option nopass. Si vous ne le faites pas, le fichier de demande sera protégé par un mot de passe, ce qui pourrait entraîner des problèmes d'autorisations ultérieurement.

Remarque : Si vous choisissez ici un nom autre que server, vous devrez ajuster certaines des instructions ci-dessous. Par exemple, lors de la copie des fichiers générés dans le répertoire /etc/openvpn, vous devrez substituer les noms corrects. Vous devrez également modifier le fichier /etc/openvpn/server.conf ultérieurement pour pointer vers les fichiers .crt et .key corrects.


./easyrsa gen-req server nopass
OutputCommon Name (eg: your user, host, or server name) [server]:
 
Keypair and certificate request completed. Your files are:
req: /home/sammy/easy-rsa/pki/reqs/server.req
key: /home/sammy/easy-rsa/pki/private/server.key

Cela créera une clé privée pour le serveur et un fichier de demande de certificat appelé server.req. Copiez la clé du serveur dans le répertoire /etc/openvpn/server :

sudo cp /home/sammy/easy-rsa/pki/private/server.key /etc/openvpn/server/

Après avoir terminé ces étapes, vous avez créé avec succès une clé privée pour votre serveur OpenVPN. Vous avez également généré une demande de signature de certificat pour le serveur OpenVPN. Le CSR est maintenant prêt à être signé par votre autorité de certification. Dans la section suivante de ce didacticiel, vous apprendrez à signer un CSR avec la clé privée de votre serveur CA.

Étape 4 - Signature de la demande de certificat du serveur OpenVPN

À l'étape précédente, vous avez créé une demande de signature de certificat (CSR) et une clé privée pour le serveur OpenVPN. Maintenant, le serveur CA doit connaître le certificat server et le valider. Une fois que l'autorité de certification a validé et retransmis le certificat au serveur OpenVPN, les clients qui font confiance à votre autorité de certification pourront également faire confiance au serveur OpenVPN.

Sur le serveur OpenVPN, en tant qu'utilisateur non root, utilisez SCP ou une autre méthode de transfert pour copier la demande de certificat server.req sur le serveur CA pour signature :

scp /home/sammy/easy-rsa/pki/reqs/server.req sammy@your_ca_server_ip:/tmp

Connectez-vous maintenant au serveur CA en tant qu'utilisateur non root qui possède le répertoire easy-rsa, où vous avez créé votre PKI. Importez la demande de certificat à l'aide du script easyrsa :

cd ~/easy-rsa
./easyrsa import-req /tmp/server.req server
Output. . .
The request has been successfully imported with a short name of: server
You may now use this name to perform signing operations on this request.

Ensuite, signez la demande en exécutant le script easyrsa avec l'option sign-req, suivi du type de demande et du nom commun. Le type de demande peut être client ou server. Étant donné que nous travaillons avec la demande de certificat du serveur OpenVPN, assurez-vous d'utiliser le type de demande server :

./easyrsa sign-req server server

Dans la sortie, vous serez invité à vérifier que la demande provient d'une source fiable. Tapez yes puis appuyez sur ENTER pour confirmer :

OutputYou are about to sign the following certificate.
Please check over the details shown below for accuracy. Note that this request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender.
 
Request subject, to be signed as a server certificate for 3650 days:
 
subject=
commonName = server
 
 
Type the word 'yes' to continue, or any other input to abort.
Confirm request details: yes
. . .
Certificate created at: /home/sammy/easy-rsa/pki/issued/server.crt

Notez que si vous avez crypté votre clé privée CA, vous serez invité à saisir votre mot de passe à ce stade.

Une fois ces étapes terminées, vous avez signé la demande de certificat du serveur OpenVPN à l'aide de la clé privée du serveur CA. Le fichier server.crt résultant contient la clé de cryptage publique du serveur OpenVPN, ainsi qu'une signature du serveur CA. Le but de la signature est de dire à toute personne qui fait confiance au serveur CA qu'elle peut également faire confiance au serveur OpenVPN lorsqu'elle s'y connecte.

Pour terminer la configuration des certificats, copiez les fichiers server.crt et ca.crt du serveur CA vers le serveur OpenVPN :

scp pki/issued/server.crt sammy@your_vpn_server_ip:/tmp
scp pki/ca.crt sammy@your_vpn_server_ip:/tmp

De retour sur votre serveur OpenVPN, copiez les fichiers de /tmp vers /etc/openvpn/server :

sudo cp /tmp/{server.crt,ca.crt} /etc/openvpn/server

Votre serveur OpenVPN est maintenant presque prêt à accepter les connexions. Dans l'étape suivante, vous effectuerez quelques étapes supplémentaires pour augmenter la sécurité du serveur.

Étape 5 - Configuration du matériel cryptographique OpenVPN

Pour une couche de sécurité supplémentaire, nous ajouterons une clé secrète partagée supplémentaire que le serveur et tous les clients utiliseront avec la directive tls-crypt d'OpenVPN. Cette option est utilisée pour masquer le certificat TLS qui est utilisé lorsqu'un serveur et un client se connectent initialement. Il est également utilisé par le serveur OpenVPN pour effectuer des vérifications rapides sur les paquets entrants : si un paquet est signé à l'aide de la clé pré-partagée, alors le serveur le traite ; s'il n'est pas signé, le serveur sait qu'il provient d'une source non fiable et peut le rejeter sans avoir à effectuer de travail de décryptage supplémentaire.

Cette option vous aidera à vous assurer que votre serveur OpenVPN est capable de faire face au trafic non authentifié, aux analyses de port et aux attaques par déni de service, qui peuvent monopoliser les ressources du serveur. Cela rend également plus difficile l'identification du trafic réseau OpenVPN.

Pour générer la clé pré-partagée tls-crypt, exécutez ce qui suit sur le serveur OpenVPN dans le répertoire ~/easy-rsa :

cd ~/easy-rsa
openvpn --genkey --secret ta.key

Le résultat sera un fichier nommé ta.key. Copiez-le dans le répertoire /etc/openvpn/server/ :

sudo cp ta.key /etc/openvpn/server

Avec ces fichiers en place sur le serveur OpenVPN, vous êtes prêt à créer des certificats clients et des fichiers de clés pour vos utilisateurs, que vous utiliserez pour vous connecter au VPN.

Étape 6 - Génération d'un certificat client et d'une paire de clés

Bien que vous puissiez générer une clé privée et une demande de certificat sur votre ordinateur client, puis les envoyer à l'autorité de certification pour qu'elles soient signées, ce guide décrit un processus de génération de la demande de certificat sur le serveur OpenVPN. L'avantage de cette approche est que nous pouvons créer un script qui générera automatiquement des fichiers de configuration client contenant toutes les clés et tous les certificats requis. Cela vous évite d'avoir à transférer des clés, des certificats et des fichiers de configuration aux clients et rationalise le processus d'adhésion au VPN.

Nous allons générer une seule clé client et une paire de certificats pour ce guide. Si vous avez plus d'un client, vous pouvez répéter ce processus pour chacun d'eux. Veuillez noter, cependant, que vous devrez transmettre une valeur de nom unique au script pour chaque client. Tout au long de ce didacticiel, la première paire certificat/clé est appelée client1.

Commencez par créer une structure de répertoires dans votre répertoire personnel pour stocker le certificat client et les fichiers de clé :

mkdir -p ~/client-configs/keys

Étant donné que vous allez stocker les paires certificat/clé et les fichiers de configuration de vos clients dans ce répertoire, vous devez verrouiller ses autorisations maintenant par mesure de sécurité :

chmod -R 700 ~/client-configs

Ensuite, revenez au répertoire EasyRSA et exécutez le script easyrsa avec les options gen-req et nopass, ainsi que le nom commun du client :

cd ~/easy-rsa
./easyrsa gen-req client1 nopass

Appuyez sur ENTER pour confirmer le nom commun. Ensuite, copiez le fichier client1.key dans le répertoire ~/client-configs/keys/ que vous avez créé précédemment :

cp pki/private/client1.key ~/client-configs/keys/

Ensuite, transférez le fichier client1.req sur votre serveur CA en utilisant une méthode sécurisée :

scp pki/reqs/client1.req sammy@your_ca_server_ip:/tmp

Connectez-vous maintenant à votre serveur CA. Ensuite, accédez au répertoire EasyRSA et importez la demande de certificat :

cd ~/easy-rsa
./easyrsa import-req /tmp/client1.req client1

Ensuite, signez la demande de la même manière que vous l'avez fait pour le serveur à l'étape précédente. Cette fois, cependant, assurez-vous de spécifier le type de requête client :

./easyrsa sign-req client client1

Lorsque vous y êtes invité, saisissez yes pour confirmer que vous avez l'intention de signer la demande de certificat et qu'il provient d'une source fiable :

OutputType the word 'yes' to continue, or any other input to abort.
Confirm request details: yes

Encore une fois, si vous avez crypté votre clé CA, vous serez invité à entrer votre mot de passe ici.

Cela créera un fichier de certificat client nommé client1.crt. Transférez ce fichier vers le serveur :

scp pki/issued/client1.crt sammy@your_server_ip:/tmp

De retour sur votre serveur OpenVPN, copiez le certificat client dans le répertoire ~/client-configs/keys/ :

cp /tmp/client1.crt ~/client-configs/keys/

Ensuite, copiez également les fichiers ca.crt et ta.key dans le répertoire ~/client-configs/keys/ et définissez les autorisations appropriées pour votre utilisateur sudo :

cp ~/easy-rsa/ta.key ~/client-configs/keys/
sudo cp /etc/openvpn/server/ca.crt ~/client-configs/keys/
sudo chown sammy.sammy ~/client-configs/keys/*

Avec cela, les certificats et les clés de votre serveur et de votre client ont tous été générés et sont stockés dans les répertoires appropriés sur votre serveur OpenVPN. Il reste encore quelques actions à effectuer avec ces fichiers, mais celles-ci viendront dans une étape ultérieure. Pour l'instant, vous pouvez passer à la configuration d'OpenVPN.

Étape 7 - Configuration d'OpenVPN

Comme de nombreux autres outils open source largement utilisés, OpenVPN propose de nombreuses options de configuration pour personnaliser votre serveur en fonction de vos besoins spécifiques. Dans cette section, nous fournirons des instructions sur la façon de configurer une configuration de serveur OpenVPN basée sur l'un des exemples de fichiers de configuration inclus dans la documentation de ce logiciel.

Tout d'abord, copiez l'exemple de fichier server.conf comme point de départ pour votre propre fichier de configuration :

sudo cp /usr/share/doc/openvpn/sample/sample-config-files/server.conf /etc/openvpn/server/

Ouvrez le nouveau fichier pour le modifier avec l'éditeur de texte de votre choix. Nous utiliserons nano dans notre exemple :

sudo nano /etc/openvpn/server/server.conf

Nous devrons modifier quelques lignes dans ce fichier. Tout d'abord, trouvez la section HMAC de la configuration en recherchant la directive tls-auth. Cette ligne ne doit pas être commentée. Commentez-le en ajoutant un ; au début de la ligne. Ajoutez ensuite une nouvelle ligne après celle-ci contenant uniquement la valeur tls-crypt ta.key :

/etc/openvpn/server.conf

;tls-auth ta.key 0 # This file is secret
tls-crypt ta.key

Ensuite, trouvez la section sur les chiffrements cryptographiques en recherchant les lignes cipher. La valeur par défaut est définie sur AES-256-CBC, cependant, le chiffrement AES-256-GCM offre un meilleur niveau de cryptage, de performances et est bien pris en charge dans les clients OpenVPN à jour. Nous commenterons la valeur par défaut en ajoutant un signe ; au début de cette ligne, puis nous ajouterons une autre ligne après celle-ci contenant la valeur mise à jour de AES-256-GCM :

/etc/openvpn/server.conf

;cipher AES-256-CBC
cipher AES-256-GCM

Juste après cette ligne, ajoutez une directive auth pour sélectionner l'algorithme de résumé de message HMAC. Pour cela, SHA256 est un bon choix :

/etc/openvpn/server.conf

auth SHA256

Ensuite, recherchez la ligne contenant une directive dh, qui définit les paramètres Diffie-Hellman. Étant donné que nous avons configuré tous les certificats pour utiliser la cryptographie à courbe elliptique, il n'est pas nécessaire d'avoir un fichier de départ Diffie-Hellman. Commentez la ligne existante qui ressemble à dh dh2048.pem ou dh dh.pem. Le nom de fichier de la clé Diffie-Hellman peut être différent de celui indiqué dans l'exemple de fichier de configuration de serveur. Ajoutez ensuite une ligne après avec le contenu dh none :

/etc/openvpn/server.conf

;dh dh2048.pem
dh none

Ensuite, nous voulons qu'OpenVPN s'exécute sans privilèges une fois qu'il a démarré, nous devons donc lui dire de s'exécuter avec un utilisateur et un groupe de nobody. Pour activer cela, recherchez et décommentez les lignes user nobody et group nobody en supprimant le signe ; au début de chaque ligne :

/etc/openvpn/server.conf

user nobody
group nobody

(Facultatif) Envoyez les modifications DNS pour rediriger tout le trafic via le VPN

Les paramètres ci-dessus créeront la connexion VPN entre votre client et votre serveur, mais ne forceront aucune connexion à utiliser le tunnel. Si vous souhaitez utiliser le VPN pour acheminer tout le trafic de votre client via le VPN, vous voudrez probablement pousser certains paramètres supplémentaires vers les ordinateurs clients.

Pour commencer, recherchez et décommentez la ligne contenant push "redirect-gateway def1 bypass-dhcp". Cela indiquera à votre client de rediriger tout son trafic via votre serveur OpenVPN. Sachez que l'activation de cette fonctionnalité peut entraîner des problèmes de connectivité avec d'autres services réseau, tels que SSH :

/etc/openvpn/server.conf

push "redirect-gateway def1 bypass-dhcp"

Juste en dessous de cette ligne, trouvez la section dhcp-option. Encore une fois, supprimez le ; du début des deux lignes pour les décommenter :

/etc/openvpn/server.conf

push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

Ces lignes indiqueront à votre client d'utiliser les Résolveurs OpenDNS gratuits aux adresses IP répertoriées. Si vous préférez d'autres résolveurs DNS, vous pouvez les remplacer par les adresses IP en surbrillance.

Cela aidera les clients à reconfigurer leurs paramètres DNS pour utiliser le tunnel VPN comme passerelle par défaut.

(Facultatif) Ajustez le port et le protocole

Par défaut, le serveur OpenVPN utilise le port 1194 et le protocole UDP pour accepter les connexions client. Si vous devez utiliser un port différent en raison d'environnements réseau restrictifs dans lesquels vos clients peuvent se trouver, vous pouvez modifier l'option port. Si vous n'hébergez pas de contenu Web sur votre serveur OpenVPN, le port 443 est un choix populaire car il est généralement autorisé par les règles de pare-feu.

Pour modifier OpenVPN afin qu'il écoute sur le port 443, ouvrez le fichier server.conf et recherchez la ligne qui ressemble à ceci :

/etc/openvpn/server.conf

port 1194

Modifiez-le pour que le port soit 443 :

/etc/openvpn/server.conf

# Optional!
port 443

Souvent, le protocole est également limité à ce port. Si c'est le cas, recherchez la ligne proto sous la ligne port et modifiez le protocole de udp à tcp :

/etc/openvpn/server.conf

# Optional!
proto tcp

Si vous faites basculer le protocole sur TCP, vous devrez changer la valeur de la directive explicit-exit-notify de 1 à 0, car cette directive est uniquement utilisée par l'UDP. Ne pas le faire lors de l'utilisation de TCP entraînera des erreurs lorsque vous démarrerez le service OpenVPN.

Trouvez la ligne explicit-exit-notify à la fin du fichier et changez la valeur en 0 :

/etc/openvpn/server.conf

# Optional!
explicit-exit-notify 0

Si vous n'avez pas besoin d'utiliser un port et un protocole différents, il est préférable de laisser ces paramètres inchangés.

(Facultatif) Pointez sur les informations d'identification non par défaut

Si vous avez précédemment sélectionné un nom différent lors de la commande ./easyrsa gen-req server, modifiez les lignes cert et key dans le fichier de configuration server.conf afin qu'elles pointent vers la commande appropriée. Fichiers .crt et .key. Si vous avez utilisé le nom par défaut, server, celui-ci est déjà correctement défini :

/etc/openvpn/server.conf

cert server.crt
key server.key

Lorsque vous avez terminé, enregistrez et fermez le fichier.

Vous avez maintenant terminé la configuration de vos paramètres généraux OpenVPN. Dans l'étape suivante, nous personnaliserons les options de mise en réseau du serveur.

Étape 8 - Ajustement de la configuration de la mise en réseau du serveur OpenVPN

Certains aspects de la configuration réseau du serveur doivent être modifiés afin qu'OpenVPN puisse acheminer correctement le trafic via le VPN. Le premier d'entre eux est le transfert IP, une méthode permettant de déterminer où le trafic IP doit être acheminé. Ceci est essentiel à la fonctionnalité VPN que votre serveur fournira.

Pour régler le paramètre de transfert IP par défaut de votre serveur OpenVPN, ouvrez le fichier /etc/sysctl.conf à l'aide de nano ou de votre éditeur préféré :

sudo nano /etc/sysctl.conf

Ajoutez ensuite la ligne suivante en haut du fichier :

/etc/sysctl.conf

net.ipv4.ip_forward = 1

Enregistrez et fermez le fichier lorsque vous avez terminé.

Pour lire le fichier et charger les nouvelles valeurs pour la session en cours, tapez :

sudo sysctl -p
Outputnet.ipv4.ip_forward = 1

Désormais, votre serveur OpenVPN pourra transférer le trafic entrant d'un périphérique Ethernet à un autre. Ce paramètre garantit que le serveur peut diriger le trafic des clients qui se connectent sur l'interface VPN virtuelle vers ses autres périphériques Ethernet physiques. Cette configuration acheminera tout le trafic Web de votre client via l'adresse IP de votre serveur, et l'adresse IP publique de votre client sera effectivement masquée.

Dans l'étape suivante, vous devrez configurer certaines règles de pare-feu pour vous assurer que le trafic vers et depuis votre serveur OpenVPN circule correctement.

Étape 9 - Configuration du pare-feu

Jusqu'à présent, vous avez installé OpenVPN sur votre serveur, l'avez configuré et généré les clés et les certificats nécessaires pour que votre client puisse accéder au VPN. Cependant, vous n'avez pas encore fourni à OpenVPN d'instructions sur l'endroit où envoyer le trafic Web entrant des clients. Vous pouvez stipuler comment le serveur doit gérer le trafic client en établissant des règles de pare-feu et des configurations de routage.

En supposant que vous ayez suivi les prérequis au début de ce didacticiel, vous devriez déjà avoir firewalld installé et en cours d'exécution sur votre serveur. Pour autoriser OpenVPN à travers le pare-feu, vous devez savoir quelle est votre zone firewalld active. Trouvez ceci avec la commande suivante :

sudo firewall-cmd --get-active-zones
Outputpublic
Interfaces: eth0

Si vous ne voyez pas de zone trusted qui répertorie l'interface tun0, exécutez les commandes suivantes pour ajouter le périphérique VPN à cette zone :

sudo firewall-cmd --zone=trusted --add-interface=tun0
sudo firewall-cmd --permanent --zone=trusted --add-interface=tun0

Ensuite, ajoutez le service openvpn à la liste des services autorisés par firewalld dans votre zone active, puis rendez ce paramètre permanent en exécutant à nouveau la commande mais avec l'option --permanent ajoutée:

sudo firewall-cmd --permanent --add-service openvpn
sudo firewall-cmd --permanent --zone=trusted --add-service openvpn

Pour appliquer les modifications sur le pare-feu, exécutez :

sudo firewall-cmd --reload

Vous pouvez maintenant vérifier que le service a bien été ajouté avec la commande suivante :

sudo firewall-cmd --list-services --zone=trusted
Outputopenvpn

Ensuite, nous ajouterons une règle de masquage au pare-feu. Le masquage permet à votre serveur OpenVPN de traduire les adresses de vos clients OpenVPN dans la propre adresse publique du serveur, puis de faire l'inverse avec le trafic renvoyé aux clients. Ce processus est également connu sous le nom de Network Address Translation (NAT).

Ajoutez des règles de masquage avec les commandes suivantes :

sudo firewall-cmd --add-masquerade
sudo firewall-cmd --add-masquerade --permanent

Vous pouvez vérifier que le mascarade a été ajouté correctement avec cette commande :

sudo firewall-cmd --query-masquerade
Outputyes

Ensuite, vous devrez créer la règle de masquage spécifique pour votre sous-réseau OpenVPN uniquement. Vous pouvez le faire en créant d'abord une variable shell (DEVICE dans notre exemple) qui représentera l'interface réseau principale utilisée par votre serveur, puis en utilisant cette variable pour ajouter de manière permanente la règle de routage :

DEVICE=$(ip route | awk '/^default via/ {print $5}')
sudo firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o $DEVICE -j MASQUERADE

Assurez-vous de recharger firewalld pour que toutes vos modifications prennent effet :

sudo firewall-cmd --reload

Les commandes avec l'indicateur --permanent garantiront que les règles persisteront lors des redémarrages. La commande firewall-cmd --reload s'assure que toutes les modifications en suspens du pare-feu sont appliquées. Avec les règles de pare-feu en place, nous pouvons démarrer le service OpenVPN sur le serveur.

Étape 10 - Démarrage d'OpenVPN

OpenVPN fonctionne en tant que service systemd, nous pouvons donc utiliser systemctl pour le gérer. Nous configurerons OpenVPN pour qu'il démarre au démarrage afin que vous puissiez vous connecter à votre VPN à tout moment tant que votre serveur est en cours d'exécution. Pour ce faire, activez le service OpenVPN en l'ajoutant à systemctl :

sudo systemctl -f enable [email protected]

Démarrez ensuite le service OpenVPN :

sudo systemctl start [email protected]

Vérifiez que le service OpenVPN est actif avec la commande suivante. Vous devriez voir active (running) dans la sortie :

sudo systemctl status [email protected]
Output● [email protected] - OpenVPN service for server
Loaded: loaded (/usr/lib/systemd/system/[email protected]; enabled; vendor preset: disabled)
Active: active (running) since Tue 2020-04-07 02:32:07 UTC; 1min 52s ago
Docs: man:openvpn(8)
https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
https://community.openvpn.net/openvpn/wiki/HOWTO
Main PID: 15868 (openvpn)
Status: "Initialization Sequence Completed"
Tasks: 1 (limit: 5059)
Memory: 1.2M
CGroup: /system.slice/system-openvpn\x2dserver.slice/[email protected]
└─15868 /usr/sbin/openvpn --status /run/openvpn-server/status-server.log --status-version 2 --suppress-timestamps --cipher AES-256-GCM --ncp-ciphers AES-256-GCM:AES-128-GCM:AES-256-CBC:AES-128-CBC:BF-CBC --config server.conf
. . .

Nous avons maintenant terminé la configuration côté serveur pour OpenVPN. Ensuite, vous allez configurer votre machine cliente et vous connecter au serveur OpenVPN.

Étape 11 - Création de l'infrastructure de configuration client

La création de fichiers de configuration pour les clients OpenVPN peut être quelque peu compliquée, car chaque client doit avoir sa propre configuration et chacun doit s'aligner sur les paramètres définis dans le fichier de configuration du serveur. Plutôt que d'écrire un seul fichier de configuration qui ne peut être utilisé que sur un seul client, cette étape décrit un processus de création d'une infrastructure de configuration client que vous pouvez utiliser pour générer des fichiers de configuration à la volée. Vous allez d'abord créer un fichier de configuration "de base", puis créer un script qui vous permettra de générer des fichiers de configuration client uniques, des certificats et des clés selon vos besoins.

Commencez par créer un nouveau répertoire dans lequel vous stockerez les fichiers de configuration client dans le répertoire client-configs que vous avez créé précédemment :

mkdir -p ~/client-configs/files

Ensuite, copiez un exemple de fichier de configuration client dans le répertoire client-configs à utiliser comme configuration de base :

cp /usr/share/doc/openvpn/sample/sample-config-files/client.conf ~/client-configs/base.conf

Ouvrez ce nouveau fichier en utilisant nano ou votre éditeur de texte préféré :

nano ~/client-configs/base.conf

À l'intérieur, localisez la directive remote. Cela pointe le client vers l'adresse de votre serveur OpenVPN - l'adresse IP publique de votre serveur OpenVPN. Si vous avez décidé de changer le port sur lequel le serveur OpenVPN écoute, vous devrez également remplacer 1194 par le port que vous avez sélectionné :

~/client-configs/base.conf

. . .
# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote your_server_ip 1194
. . .

Assurez-vous que le protocole correspond à la valeur que vous utilisez dans la configuration du serveur :

~/client-configs/base.conf

proto udp

Décommentez ensuite les directives user et group en supprimant le signe ; au début de chaque ligne :

~/client-configs/base.conf

# Downgrade privileges after initialization (non-Windows only)
user nobody
group nobody

Recherchez les directives qui définissent ca, cert et key. Commentez ces directives puisque vous ajouterez bientôt les certificats et les clés dans le fichier lui-même :

~/client-configs/base.conf

# SSL/TLS parms.
# See the server config file for more
# description. It's best to use
# a separate .crt/.key file pair
# for each client. A single ca
# file can be used for all clients.
;ca ca.crt
;cert client.crt
;key client.key

De même, commentez la directive tls-auth, car vous ajouterez ta.key directement dans le fichier de configuration client (et le serveur est configuré pour utiliser tls-crypt) :

~/client-configs/base.conf

# If a tls-auth key is used on the server
# then every client must also have the key.
;tls-auth ta.key 1

Mettez en miroir les paramètres cipher et auth que vous avez définis dans le fichier /etc/openvpn/server/server.conf :

~/client-configs/base.conf

cipher AES-256-GCM
auth SHA256

Ensuite, ajoutez la directive key-direction quelque part dans le fichier. Vous devez définir ceci sur "1" pour que le VPN fonctionne correctement sur la machine client :

~/client-configs/base.conf

key-direction 1

Enfin, ajoutez quelques lignes commentées. Bien que vous puissiez inclure ces directives dans chaque fichier de configuration client, il vous suffit de les activer pour les clients Linux livrés avec un fichier /etc/openvpn/update-resolv-conf. Ce script utilise l'utilitaire resolvconf pour mettre à jour les informations DNS des clients Linux.

~/client-configs/base.conf

; script-security 2
; up /etc/openvpn/update-resolv-conf
; down /etc/openvpn/update-resolv-conf

Si votre client exécute Linux et possède un fichier /etc/openvpn/update-resolv-conf, décommentez ces lignes du fichier de configuration du client après sa génération.

Enregistrez et fermez le fichier lorsque vous avez terminé.

Ensuite, nous allons créer un script qui compilera votre configuration de base avec les fichiers de certificat, de clé et de chiffrement pertinents, puis placerons la configuration générée dans le répertoire ~/client-configs/files. Ouvrez un nouveau fichier nommé make_config.sh dans le répertoire ~/client-configs :

nano ~/client-configs/make_config.sh

À l'intérieur, ajoutez le contenu suivant :

~/client-configs/make_config.sh

#!/bin/bash
 
# First argument: Client identifier
 
KEY_DIR=~/client-configs/keys
OUTPUT_DIR=~/client-configs/files
BASE_CONFIG=~/client-configs/base.conf
 
cat ${BASE_CONFIG} \
<(echo -e '<ca>') \
${KEY_DIR}/ca.crt \
<(echo -e '</ca>\n<cert>') \
${KEY_DIR}/${1}.crt \
<(echo -e '</cert>\n<key>') \
${KEY_DIR}/${1}.key \
<(echo -e '</key>\n<tls-crypt>') \
${KEY_DIR}/ta.key \
<(echo -e '</tls-crypt>') \
> ${OUTPUT_DIR}/${1}.ovpn

Enregistrez et fermez le fichier lorsque vous avez terminé.

Avant de continuer, assurez-vous de marquer ce fichier comme exécutable en tapant :

chmod 700 ~/client-configs/make_config.sh

Ce script fera une copie du fichier base.conf que vous avez créé, collectera tous les fichiers de certificat et de clé que vous avez créés pour votre client, extraira leur contenu, les ajoutera à la copie du fichier de configuration de base et exportera tout ce contenu dans un nouveau fichier de configuration client. Cela signifie que, plutôt que d'avoir à gérer séparément les fichiers de configuration, de certificat et de clé du client, toutes les informations requises sont stockées au même endroit. L'avantage d'utiliser cette méthode est que si vous avez besoin d'ajouter un client à l'avenir, vous pouvez exécuter ce script pour créer rapidement un nouveau fichier de configuration et vous assurer que toutes les informations importantes sont stockées dans un seul fichier facile d'accès. emplacement.

Veuillez noter qu'à chaque fois que vous ajoutez un nouveau client, vous devrez générer de nouvelles clés et de nouveaux certificats pour celui-ci avant de pouvoir exécuter ce script et générer son fichier de configuration. Vous vous exercerez à utiliser ce script à l'étape suivante.

Étape 12 - Génération de configurations client

Si vous avez suivi le guide, vous avez créé un certificat client et une clé nommés client1.crt et client1.key, respectivement, à l'étape 6. Vous pouvez générer un fichier de configuration pour ces informations d'identification en vous déplaçant dans votre répertoire ~/client-configs et en exécutant le script que vous avez créé à la fin de l'étape précédente :

cd ~/client-configs
./make_config.sh client1

Cela créera un fichier nommé client1.ovpn dans votre répertoire ~/client-configs/files :

ls ~/client-configs/files
Outputclient1.ovpn

Vous devez transférer ce fichier sur l'appareil que vous prévoyez d'utiliser en tant que client. Par exemple, il peut s'agir de votre ordinateur local ou d'un appareil mobile.

Bien que les applications exactes utilisées pour effectuer ce transfert dépendent du système d'exploitation de votre appareil et de vos préférences personnelles, une méthode fiable et sécurisée consiste à utiliser SFTP (protocole de transfert de fichiers SSH) ou SCP (Secure Copy) sur le backend. Cela transportera les fichiers d'authentification VPN de votre client sur une connexion cryptée.

Voici un exemple de commande SFTP que vous pouvez exécuter depuis votre ordinateur local (macOS ou Linux). Cela copiera le fichier client1.ovpn que nous avons créé à la dernière étape dans votre répertoire personnel :

sftp sammy@openvpn_server_ip:client-configs/files/client1.ovpn ~/

Voici plusieurs outils et tutoriels pour transférer en toute sécurité des fichiers du serveur OpenVPN vers un ordinateur local :

Étape 13 - Installation de la configuration client

Cette section explique comment installer un profil VPN client sur Windows, macOS, Linux, iOS et Android. Aucune de ces instructions client ne dépend les unes des autres, alors n'hésitez pas à passer à celle qui s'applique à votre appareil.

La connexion OpenVPN aura le même nom que celui que vous avez appelé le fichier .ovpn. En ce qui concerne ce didacticiel, cela signifie que la connexion est nommée client1.ovpn, en s'alignant sur le premier fichier client que vous avez généré.

les fenêtres

Installation

Téléchargez l'application client OpenVPN pour Windows à partir de Page de téléchargement d'OpenVPN. Choisissez la version d'installation appropriée pour votre version de Windows.

Remarque : OpenVPN a besoin de privilèges administratifs pour s'installer.


Après avoir installé OpenVPN, copiez le fichier .ovpn dans :

C:\Program Files\OpenVPN\config

Lorsque vous lancez OpenVPN, il localise automatiquement le profil et le rend disponible.

Vous devez exécuter OpenVPN en tant qu'administrateur à chaque fois qu'il est utilisé, même par des comptes administratifs. Pour ce faire sans avoir à cliquer avec le bouton droit de la souris et à sélectionner Exécuter en tant qu'administrateur à chaque fois que vous utilisez le VPN, vous devez le prédéfinir à partir d'un compte administrateur. Cela signifie également que les utilisateurs standard devront entrer le mot de passe de l'administrateur pour utiliser OpenVPN. D'un autre côté, les utilisateurs standard ne peuvent pas se connecter correctement au serveur à moins que l'application OpenVPN sur le client n'ait des droits d'administrateur, donc les privilèges élevés sont nécessaires.

Pour configurer l'application OpenVPN afin qu'elle s'exécute toujours en tant qu'administrateur, cliquez avec le bouton droit sur son icône de raccourci et accédez à Propriétés. Au bas de l'onglet Compatibilité, cliquez sur le bouton Modifier les paramètres pour tous les utilisateurs. Dans la nouvelle fenêtre, cochez Exécuter ce programme en tant qu'administrateur.

De liaison

Chaque fois que vous lancez l'interface graphique OpenVPN, Windows vous demandera si vous souhaitez autoriser le programme à apporter des modifications à votre ordinateur. Cliquez sur Oui. Le lancement de l'application client OpenVPN place uniquement l'applet dans la barre d'état système afin que vous puissiez vous connecter et déconnecter le VPN selon vos besoins ; il n'établit pas réellement la connexion VPN.

Une fois OpenVPN démarré, initiez une connexion en accédant à l'applet de la barre d'état système et en cliquant avec le bouton droit sur l'icône de l'applet OpenVPN. Cela ouvre le menu contextuel. Sélectionnez client1 en haut du menu (c'est votre profil client1.ovpn) et choisissez Connecter.

Une fenêtre d'état s'ouvrira montrant la sortie du journal pendant que la connexion est établie, et un message s'affichera une fois que le client sera connecté.

Déconnectez-vous du VPN de la même manière : accédez à l'applet de la barre d'état système, cliquez avec le bouton droit sur l'icône de l'applet OpenVPN, sélectionnez le profil client et cliquez sur Déconnecter.

macOS

Installation

Tunnelblick est un client OpenVPN gratuit et open source pour macOS. Vous pouvez télécharger la dernière image disque à partir de la page Téléchargements Tunnelblick. Double-cliquez sur le fichier .dmg téléchargé et suivez les invites pour l'installer.

Vers la fin du processus d'installation, Tunnelblick vous demandera si vous avez des fichiers de configuration. Répondez J'ai des fichiers de configuration et laissez Tunnelblick terminer. Ouvrez une fenêtre du Finder et double-cliquez sur client1.ovpn. Tunnelblick installera le profil client. Des privilèges administratifs sont requis.

De liaison

Lancez Tunnelblick en double-cliquant sur l'icône Tunnelblick dans le dossier Applications. Une fois Tunnelblick lancé, il y aura une icône Tunnelblick dans la barre de menu en haut à droite de l'écran pour contrôler les connexions. Cliquez sur l'icône, puis sur l'élément de menu Connect client1 pour initier la connexion VPN.

Linux

Installation

Si vous utilisez Linux, il existe une variété d'outils que vous pouvez utiliser en fonction de votre distribution. Votre environnement de bureau ou gestionnaire de fenêtres peut également inclure des utilitaires de connexion.

Cependant, la manière la plus universelle de se connecter consiste simplement à utiliser le logiciel OpenVPN.

Sur Ubuntu ou Debian, vous pouvez l'installer comme vous l'avez fait sur le serveur en tapant :

sudo apt update
sudo apt install openvpn

Sur CentOS, vous pouvez activer les référentiels EPEL puis l'installer en tapant :

sudo yum install epel-release
sudo yum install openvpn

Configuration

Vérifiez si votre distribution inclut un script /etc/openvpn/update-resolv-conf :

ls /etc/openvpn
Outputupdate-resolv-conf

Ensuite, modifiez le fichier de configuration du client OpenVPN que vous avez transféré :

nano client1.ovpn

Si vous avez trouvé un fichier update-resolv-conf, décommentez les trois lignes que vous avez ajoutées pour ajuster les paramètres DNS :

client1.ovpn

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

Si vous utilisez CentOS, changez la directive group de nogroup à nobody pour correspondre aux groupes disponibles de la distribution :

client1.ovpn

group nobody

Enregistrez et fermez le fichier.

Maintenant, vous pouvez vous connecter au VPN en pointant simplement la commande openvpn vers le fichier de configuration client :

sudo openvpn --config client1.ovpn

Cela devrait vous connecter à votre VPN.

iOS

Installation

Depuis l'iTunes App Store, recherchez et installez OpenVPN Connect, l'application client iOS OpenVPN officielle. Pour transférer la configuration de votre client iOS sur l'appareil, connectez-le directement à un ordinateur.

Le processus de réalisation du transfert avec iTunes est décrit ici. Ouvrez iTunes sur l'ordinateur et cliquez sur iPhone > apps. Faites défiler vers le bas jusqu'à la section Partage de fichiers et cliquez sur l'application OpenVPN. La fenêtre vide à droite, Documents OpenVPN, est destinée au partage de fichiers. Faites glisser le fichier .ovpn vers la fenêtre Documents OpenVPN.

Lancez maintenant l'application OpenVPN sur l'iPhone. Vous recevrez une notification indiquant qu'un nouveau profil est prêt à être importé. Appuyez sur le signe plus vert pour l'importer.

De liaison

OpenVPN est maintenant prêt à être utilisé avec le nouveau profil. Démarrez la connexion en faisant glisser le bouton Connecter vers la position On. Déconnectez-vous en faisant glisser le même bouton sur Off.

Remarque : Le commutateur VPN sous Paramètres ne peut pas être utilisé pour se connecter au VPN. Si vous essayez, vous recevrez un avis vous invitant à vous connecter uniquement à l'aide de l'application OpenVPN.


Android

Installation

Ouvrez la boutique Google Play. Recherchez et installez Android OpenVPN Connect, l'application client Android OpenVPN officielle.

Vous pouvez transférer le profil .ovpn en connectant l'appareil Android à votre ordinateur par USB et en copiant le fichier. Alternativement, si vous avez un lecteur de carte SD, vous pouvez retirer la carte SD de l'appareil, copier le profil dessus, puis réinsérer la carte dans l'appareil Android.

Démarrez l'application OpenVPN et appuyez sur le menu FILE pour importer le profil.

Naviguez ensuite jusqu'à l'emplacement du profil enregistré (la capture d'écran utilise /storage/emulated/0/openvpn) et sélectionnez votre fichier .ovpn. Appuyez sur le bouton IMPORT pour terminer l'importation de ce profil.

Connexion Une fois le profil ajouté, vous verrez un écran comme celui-ci :

Pour vous connecter, appuyez sur le bouton bascule à côté du profil que vous souhaitez utiliser. Vous verrez des statistiques en temps réel de votre connexion et du trafic acheminé via votre serveur OpenVPN :

Pour vous déconnecter, appuyez à nouveau sur le bouton bascule en haut à gauche. Vous serez invité à confirmer que vous souhaitez vous déconnecter de votre VPN.

Étape 14 - Test de votre connexion VPN (facultatif)

Remarque : Cette méthode de test de votre connexion VPN ne fonctionnera que si vous avez choisi d'acheminer tout votre trafic via le VPN à l'étape 7 lorsque vous avez modifié le fichier server.conf pour OpenVPN.


Une fois que tout est installé, une simple vérification confirme que tout fonctionne correctement. Sans avoir une connexion VPN activée, ouvrez un navigateur et accédez à DNSLeakTest.

Le site renverra l'adresse IP attribuée par votre fournisseur de services Internet et telle que vous apparaissez dans le reste du monde. Pour vérifier vos paramètres DNS via le même site Web, cliquez sur Extended Test et il vous dira quels serveurs DNS vous utilisez.

Connectez maintenant le client OpenVPN au VPN de votre Droplet et actualisez le navigateur. Une adresse IP complètement différente (celle de votre serveur VPN) devrait maintenant apparaître, et c'est ainsi que vous apparaissez au monde. Encore une fois, DNSLeakTest Extended Test vérifiera vos paramètres DNS et confirmera que vous utilisez maintenant les résolveurs DNS poussés par votre VPN.

Étape 15 - Révocation des certificats clients

Parfois, vous devrez peut-être révoquer un certificat client pour empêcher tout accès ultérieur au serveur OpenVPN.

Pour ce faire, suivez l'exemple du tutoriel prérequis sur Comment installer et configurer une autorité de certification sur CentOS 8 sous la section Révocation d'un certificat.

Une fois que vous avez révoqué un certificat pour un client en utilisant ces instructions, vous devrez copier le fichier crl.pem généré sur votre serveur OpenVPN dans le répertoire /etc/openvpn/server :

sudo cp /tmp/crl.pem /etc/openvpn/server/

Ensuite, ouvrez le fichier de configuration du serveur OpenVPN :

sudo nano /etc/openvpn/server/server.conf

Au bas du fichier, ajoutez l'option crl-verify, qui demandera au serveur OpenVPN de vérifier la liste de révocation de certificats que nous avons créée à chaque tentative de connexion :

/etc/openvpn/server/server.conf

crl-verify crl.pem

Enregistrez et fermez le fichier.

Enfin, redémarrez OpenVPN pour implémenter la révocation du certificat :

sudo systemctl restart [email protected]

Le client ne devrait plus être en mesure de se connecter avec succès au serveur à l'aide de l'ancien identifiant.

Pour révoquer des clients supplémentaires, suivez ce processus :

  1. Révoquer le certificat avec la commande ./easyrsa revoke client_name
  2. Générer une nouvelle CRL
  3. Transférez le nouveau fichier crl.pem sur votre serveur OpenVPN et copiez-le dans le répertoire /etc/openvpn/server/ pour écraser l'ancienne liste.
  4. Redémarrez le service OpenVPN.

Vous pouvez utiliser ce processus pour révoquer tous les certificats que vous avez précédemment émis pour votre serveur.

Conclusion

Vous devriez maintenant avoir un réseau privé virtuel entièrement opérationnel fonctionnant sur votre serveur OpenVPN. Vous pouvez naviguer sur le Web et télécharger du contenu sans vous soucier des acteurs malveillants qui suivent votre activité.

Vous pouvez suivre plusieurs étapes pour personnaliser davantage votre installation OpenVPN, telles que la configuration de votre client pour qu'il se connecte automatiquement au VPN ou la configuration de règles et de politiques d'accès spécifiques au client. Pour ces personnalisations OpenVPN et d'autres, vous devez consulter la documentation officielle OpenVPN.

Pour configurer plus de clients, il vous suffit de suivre les étapes 6 et 11-13 pour chaque appareil supplémentaire. Pour révoquer l'accès aux clients, suivez l'étape 15.