GNU/Linux >> Tutoriels Linux >  >> Panels >> OpenVPN

Comment installer et configurer un serveur OpenVPN sur Ubuntu 22.04

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 lorsque vous êtes connecté à un réseau non fiable, comme le Wi-Fi d'un hôtel ou d'un café.

Lorsqu'elle est combinée avec des 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 Ubuntu 22.04, 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, veuillez faire attention au volume de trafic que votre serveur gère.

Voir cette page pour plus d'informations.

Prérequis

Pour suivre ce tutoriel, vous aurez besoin de :

  • Un serveur Ubuntu 22.04 avec un utilisateur sudo non root et un pare-feu activé. Pour le configurer, vous pouvez suivre notre tutoriel Configuration initiale du serveur avec Ubuntu 22.04. Nous l'appellerons le serveur OpenVPN tout au long de ce guide.
  • Un serveur Ubuntu 22.04 distinct configuré en tant qu'autorité de certification (CA) privée, que nous appellerons le serveur CA 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 Ubuntu 22.04 pour y parvenir.

Remarque : Bien qu'il soit techniquement possible d'utiliser votre serveur OpenVPN ou votre machine locale comme autorité de certification, cela n'est pas recommandé car cela expose votre VPN à certaines vulnérabilités de sécurité. Selon la documentation officielle d'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 Ubuntu 22.04 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.

Avec ces conditions préalables en place, vous êtes prêt à commencer à installer et à configurer un serveur OpenVPN sur Ubuntu 22.04.

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 aux authorized_keys de la machine CA. fichier et inversement. Voir Comment configurer des clés SSH sur Ubuntu 22.04 pour obtenir des instructions sur la façon d'effectuer l'une de ces solutions.

Étape 1 — Installer OpenVPN et 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.

Pour commencer, mettez à jour l'index de package de votre serveur OpenVPN et installez OpenVPN et Easy-RSA. Les deux packages sont disponibles dans les référentiels par défaut d'Ubuntu, vous pouvez donc utiliser apt pour l'installation :

  1. sudo apt update
  2. sudo apt 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 :

  1. mkdir ~/easy-rsa

Maintenant, vous devrez créer un lien symbolique à partir de easyrsa script que le paquet a installé dans le ~/easy-rsa répertoire que vous venez de créer :

  1. ln -s /usr/share/easy-rsa/* ~/easy-rsa/

Remarque : Alors que d'autres guides peuvent vous demander de copier le easy-rsa fichiers de package dans votre répertoire PKI, ce didacticiel adopte une approche de lien symbolique. Par conséquent, toute mise à jour de easy-rsa sera automatiquement reflété 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 :

  1. sudo chown sammy ~/easy-rsa
  2. 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 quelques valeurs par défaut. Vous allez d'abord cd dans le easy-rsa répertoire, puis vous allez créer et modifier le vars fichier à l'aide de nano ou de votre éditeur de texte préféré.

  1. cd ~/easy-rsa
  2. 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"

Ce sont les deux seules lignes dont vous avez besoin dans ce vars fichier sur votre serveur OpenVPN car il ne sera pas utilisé comme autorité de certification. Ils s'assureront 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 connu sous le nom de clé publique/privée) pour effectuer une poignée de main TLS. Cependant, lors de la transmission du trafic VPN chiffré, le serveur et les clients utilisent le chiffrement symétrique, également appelé chiffrement à 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 aussi rapidement que possible.

Une fois que vous avez rempli les vars fichier, vous pouvez procéder à la création du répertoire PKI. Pour ce faire, exécutez le easyrsa script avec le init-pki option. 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 :

  1. ./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. L'ICP 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 ~/easy-rsa répertoire sur votre serveur OpenVPN en tant qu'utilisateur non root :

  1. cd ~/easy-rsa

Vous allez maintenant appeler easyrsa avec le 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 tutoriel, le CN du serveur OpenVPN sera server . Assurez-vous d'inclure le nopass possibilité également. 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 un nom autre que server ici, vous devrez ajuster certaines des instructions ci-dessous. Par exemple, lors de la copie des fichiers générés dans le /etc/openvpn répertoire, vous devrez substituer les noms corrects. Vous devrez également modifier le /etc/openvpn/server.conf fichier plus tard pour pointer vers le bon .crt et .key fichiers.

  1. ./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 /etc/openvpn/server répertoire :

  1. 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 server certificat et validez-le. 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 le server.req demande de certificat au serveur CA pour signature :

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

Si vous avez suivi le didacticiel préalable How To Set Up and Configure a Certificate Authority (CA) on Ubuntu 22.04, l'étape suivante consiste à vous connecter au serveur CA en tant qu'utilisateur non root que vous avez créé pour gérer votre autorité de certification. Vous allez cd au ~/easy-rsa répertoire où vous avez créé votre PK puis importez la demande de certificat en utilisant le easyrsa script :

  1. cd ~/easy-rsa
  2. ./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 easyrsa script avec le sign-req option, suivi du type de demande et du nom commun. Le type de requête peut être soit client ou server . Puisque vous travaillez avec la demande de certificat du serveur OpenVPN, assurez-vous d'utiliser le server type de demande :

  1. ./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 résultat server.crt Le fichier 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 le server.crt et ca.crt fichiers du serveur CA vers le serveur OpenVPN :

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

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

  1. 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, ajoutez une clé secrète partagée supplémentaire que le serveur et tous les clients utiliseront avec tls-crypt d'OpenVPN directif. 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 contrôles 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échiffrement 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 le tls-crypt clé pré-partagée, exécutez ce qui suit sur le serveur OpenVPN dans le ~/easy-rsa répertoire :

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

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

  1. sudo cp ta.key /etc/openvpn/server

Une fois 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 vous pouvez 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.

Vous allez 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é :

  1. 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é :

  1. chmod -R 700 ~/client-configs

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

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

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

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

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

  1. 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 :

  1. cd ~/easy-rsa
  2. ./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 client type de demande :

  1. ./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 :

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

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

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

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

  1. cp ~/easy-rsa/ta.key ~/client-configs/keys/
  2. sudo cp /etc/openvpn/server/ca.crt ~/client-configs/keys/
  3. 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 server.conf comme point de départ pour votre propre fichier de configuration :

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

Ouvrez le nouveau fichier pour le modifier avec nano ou l'éditeur de texte de votre choix :

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

Vous devrez modifier quelques lignes dans ce fichier. Tout d'abord, trouvez le HMAC section de la configuration en recherchant le tls-auth directif. Cette ligne sera activée par défaut. Commentez-le en ajoutant un ; au début de la ligne. Ajoutez ensuite une nouvelle ligne après celle-ci contenant la valeur tls-crypt ta.key uniquement :

/etc/openvpn/server/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 le cipher lignes. La valeur par défaut est définie sur AES-256-CBC , cependant, le AES-256-GCM cipher offre un meilleur niveau de cryptage, de performances et est bien pris en charge dans les clients OpenVPN à jour. Commentez la valeur par défaut en ajoutant un ; signe au début de cette ligne, puis ajoutez une autre ligne après celle-ci contenant la valeur mise à jour de AES-256-GCM :

/etc/openvpn/server/server.conf
;cipher AES-256-CBC
cipher AES-256-GCM

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

/etc/openvpn/server/server.conf
auth SHA256

Ensuite, trouvez la ligne contenant un dh directive, qui définit les paramètres Diffie-Hellman. Étant donné que vous avez configuré tous les certificats pour utiliser la cryptographie à courbe elliptique, aucun fichier de départ Diffie-Hellman n'est nécessaire. 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/server.conf
;dh dh2048.pem
dh none

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

/etc/openvpn/server/server.conf
user nobody
group nogroup

(Facultatif) Transférez 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/server.conf
push "redirect-gateway def1 bypass-dhcp"

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

/etc/openvpn/server/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 substituer à la place des 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 le port option. Si vous n'hébergez pas de contenu Web sur votre serveur OpenVPN, portez 443 est un choix populaire car il est généralement autorisé par les règles de pare-feu.

Pour changer OpenVPN pour écouter sur le port 443, ouvrez le server.conf fichier et recherchez la ligne qui ressemble à ceci :

/etc/openvpn/server/server.conf
port 1194

Modifiez-le pour que le port soit 443 :

/etc/openvpn/server/server.conf
# Optional!
port 443

Souvent, le protocole est également limité à ce port. Si oui, trouvez le proto ligne sous le port ligne et changez le protocole de udp vers tcp :

/etc/openvpn/server/server.conf
# Optional!
proto tcp

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

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

/etc/openvpn/server/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) Pointer sur les informations d'identification non par défaut

Si vous avez sélectionné un nom différent lors du ./easyrsa gen-req server commande plus tôt, modifiez le cert et key lignes dans le server.conf fichier de configuration afin qu'ils pointent vers le .crt approprié et .key des dossiers. Si vous avez utilisé le nom par défaut, server , ceci est déjà correctement défini :

/etc/openvpn/server/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. À l'étape suivante, vous personnaliserez les options de mise en réseau du serveur.

Étape 8 - Ajustement de la configuration 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 fichier utilisant nano ou votre éditeur préféré :

  1. sudo nano /etc/sysctl.conf

Ajoutez ensuite la ligne suivante en bas 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 :

  1. 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.

À 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 accède 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 tutoriel, vous devriez déjà avoir ufw installé et exécuté sur votre serveur. Pour autoriser OpenVPN à traverser le pare-feu, vous devez activer le masquage, un concept iptables qui fournit une traduction dynamique d'adresses réseau (NAT) à la volée pour acheminer correctement les connexions client.

Avant d'ouvrir le fichier de configuration du pare-feu pour ajouter les règles de masquage, vous devez d'abord trouver l'interface réseau publique de votre machine. Pour cela, tapez :

  1. ip route list default

Votre interface publique est la chaîne trouvée dans la sortie de cette commande qui suit le mot "dev". Par exemple, ce résultat montre l'interface nommée eth0 , mis en évidence ci-dessous :

Outputdefault via 159.65.160.1 dev eth0 proto static

Lorsque vous avez l'interface associée à votre route par défaut, ouvrez le /etc/ufw/before.rules fichier pour ajouter la configuration appropriée :

  1. sudo nano /etc/ufw/before.rules

Les règles UFW sont généralement ajoutées à l'aide de ufw commande. Règles répertoriées dans le before.rules file, though, are read and put into place before the conventional UFW rules are loaded. Towards the top of the file, add the highlighted lines below. This will set the default policy for the POSTROUTING chain in the nat table and masquerade any traffic coming from the VPN. Remember to replace eth0 in the -A POSTROUTING line below with the interface you found in the above command:

/etc/ufw/before.rules
#
# rules.before
#
# Rules that should be run before the ufw command line added rules. Custom
# rules should be added to one of these chains:
#   ufw-before-input
#   ufw-before-output
#   ufw-before-forward
#
 
# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Allow traffic from OpenVPN client to eth0 (change to the interface you discovered!)
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT
# END OPENVPN RULES
 
# Don't delete these required lines, otherwise there will be errors
*filter
. . .

Save and close the file when you are finished.

Next, you need to tell UFW to allow forwarded packets by default as well. To do this, open the /etc/default/ufw fichier :

  1. sudo nano /etc/default/ufw

Inside, find the DEFAULT_FORWARD_POLICY directive and change the value from DROP to ACCEPT :

/etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"

Save and close the file when you are finished.

Next, adjust the firewall itself to allow traffic to OpenVPN. If you did not change the port and protocol in the /etc/openvpn/server.conf file, you will need to open up UDP traffic to port 1194 . If you modified the port and/or protocol, substitute the values you selected here.

In case you forgot to add the SSH port when following the prerequisite tutorial, add it here as well:

  1. sudo ufw allow 1194/udp
  2. sudo ufw allow OpenSSH

Remarque :If you are using a different firewall or have customized your UFW configuration, you may need to add additional firewall rules. For example, if you decide to tunnel all of your network traffic over the VPN connection, you will need to ensure that port 53 traffic is allowed for DNS requests, and ports like 80 and 443 for HTTP and HTTPS traffic respectively. If there are other protocols that you are using over the VPN then you will need to add rules for them as well.

After adding those rules, disable and re-enable UFW to restart it and load the changes from all of the files you’ve modified:

  1. sudo ufw disable
  2. sudo ufw enable

Your server is now configured to correctly handle OpenVPN traffic. With the firewall rules in place, you can start the OpenVPN service on the server.

Step 10 — Starting OpenVPN

OpenVPN runs as a systemd service, so you can use systemctl to manage it. You will configure OpenVPN to start up at boot so you can connect to your VPN at any time as long as your server is running. To do this, enable the OpenVPN service by adding it to systemctl :

  1. sudo systemctl -f enable [email protected]

Then start the OpenVPN service:

  1. sudo systemctl start [email protected]

Double check that the OpenVPN service is active with the following command. You should see active (running) in the output:

  1. sudo systemctl status [email protected]
Output● [email protected] - OpenVPN service for server
     Loaded: loaded (/lib/systemd/system/[email protected]; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-04-21 17:58:24 UTC; 6s ago
       Docs: man:openvpn(8)
             https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
             https://community.openvpn.net/openvpn/wiki/HOWTO
   Main PID: 144351 (openvpn)
     Status: "Initialization Sequence Completed"
      Tasks: 1 (limit: 4665)
     Memory: 1.8M
        CPU: 27ms
     CGroup: /system.slice/system-openvpn\x2dserver.slice/[email protected]
             └─144351 /usr/sbin/openvpn --status /run/openvpn-server/status-server.log --status-version 2 --suppress-timestamps --config server.conf

. . .

You have now completed the server-side configuration for OpenVPN. Next, you will configure your client machine and connect to the OpenVPN Server.

Step 11 — Creating the Client Configuration Infrastructure

Creating configuration files for OpenVPN clients can be somewhat involved, as every client must have its own config and each must align with the settings outlined in the server’s configuration file. Rather than writing a single configuration file that can only be used on one client, this step outlines a process for building a client configuration infrastructure which you can use to generate config files on-the-fly. You will first create a “base” configuration file then build a script which will allow you to generate unique client config files, certificates, and keys as needed.

Get started by creating a new directory where you will store client configuration files within the client-configs directory you created earlier:

  1. mkdir -p ~/client-configs/files

Next, copy an example client configuration file into the client-configs directory to use as your base configuration:

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

Open this new file using nano or your preferred text editor:

  1. nano ~/client-configs/base.conf

Inside, locate the remote directive. This points the client to your OpenVPN server address — the public IP address of your OpenVPN server. If you decided to change the port that the OpenVPN server is listening on, you will also need to change 1194 to the port you selected:

~/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
. . .

Be sure that the protocol matches the value you are using in the server configuration:

~/client-configs/base.conf
proto udp

Next, uncomment the user et group directives by removing the ; sign at the beginning of each line:

~/client-configs/base.conf
# Downgrade privileges after initialization (non-Windows only)
user nobody
group nogroup

Find the directives that set the ca , cert , and key . Comment out these directives since you will add the certs and keys within the file itself shortly:

~/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

Similarly, comment out the tls-auth directive, as you will add ta.key directly into the client configuration file (and the server is set up to use 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

Mirror the cipher and auth settings that you set in the /etc/openvpn/server/server.conf fichier :

~/client-configs/base.conf
cipher AES-256-GCM
auth SHA256

Next, add the key-direction directive somewhere in the file. You must set this to “1” for the VPN to function correctly on the client machine:

~/client-configs/base.conf
key-direction 1

Finally, add a few commented out lines to handle various methods that Linux based VPN clients will use for DNS resolution. You’ll add two similar, but separate sets of commented out lines. The first set is for clients that do not use systemd-resolved to manage DNS. These clients rely on the resolvconf utility to update DNS information for Linux clients.

~/client-configs/base.conf
; script-security 2
; up /etc/openvpn/update-resolv-conf
; down /etc/openvpn/update-resolv-conf

Now add another set of lines for clients that use systemd-resolved for DNS resolution:

~/client-configs/base.conf
; script-security 2
; up /etc/openvpn/update-systemd-resolved
; down /etc/openvpn/update-systemd-resolved
; down-pre
; dhcp-option DOMAIN-ROUTE .

Save and close the file when you are finished.

Later in Step 13 - Installing the Client Configuration step of this tutorial you will learn how to determine how DNS resolution works on Linux clients and which section to uncomment.

Next, you’ll create a script that will compile your base configuration with the relevant certificate, key, and encryption files and then place the generated configuration in the ~/client-configs/files annuaire. Open a new file called make_config.sh within the ~/client-configs répertoire :

  1. nano ~/client-configs/make_config.sh

Inside, add the following content:

~/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

Save and close the file when you are finished.

Before moving on, be sure to mark this file as executable by typing:

  1. chmod 700 ~/client-configs/make_config.sh

This script will make a copy of the base.conf file you made, collect all the certificate and key files you’ve created for your client, extract their contents, append them to the copy of the base configuration file, and export all of this content into a new client configuration file. This means that, rather than having to manage the client’s configuration, certificate, and key files separately, all the required information is stored in one place. The benefit of using this method is that if you ever need to add a client in the future, you can run this script to quickly create a new config file and ensure that all the important information is stored in a single, easy-to-access location.

Please note that any time you add a new client, you will need to generate new keys and certificates for it before you can run this script and generate its configuration file. You will get some practice using this script in the next step.

Step 12 — Generating Client Configurations

If you followed along with the guide, you created a client certificate and key named client1.crt and client1.key , respectively, in Step 6. You can generate a config file for these credentials by moving into your ~/client-configs directory and running the script you made at the end of the previous step:

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

This will create a file named client1.ovpn in your ~/client-configs/files répertoire :

  1. ls ~/client-configs/files
Outputclient1.ovpn

You need to transfer this file to the device you plan to use as the client. For instance, this could be your local computer or a mobile device.

While the exact applications used to accomplish this transfer will depend on your device’s operating system and your personal preferences, a dependable and secure method is to use SFTP (SSH file transfer protocol) or SCP (Secure Copy) on the backend. This will transport your client’s VPN authentication files over an encrypted connection.

Here is an example SFTP command which you can run from your local computer (macOS or Linux). This will copy the client1.ovpn file you created in the last step to your home directory:

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

Here are several tools and tutorials for securely transferring files from the OpenVPN server to a local computer:

  • WinSCP
  • How To Use SFTP to Securely Transfer Files with a Remote Server
  • How To Use Filezilla to Transfer and Manage Files Securely on your VPS

Step 13 — Installing the Client Configuration

This section covers how to install a client VPN profile on Windows, macOS, Linux, iOS, and Android. None of these client instructions are dependent on one another, so feel free to skip to whichever is applicable to your device.

The OpenVPN connection will have the same name as whatever you called the .ovpn dossier. In regards to this tutorial, this means that the connection is named client1.ovpn , aligning with the first client file you generated.

Windows

Installing

Download the OpenVPN client application for Windows from OpenVPN’s Downloads page. Choose the appropriate installer version for your version of Windows.

Remarque :OpenVPN needs administrative privileges to install.

After installing OpenVPN, copy the .ovpn file to:

C:\Program Files\OpenVPN\config

When you launch OpenVPN, it will automatically locate the profile and make it available.

You must run OpenVPN as an administrator each time it’s used, even by administrative accounts. To do this without having to right-click and select Run as administrator every time you use the VPN, you must preset this from an administrative account. This also means that standard users will need to enter the administrator’s password to use OpenVPN. On the other hand, standard users can’t properly connect to the server unless the OpenVPN application on the client has admin rights, so the elevated privileges are necessary.

To set the OpenVPN application to always run as an administrator, right-click on its shortcut icon and go to Properties . At the bottom of the Compatibility tab, click the button to Change settings for all users . In the new window, check Run this program as an administrator .

Connecting

Each time you launch the OpenVPN GUI, Windows will ask if you want to allow the program to make changes to your computer. Click Yes . Launching the OpenVPN client application only puts the applet in the system tray so that you can connect and disconnect the VPN as needed; it does not actually make the VPN connection.

Once OpenVPN is started, initiate a connection by going into the system tray applet and right-clicking on the OpenVPN applet icon. This opens the context menu. Select client1 at the top of the menu (that’s your client1.ovpn profile) and choose Connect .

A status window will open showing the log output while the connection is established, and a message will show once the client is connected.

Disconnect from the VPN the same way:Go into the system tray applet, right-click the OpenVPN applet icon, select the client profile and click Disconnect .

macOS

Installing

Tunnelblick is a free, open source OpenVPN client for macOS. You can download the latest disk image from the Tunnelblick Downloads page. Double-click the downloaded .dmg file and follow the prompts to install.

Towards the end of the installation process, Tunnelblick will ask if you have any configuration files. Answer I have configuration files and let Tunnelblick finish. Open a Finder window and double-click client1.ovpn . Tunnelblick will install the client profile. Administrative privileges are required.

Connecting

Launch Tunnelblick by double-clicking the Tunnelblick icon in the Applications dossier. Once Tunnelblick has been launched, there will be a Tunnelblick icon in the menu bar at the top right of the screen for controlling connections. Click on the icon, and then the Connect client1 menu item to initiate the VPN connection. If you are using custom DNS settings with Tunnelblick, you may need check “Allow changes to manually-set network settings” in the advanced configuration dialog.

Linux

Installing

If you are using Linux, there are a variety of tools that you can use depending on your distribution. Your desktop environment or window manager might also include connection utilities.

The most universal way of connecting, however, is to just use the OpenVPN software.

On Ubuntu or Debian, you can install it just as you did on the server by typing:

  1. sudo apt update
  2. sudo apt install openvpn

On CentOS you can enable the EPEL repositories and then install it by typing:

  1. sudo dnf install epel-release
  2. sudo dnf install openvpn

Configuring Clients that use systemd-resolved

First determine if your system is using systemd-resolved to handle DNS resolution by checking the /etc/resolv.conf fichier :

  1. cat /etc/resolv.conf
Output# This file is managed by man:systemd-resolved(8). Do not edit.
. . .

nameserver 127.0.0.53
options edns0

If your system is configured to use systemd-resolved for DNS resolution, the IP address after the nameserver option will be 127.0.0.53 . There should also be comments in the file like the output that is shown that explain how systemd-resolved is managing the file. If you have a different IP address than 127.0.0.53 then chances are your system is not using systemd-resolved and you can go to the next section on configuring Linux clients that have an update-resolv-conf script instead.

To support these clients, first install the openvpn-systemd-resolved emballer. It provides scripts that will force systemd-resolved to use the VPN server for DNS resolution.

  1. sudo apt install openvpn-systemd-resolved

One that package is installed, configure the client to use it, and to send all DNS queries over the VPN interface. Open the client’s VPN file:

  1. nano client1.ovpn

Now uncomment the following lines that you added earlier:

client1.ovpn
script-security 2
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre
dhcp-option DOMAIN-ROUTE .

Configuring Clients that use update-resolv-conf

If your system is not using systemd-resolved to manage DNS, check to see if your distribution includes an /etc/openvpn/update-resolv-conf script instead:

  1. ls /etc/openvpn
Outputupdate-resolv-conf

If your client includes the update-resolv-conf file, then edit the OpenVPN client configuration file that you transferred earlier:

  1. nano client1.ovpn

Uncomment the three lines you added to adjust the DNS settings:

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

If you are using CentOS, change the group directive from nogroup to nobody to match the distribution’s available groups:

client1.ovpn
group nobody

Enregistrez et fermez le fichier.

Connecting

Now, you can connect to the VPN by just pointing the openvpn command to the client configuration file:

  1. sudo openvpn --config client1.ovpn

This should connect you to your VPN.

Remarque : If your client uses systemd-resolved to manage DNS, check the settings are applied correctly by running the systemd-resolve --status command like this:

  1. systemd-resolve --status tun0

You should see output like the following:

OutputLink 22 (tun0)
. . .
         DNS Servers: 208.67.222.222
                      208.67.220.220
          DNS Domain: ~.

If you see the IP addresses of the DNS servers that you configured on the OpenVPN server, along with the ~. setting for DNS Domain in the output, then you have correctly configured your client to use the VPN server’s DNS resolver. You can also check that you are sending DNS queries over the VPN by using a site like DNS leak test.com.

iOS

Installing

From the iTunes App Store, search for and install OpenVPN Connect, the official iOS OpenVPN client application. To transfer your iOS client configuration onto the device, connect it directly to a computer.

The process of completing the transfer with iTunes is outlined here. Open iTunes on the computer and click on iPhone> apps . Scroll down to the bottom to the File Sharing section and click the OpenVPN app. The blank window to the right, OpenVPN Documents , is for sharing files. Drag the .ovpn file to the OpenVPN Documents window.

Now launch the OpenVPN app on the iPhone. You will receive a notification that a new profile is ready to import. Tap the green plus sign to import it.

Connecting

OpenVPN is now ready to use with the new profile. Start the connection by sliding the Connect button to the On position. Disconnect by sliding the same button to Off .

Remarque :The VPN switch under Settings cannot be used to connect to the VPN. If you try, you will receive a notice to only connect using the OpenVPN app.

Android

Installing

Open the Google Play Store. Search for and install Android OpenVPN Connect, the official Android OpenVPN client application.

You can transfer the .ovpn profile by connecting the Android device to your computer by USB and copying the file over. Alternatively, if you have an SD card reader, you can remove the device’s SD card, copy the profile onto it and then insert the card back into the Android device.

Start the OpenVPN app and tap the FILE menu to import the profile.

Then navigate to the location of the saved profile (the screenshot uses /storage/emulated/0/openvpn ) and select your .ovpn dossier. Tap the IMPORT button to finish importing this profile.

Connecting Once the profile is added, you will see a screen like this:

To connect, tap the toggle button close to the profile you want to use. You’ll see real time stats of your connection and traffic being routed through your OpenVPN server:

To disconnect, just tap the toggle button on the top left once again. You will be prompted to confirm that you want to disconnect from your VPN.

Step 14 — Testing Your VPN Connection (Optional)

Remarque : This method for testing your VPN connection will only work if you opted to route all your traffic through the VPN in Step 7 when you edited the server.conf file for OpenVPN.

Once everything is installed, a simple check confirms everything is working properly. Without having a VPN connection enabled, open a browser and go to DNSLeakTest.

The site will return the IP address assigned by your internet service provider and as you appear to the rest of the world. To check your DNS settings through the same website, click on Extended Test and it will tell you which DNS servers you are using.

Now connect the OpenVPN client to your Droplet’s VPN and refresh the browser. A completely different IP address (that of your VPN server) should now appear, and this is how you appear to the world. Again, DNSLeakTest’s Extended Test will check your DNS settings and confirm you are now using the DNS resolvers pushed by your VPN.

Step 15 — Revoking Client Certificates

Occasionally, you may need to revoke a client certificate to prevent further access to the OpenVPN server.

To do so, follow the example in the prerequisite tutorial on How to Set Up and Configure a Certificate Authority on Ubuntu 22.04 under the Revoking a Certificate rubrique.

Once you have revoked a certificate for a client using those instructions, you’ll need to copy the generated crl.pem file to your OpenVPN server in the /etc/openvpn/server répertoire :

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

Next, open the OpenVPN server configuration file:

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

At the bottom of the file, add the crl-verify option, which will instruct the OpenVPN server to check the certificate revocation list that you created each time a connection attempt is made:

/etc/openvpn/server/server.conf
crl-verify crl.pem

Enregistrez et fermez le fichier.

Finally, restart OpenVPN to implement the certificate revocation:

  1. sudo systemctl restart [email protected]

The client should no longer be able to successfully connect to the server using the old credential.

To revoke additional clients, follow this process:

  1. Revoke the certificate with the ./easyrsa revoke client_name commande
  2. Generate a new CRL
  3. Transfer the new crl.pem file to your OpenVPN server and copy it to the /etc/openvpn/server/ directory to overwrite the old list.
  4. Restart the OpenVPN service.

You can use this process to revoke any certificates that you’ve previously issued for your server.

Conclusion

You should now have a fully operational virtual private network running on your OpenVPN Server. You can browse the web and download content without worrying about malicious actors tracking your activity.

There are several steps you could take to customize your OpenVPN installation even further, such as configuring your client to connect to the VPN automatically or configuring client-specific rules and access policies. For these and other OpenVPN customizations, you should consult the official OpenVPN documentation.

To configure more clients, you only need to follow steps 6 and 11-13 for each additional device. To revoke access to clients, follow step 15 .


OpenVPN
  1. Comment installer et configurer le serveur DHCP sur Ubuntu 20.04

  2. Comment installer et configurer le serveur Redis dans Ubuntu

  3. Comment configurer et configurer une autorité de certification sur Ubuntu 22.04

  4. Comment configurer WireGuard sur Ubuntu 22.04

  5. Comment configurer le serveur et le client NFS sur Ubuntu 20.04

Comment installer et configurer DHCP sur Ubuntu 18.04

Comment installer et configurer le serveur LAMP sur Ubuntu

Comment installer et configurer le serveur OpenLDAP sur Ubuntu 16.04

Comment installer et configurer VNC sur Ubuntu Server 20.04

Comment installer et configurer Parse Server sur Ubuntu 20.04

Comment installer et configurer un VPN avec OpenVPN sur Ubuntu 18.04