Sécurité

Apprenez à vous connecter à un VPN avec OpenVPN

OpenVPN est un client/serveur VPN (réseau privé virtuel) multiplateforme. Il est compatible avec les systèmes d’exploitation Microsoft Windows, GNU/Linux, macOS et propose même des applications gratuites pour Android et iOS. Un autre point fort d’OpenVPN est que certains fabricants de routeurs l’intègrent dans leurs équipements, nous aurons donc la possibilité de configurer un serveur OpenVPN sur notre routeur. Un autre aspect notable est que, par exemple, les systèmes d’exploitation orientés pare-feu l’intègrent également, PFsense et OPNSense sont deux distributions fortement recommandées pour utiliser OpenVPN et le reste de ses options de configuration.

Qu’est que c’est?

OpenVPN est un logiciel basé sur un logiciel gratuit qui nous permet de construire un réseau privé virtuel (VPN), pour se connecter à distance au serveur. Ce logiciel nous permet de configurer deux types d’architectures VPN :

  • VPN d’accès à distance : Nous avons un serveur VPN central et plusieurs clients VPN avec le logiciel installé sur votre ordinateur, smartphone, tablette ou autre appareil, et ils se connectent tous de manière centralisée au serveur VPN.
  • Site-to-Site VPN : cette architecture nous permet d’intercommuniquer entre différents sites pour partager des ressources via un réseau sécurisé, protégé par un cryptage de bout en bout. Ce type de VPN nous permet d’intercommuniquer des bureaux, des sièges sociaux d’entreprise, etc.

Certaines fonctionnalités très importantes d’OpenVPN sont qu’il prend en charge une configuration étendue, à la fois pour améliorer les performances et la sécurité. Il est basé sur SSL / TLS, nous pouvons donc créer des certificats numériques pour l’authentification des clients VPN. En outre, nous pourrions également nous authentifier avec des certificats plus un utilisateur / mot de passe que nous ajoutons au système. OpenVPN est beaucoup plus facile à configurer qu’IPsec, et grâce au grand soutien de la communauté, nous pourrons trouver OpenVPN sur tous les systèmes d’exploitation de bureau, serveurs et même sur smartphones et tablettes.

Pourquoi est-ce?

Si nous créons un serveur OpenVPN chez nous, cela peut nous aider à nous connecter à Internet de manière sécurisée depuis n’importe quel réseau, qu’il soit filaire ou WiFi, avec cryptage WEP / WPA ou sans cryptage. Tout le trafic sera crypté via un tunnel depuis notre ordinateur où nous nous connectons à notre maison et de là, il ira à Internet, c’est comme être connecté à Internet à la maison. Nous devons prendre en compte plusieurs facteurs, tels qu’avoir une bonne vitesse de téléchargement (30 Mbps ou plus) et avoir une adresse IP publique chez nous, car si nous avons CG-NAT, nous ne pourrons pas nous connecter car nous ne serons pas capable de transférer des ports dans le routeur.

En installant un serveur OpenVPN chez nous, nous pouvons également accéder à chacune des ressources partagées dont nous disposons, telles que les serveurs Samba, FTP et même accéder à l’imprimante, aux caméras IP que nous avons connectées, etc. Toutes les autorisations d’accès seraient comme si nous étions physiquement dans notre maison. OpenVPN est une solution pour VPN qui implémente des connexions de couche 2 ou 3, selon le mode de connexion choisi, cela fonctionnera d’une manière ou d’une autre, de plus, un détail important est que la grande majorité des systèmes d’exploitation prennent aujourd’hui en charge OpenVPN, bien que ce ne soit pas le cas. est généralement incorporé par les fabricants de matériel pour les pare-feu ou les routeurs.

OpenVPN utilise un ensemble de protocoles SSL/TLS qui fonctionnent au niveau de la couche transport, et nous avons deux types de fonctionnement :

  • TUN : Le contrôleur TUN émule un appareil point à point, il sert à créer des tunnels virtuels fonctionnant avec le protocole IP . De cette façon, tous les paquets qui y sont transportés peuvent être encapsulés sous forme de segments TCP ou de datagrammes UDP (vous verrez plus tard que nous choisissons UDP au lieu de TCP, et vous demanderez pourquoi puisque TCP est connectif, fiable et orienté vers la connexion) . Les machines derrière chaque extrémité du lien appartiendront à des sous-réseaux différents.
  • TAP : Simule une interface réseau Ethernet, plus communément appelée bridge ou bridge mode, ces tunnels virtuels encapsulent directement les paquets Ethernet . Cette situation permet d’emballer des tissus différents de l’IP. Les machines situées derrière chaque extrémité du lien peuvent fonctionner dans le même sous-réseau (si le protocole IP est utilisé). Le mode de fonctionnement pont est particulièrement utile pour relier des utilisateurs distants, car ils peuvent se connecter au même serveur et faire virtuellement partie du réseau principal, cependant, si le réseau privé où l’origine est connectée coïncide avec la destination, nous aurons des problèmes de routage et la communication ne fonctionnera pas.

Dans le manuel, nous utiliserons TUN et verrons comment créer un sous-réseau virtuel 10.8.0.0/24 où se trouveront les clients OpenVPN lorsqu’ils se connecteront. De cette façon, il sera beaucoup plus facile d’identifier les clients VPN que nous avons connectés au réseau local.

Dans ce manuel je vais vous expliquer comment le faire sous GNU/Linux (dans Debian 10) , bien qu’en substance, il en soit de même pour Windows , uniquement les commandes dans la console (cmd.exe), les certificats et les clés changer, ils sont les mêmes pour les deux , c’est-à-dire que vous pouvez TOUT créer dans GNU/Linux puis le passer à Windows pour l’utiliser (soit client soit serveur), il vous suffit de changer l’extension client/serveur .conf en .ovpn , bien que dans les dernières versions OpenVPN pour Windows nous permette déjà de reconnaître et d’utiliser les fichiers de configuration .conf, nous n’aurons donc pas à changer l’extension.

Dans ce manuel, je vais vous montrer comment créer une configuration OpenVPN très sécurisée, en personnalisant les algorithmes de cryptage symétrique, asymétrique et de hachage. De cette façon, nous pouvons avoir le meilleur cryptage possible des communications.

Résumé de la cryptographie à utiliser

  • Certificats numériques : Nous utiliserons EC (Elliptical Curves) pour la création de l’ Infrastructure à Clé Publique . Nous allons créer à la fois les certificats de l’AC (Certification Authority), ainsi que les certificats du serveur et des clients VPN qui souhaitent se connecter. L’algorithme EC utilisé est secp521r1, bien que nous en ayons beaucoup d’autres disponibles. L’algorithme de hachage que nous utiliserons sera SHA512 . Un détail important est que tous les clients/serveurs OpenVPN ne le supportent pas, nous devons faire mettre à jour nos bibliothèques OpenVPN et cryptographiques, mais de nos jours il est rare de se retrouver dans un scénario qui n’est pas compatible.
  • Canal de contrôle OpenVPN : nous utiliserons au moins TLS 1.2, et toujours en utilisant PFS (Perfect Forward Secrecy) basé sur Diffie-Hellmann avec courbes elliptiques (ECDHE). C’est-à-dire que nous utiliserons une sélection de suites cryptographiques sécurisées, telles que TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384. Si vous voulez vérifier si votre serveur ou client supporte ce type de cryptage, vous devez mettre dans la console «openvpn –show-tls».
  • Canal de données OpenVPN : Nous utiliserons l’algorithme de chiffrement symétrique AES-256-GCM , le plus sécurisé actuellement et qui a été intégré à OpenVPN 2.4 et versions ultérieures. Si vous voulez vérifier si votre serveur ou client supporte ce type de cryptage, vous devez mettre dans la console « openvpn –show-ciphers ». Si nous utilisons AES-256-GCM comme cryptage de canal de données, nous n’utiliserons aucun algorithme HASH puisqu’il s’agit d’AEAD, cependant, si nous utilisons AES-256-CBC, nous utiliserons SHA512.

Dans les dernières versions d’OpenVPN, et si la bibliothèque cryptographique de votre système d’exploitation le permet, nous pouvons utiliser le protocole TLS 1.3 dans le canal de contrôle. Si on va sur la ligne de commande du serveur ou du client OpenVPN, et on met la commande suivante :

openvpn --show-tls

Nous pouvons voir si notre serveur et/ou client OpenVPN prend en charge TLS 1.3, dans notre cas, nous avons un total de trois suites de chiffrement que nous pouvons utiliser :

  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256
  • TLS_AES_128_GCM_SHA256

Pour définir TLS 1.3 dans les fichiers de configuration, nous devons utiliser l’argument » tls-ciphersuites » au lieu du » tls-cipher » typique , suivi de la suite de chiffrement que nous voulons, les trois suites dont nous disposons sont les plus sûres que nous pouvons utilisation De nos jours, en plus, grâce au protocole TLS 1.3, l’établissement de la connexion sera un peu plus rapide, idéal pour établir rapidement le tunnel VPN.

À partir d’OpenVPN version 2.5, nous avons également un algorithme de cryptage symétrique pour le canal de données OpenVPN, nous pouvons utiliser CHACHA20-POLY1305qui est un cryptage de flux 256 bits, et peut être utilisé pour accélérer la vitesse réelle du VPN que nous installons. Si notre processeur ne prend pas en charge AES-NI pour accélérer le trafic AES-GCM, nous vous recommandons de toujours utiliser CHACHA20-POLY1305 car vous aurez de meilleures performances, cependant, s’il prend en charge AES-NI, nous vous recommandons d’effectuer des tests de vitesse en utilisant les deux pour voir quelle vitesse vous obtiendrez. Nous devons nous rappeler que cet algorithme de cryptage symétrique est utilisé par défaut dans le VPN WireGuard, l’un des VPN les plus sûrs et les plus rapides que nous puissions utiliser aujourd’hui. Dans ce cas, pour configurer cet algorithme de cryptage, cela se ferait de la même manière qu’AES-256-GCM, en mettant «cipher» puis le nom du cryptage tel que nous l’avons mis pour vous.

En plus de ces mesures de sécurité, nous inclurons une signature HMAC supplémentaire pour la première négociation TLS, de cette façon, nous protégerons le système contre d’éventuelles attaques par déni de service, les attaques UDP Port Flooding et également les attaques TCP SYN. Lors de la connexion au serveur, si le client n’a pas la bonne signature HMAC, il sera bloqué. Dans les versions précédentes d’OpenVPN 2.4, la directive était tls-auth , qui n’était responsable que de l’authentification d’une clé pré-partagée générée par OpenVPN lui-même. Maintenant, dans les versions supérieures à OpenVPN 2.4, il s’appelle tls-crypt, la principale différence est qu’en plus de l’authentification, il crypte également le canal afin que personne ne puisse capturer ladite clé pré-partagée. La configuration est très similaire, la génération de clé est exactement la même dans les deux.

Enfin, nous utiliserons le protocole UDP à la place de TCP, car il est plus fort contre les attaques par déni de service, nous devons nous rappeler que UDP est non connectif, peu fiable et non orienté connexion. Cependant, nous pouvons utiliser TCP sans aucun problème pour fournir au VPN tous les avantages de ce protocole.

Étapes à suivre pour travailler avec OpenVPN

Ci-dessous, vous pourrez voir en détail comment installer ce logiciel, ainsi que tout ce dont vous avez besoin pour le démarrer avec la meilleure sécurité possible que cette solution nous offre pour créer un réseau privé virtuel.

Télécharger et installer

La première chose que nous devons faire est d’installer OpenVPN sur notre ordinateur, que ce soit avec Windows ou Linux. Si vous utilisez Windows, vous devez vous rendre sur le site officiel de téléchargement OpenVPN et tout installer dans l’assistant d’installation. Si vous utilisez un système d’exploitation comme Debian (nous utiliserons Debian 10 tout au long de ce manuel), vous devrez entrer la commande suivante :

sudo apt update

sudo apt install openvpn

Téléchargement Easy-RSA 3 pour les certificats

Une fois installé, il faut télécharger le progiciel Easy-RSA 3, ce progiciel permet de créer des certificats numériques facilement et rapidement. On peut modifier la longueur de la clé, le type de clé, si on veut mettre un mot de passe sur les clés privées, etc. Sur le site officiel du projet Easy-RSA 3 sur GitHub vous avez toutes les informations et la possibilité de télécharger un .zip avec tout.

Si vous êtes sur un système Linux, nous vous recommandons d’utiliser la commande wget pour télécharger le fichier .zip :

wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.8/EasyRSA-3.0.8.tgz

Ensuite, nous devons décompresser ce fichier téléchargé et entrer dans le dossier pour commencer à configurer le fichier vars.

tar -zxvf EasyRSA-3.0.8.tgz

Configurer Easy-RSA 3 « vars »

Le fichier vars.example est le centre de toute la configuration des certificats, c’est là que nous devrons définir si nous voulons créer des certificats basés sur RSA ou basés sur EC. De même, cela nous permettra également de signer les certificats avec SHA256 ou SHA512 entre autres. C’est-à-dire que nous devons configurer correctement ce fichier de configuration pour créer ultérieurement les certificats numériques.

La première chose que nous devons faire est de copier le fichier vars.example dans le même dossier avec le nom «vars», si nous ne l’avons pas avec ce nom «vars», cela ne fonctionnera pas. Nous avons également la possibilité de renommer le fichier vars.example en «vars», mais nous vous recommandons de faire une sauvegarde au cas où vous supprimeriez quelque chose et que cela ne fonctionnerait pas pour vous.

On se place dans le dossier principal d’Easy-RSA3 et on copie le fichier de cette façon :

cp vars.example vars

Une fois que nous avons le fichier «vars», nous devons l’éditer avec n’importe quel éditeur de fichier via la console ou l’interface graphique, nous utiliserons nano en raison de sa facilité. Dans le fichier de configuration «vars» suivant, vous pouvez voir à quoi ressemblerait EC avec l’algorithme secp521r1, signé avec SHA512 et nous avons utilisé un DN (Distinguished Name) mettant le CN (Common Name) au lieu des «données d’organisation» typiques. nous l’avons toujours fait auparavant, de cette manière, nous facilitons la création des certificats, cependant, nous pourrions également le faire en indiquant les données d’organisation typiques.

Dans le fichier lui-même se trouvent les commentaires originaux en anglais, et en espagnol, nous avons mis les nôtres pour faciliter la localisation de ce qui doit être modifié. Un détail très important, WordPress met automatiquement ces symboles << et >> alors qu’il devrait juste mettre des guillemets doubles : »

# Paramétrage Easy-RSA 3

# REMARQUE : si vous avez installé Easy-RSA à partir du gestionnaire de packages de votre distribution, ne modifiez pas

# ce fichier sur place – vous devez plutôt copier l’intégralité du répertoire easy-rsa


# vers un autre emplacement afin que les futures mises à niveau n’effacent pas vos modifications .

# COMMENT UTILISER CE FICHIER

#


# vars.example contient des exemples intégrés aux paramètres Easy-RSA.
Vous DEVEZ nommer


# ce fichier ‘vars’ si vous voulez qu’il soit utilisé comme fichier de configuration.
Si vous


# ne le
faites pas, il NE SERA PAS lu automatiquement lorsque vous appelez les commandes easyrsa.


#


# Il n’est pas nécessaire d’utiliser ce fichier de configuration à moins que vous ne souhaitiez


#
modifier les paramètres opérationnels par défaut. Ces valeurs par défaut devraient convenir à de nombreuses utilisations sans


avoir # besoin de copier et de modifier le fichier ‘vars’.


#


# Tous les paramètres modifiables sont affichés commentés et commencent par la commande


# ‘set_var’ – cela signifie que toute commande set_var non commentée a été


# modifiée par l’utilisateur.
Si vous êtes satisfait d’une valeur par défaut, il n’est pas nécessaire de


# définit la valeur par défaut.

# REMARQUES POUR LES UTILISATEURS DE WINDOWS

#


# Les chemins pour Windows * DOIVENT * utiliser des barres obliques inverses, ou éventuellement des barres


obliques inverses #
doubles échappées (des barres obliques simples sont recommandées.) Cela signifie que votre chemin


#
vers le binaire openssl pourrait ressembler à ceci :


# « C : / Fichiers programmes / OpenSSL-Win32 / bin / openssl.exe »

# Un peu d’entretien : NE MODIFIEZ PAS CETTE SECTION

#


# Easy-RSA 3.x ne s’alimente pas directement dans l’environnement.


# Se plaindre si un utilisateur essaie de faire ceci :


if [-z «$ EASYRSA_CALLER»];
then


echo «Vous semblez rechercher un fichier ‘vars’ Easy-RSA.»
> & 2


echo «Ceci n’est plus nécessaire et est interdit.
Voir la section intitulée »> & 2


echo« ‘Comment utiliser ce fichier’ près des premiers commentaires pour plus de détails. »
> & 2


retour 1


fi

# FAITES VOS MODIFICATIONS SOUS CE POINT

# Cette variable est utilisée comme emplacement de base des fichiers de configuration nécessaires à

# easyrsa.
Des variables plus spécifiques pour des fichiers spécifiques (par exemple, EASYRSA_SSL_CONF)


# peuvent remplacer cette valeur par défaut.


#


# La valeur par défaut de cette variable est l’emplacement du


#
script easyrsa lui-même, qui est également l’endroit où se trouvent les fichiers de configuration


#
dans l’ arborescence easy-rsa.

#set_var EASYRSA «$ {0% / *}»

# Si votre commande OpenSSL n’est pas dans le PATH système, vous devrez définir le

chemin # ici.
Normalement, cela signifie un chemin complet vers l’exécutable, sinon


# vous auriez pu le laisser non défini ici et la valeur par défaut affichée serait utilisée.


#


# Utilisateurs de Windows, n’oubliez pas d’utiliser des chemins avec des barres obliques (ou des barres obliques inverses


#
échappées ). Les utilisateurs de Windows doivent déclarer le chemin complet vers le


fichier binaire
openssl # ici s’il ne se trouve pas dans leur PATH système.

#set_var EASYRSA_OPENSSL «openssl»

#


# Cet exemple est en syntaxe Windows – modifiez-le pour votre chemin si vous n’utilisez pas PATH :


#set_var EASYRSA_OPENSSL «C: / Program Files / OpenSSL-Win32 / bin / openssl.exe»

# Modifiez cette variable pour qu’elle pointe vers votre répertoire de clés qui sera bientôt créé. Par

# défaut, ce sera «$ PWD / pki» (c’est-à-dire le sous-répertoire «pki» du


#
répertoire dans lequel vous vous trouvez actuellement).


#


# ATTENTION : init-pki fera un rm -rf sur ce répertoire donc assurez-vous de le définir


# correctement !
(Le mode interactif vous demandera avant d’agir.)

#set_var EASYRSA_PKI «$ PWD / pki»

# Définir le mode X509 DN.

# Ceci est utilisé pour ajuster quels éléments sont inclus dans le champ Objet en tant que DN


# (il s’agit du « Nom distinctif. »)


# Notez qu’en mode cn_only, les champs organisationnels ci-dessous ne sont pas utilisés.


#


# Les choix sont les suivants :


# cn_only – utilisez uniquement une valeur CN


# org – utilisez le format « traditionnel » Pays / Province / Ville / Org / OU / email / CN

#ELEGIMOS cn_only POUR LA CRÉATION DE CERTIFICATS

set_var EASYRSA_DN «cn_only»

# Champs organisationnels (utilisés avec le mode ‘org’ et ignorés en mode ‘cn_only’.)

# Ce sont les valeurs par défaut des champs qui seront placés dans le


# certificat.
Ne laissez aucun de ces champs vide, bien que


#
interactivement vous puissiez omettre n’importe quel champ spécifique en tapant le « . » symbole (non valide pour


# e-mail.)

#set_var EASYRSA_REQ_COUNTRY «US»

#set_var EASYRSA_REQ_PROVINCE «California»


#set_var EASYRSA_REQ_CITY «San Francisco»


#set_var EASYRSA_REQ_ORG «Copyleft certificat Co»


#set_var EASYRSA « me_RexamILAS_set_var EASYRSA «_REQ_EMAILAS.net»


meset_var EASYRSA_REQ_EMAILAS.net «meset_var EASYRSA_REQ_EMAILAS_MysetOvar EASYRSA_REQ_EMAILAS.net» set_var «

# Choisissez une taille en bits pour vos paires de clés. La valeur recommandée est 2048. L’utilisation de

# clés de 2048 bits est considérée comme plus que suffisante pour de nombreuses années


#
dans le futur. Des tailles de clé plus grandes ralentiront la négociation TLS et rendront la


génération de #
clé/param DH beaucoup plus longue. Les valeurs jusqu’à 4096 devraient être acceptées par la plupart des


# logiciels.
Utilisé uniquement lorsque le crypto alg est rsa (voir ci-dessous.)

#set_var EASYRSA_KEY_SIZE 2048

# Le mode crypto par défaut est rsa ; ec peut activer la prise en charge des courbes elliptiques.

# Notez que tous les logiciels ne prennent pas en charge ECC, alors soyez prudent lorsque vous l’activez.


# Les choix pour crypto alg sont : (chacun en minuscule)


# * rsa


# * ec

# NOUS CHOISISSONS LA COURBE ELIPTIQUE POUR LA CREATION DES CERTIFICATS, PAR DEFAUT C’EST RSA.

set_var EASYRSA_ALGO ce

# NOUS DEFINISSONS LE NOM DE LA COURBE ELIPTIQUE CHOISIE

set_var EASYRSA_CURVE secp521r1

# NOUS CONFIGURONS L’EXPIRATION DU CA

set_var EASYRSA_CA_EXPIRE 3650

# NOUS CONFIGURONS L’EXPIRATION DES CERTIFICATS CRÉÉS.

set_var EASYRSA_CERT_EXPIRE 1080

# Combien de jours avant la prochaine date de publication de la CRL ? Notez que la liste de révocation de certificats peut toujours être

# analysée une fois ce délai écoulé.
Il n’est utilisé que pour une prochaine


date de publication prévue.

# Combien de jours avant sa date d’expiration un certificat peut-il être

# renouvelé ?


#set_var EASYRSA_CERT_RENEW 30

#set_var EASYRSA_CRL_DAYS 180

# Soutenir les extensions «Netscape» obsolètes ? (choisissez «oui» ou «non».) Le

#
par défaut est «non» pour décourager l’utilisation d’extensions obsolètes. Si vous avez besoin que cette


fonctionnalité # soit utilisée avec –ns-cert-type, définissez-la sur «yes» ici.
Ce support


# doit être remplacé par la fonctionnalité plus moderne –remote-cert-tls.
Si vous n’utilisez


# pas –ns-cert-type dans vos configurations, il est sûr (et recommandé) de laisser


# this défini sur «no».
Lorsqu’il est défini sur «yes», les


certificats signés par le serveur
obtiennent l’ attribut # nsCertType = server, ainsi que tout NS_COMMENT défini ci-dessous dans le


champ # nsComment.

#set_var EASYRSA_NS_SUPPORT «non»

# Lorsque NS_SUPPORT est défini sur « oui », ce champ est ajouté en tant que champ nsComment.

# Définissez ce champ vide pour l’omettre.
Avec NS_SUPPORT défini sur «non», ce champ est ignoré.

#set_var EASYRSA_NS_COMMENT «Certificat généré Easy-RSA»

# Un fichier temporaire utilisé pour mettre en scène les extensions de certificat lors de la signature. La valeur par défaut devrait

# convenir à la plupart des utilisateurs ;
Cependant, certains utilisateurs peuvent souhaiter une alternative sous un


FS # basé sur la RAM, comme / dev / shm ou / tmp sur certains systèmes.

#set_var EASYRSA_TEMP_FILE «$ EASYRSA_PKI / extensions.temp»

# !!

# REMARQUE : OPTIONS AVANCÉES CI-DESSOUS CE POINT


# JOUEZ AVEC EUX À VOS PROPRES RISQUES


# !!

# Alias ​​de commande shell cassés : Si vous avez un shell largement cassé qui

# manque l’une de ces commandes requises par POSIX utilisées par Easy-RSA, vous devrez


# définir un alias vers le chemin approprié pour la commande.
Le symptôme sera


# une forme d’erreur «commande introuvable» de votre shell.
Cela signifie que votre


# shell est CASSÉ, mais vous pouvez le contourner ici si vous en avez vraiment besoin.
Ces


# valeurs affichées ne sont pas des valeurs par défaut : c’est à vous de savoir ce que vous faites si


# vous les touchez.


#


#alias awk = »/ alt / bin / awk»


#alias cat = »/ alt / bin / cat»

# Répertoire des extensions X509 :

# Si vous souhaitez personnaliser les extensions X509 utilisées, définissez le répertoire pour rechercher


# les extensions ici.
Chaque type de certificat que vous signez doit avoir un nom de fichier correspondant,


# et un fichier facultatif nommé « COMMON » est inclus en premier lorsqu’il est présent.
Notez que


# lorsqu’il n’est pas défini ici, le comportement par défaut consiste à rechercher d’abord dans $ EASYRSA_PKI, puis


# se replier sur $ EASYRSA pour le répertoire ‘x509-types’.
Vous pouvez remplacer cette


# détection par un répertoire explicite ici.


#


#set_var EASYRSA_EXT_DIR «$ EASYRSA / x509-types»

# Fichier de configuration OpenSSL :

# Si vous devez utiliser un fichier de configuration openssl spécifique, vous pouvez le référencer ici.


# Normalement, ce fichier est détecté automatiquement à partir d’un fichier nommé openssl-easyrsa.cnf du répertoire


# EASYRSA_PKI ou EASYRSA (dans cet ordre.) NOTEZ que ce fichier est


# spécifique à
Easy-RSA et vous ne pouvez pas simplement utiliser un fichier de configuration standard, il s’agit donc d’une fonctionnalité


# avancée.

#set_var EASYRSA_SSL_CONF «$ EASYRSA / openssl-easyrsa.cnf»

# CN par défaut :

# Il est préférable de le laisser seul.
De manière interactive, vous le définirez manuellement, et les


appelants
BATCH # sont censés le définir eux-mêmes.

#set_var EASYRSA_REQ_CN «ChangeMe»

# Condensé cryptographique à utiliser.

# Ne modifiez pas cette valeur par défaut à moins que vous ne compreniez les implications de sécurité.


# Les choix valides incluent : md5, sha1, sha256, sha224, sha384, sha512

# NOUS AVONS SÉLECTIONNÉ LE HASH SHA512

set_var EASYRSA_DIGEST «sha512»

# Temps différé. Laissez cette option désactivée à moins que vous n’ayez l’intention d’appeler Easy-RSA explicitement

# en mode batch sans aucune entrée utilisateur, confirmation d’opérations dangereuses,


# ou la plupart des sorties.
Le définir sur n’importe quelle chaîne non vide active le mode batch.

#set_var EASYRSA_BATCH « »

Une fois que nous avons tout modifié, nous sauvegardons le fichier car plus tard nous allons l’utiliser avec ces valeurs.

Création de la PKI : certificats CA, serveur et client

Lorsque nous avons configuré le fichier « vars », nous procédons à la création de l’infrastructure à clé publique (PKI) avec la commande suivante (nous supposons que vous êtes toujours dans le répertoire principal Easy-RSA3) :

./easyrsa init-pki

root @ debian-vm : /home/bron/EasyRSA-v3.0.6# ./easyrsa init-pki

Remarque : en utilisant la configuration Easy-RSA à partir de : ./vars

init-pki terminé ; vous pouvez maintenant créer une CA ou des demandes.

Votre nouveau répertoire PKI est : /home/bron/EasyRSA-v3.0.6/pki

Une fois la PKI initialisée, il faut créer l’Autorité de Certification (AC) :

./easyrsa build-ca

Une fois exécuté, il faut suivre le simple assistant de génération de CA. Le mot de passe que vous demandez sert à protéger la clé privée de l’AC, quelque chose d’essentiel.

root @ debian-vm : /home/bron/EasyRSA-v3.0.6# ./easyrsa build-ca

Remarque : en utilisant la configuration Easy-RSA à partir de : ./vars

Utilisation de SSL : openssl OpenSSL 1.1.1d 10 sept. 2019

Entrez la nouvelle phrase secrète de la clé CA :

saisissez à nouveau la nouvelle phrase secrète de la clé CA :


lisez la clé


EC en écrivant la clé EC


Impossible de charger /home/bron/EasyRSA-v3.0.6/pki/.rnd dans RNG


139864421569664 : erreur : 2406F079 : générateur de nombres aléatoires : RAND_load_file : Impossible d’ouvrir le fichier : ../ crypto / rand / randfile.c : 98 : Filename = / home / bron / EasyRSA-v3.0.6 / pki / .rnd


Vous êtes sur le point d’être invité à saisir des informations qui seront incorporées


dans votre demande de certificat.


Ce que vous êtes sur le point d’entrer est ce qu’on appelle un nom distinctif ou un DN.


Il y a pas mal de champs mais vous pouvez laisser certains vides


Pour certains champs, il y aura une valeur par défaut,


si vous entrez ‘.’, le champ sera laissé vide.


—–


Nom commun (par exemple : votre nom d’utilisateur, d’hôte ou de serveur) [Easy-RSA CA] : AUTHORITY-CERTIFICATION

La création de l’autorité de certification est terminée et vous pouvez maintenant importer et signer des demandes de certificat.

Votre nouveau fichier de certificat CA pour la publication se trouve à l’


adresse
: /home/bron/EasyRSA-v3.0.6/pki/ca.crt

Si on ne veut pas rentrer de mot de passe dans la clé privée de l’AC (ce n’est pas recommandé pour des raisons de sécurité), il faut mettre cette commande :

./easyrsa build-ca nopass

Une fois que nous avons créé l’AC, nous devons créer le certificat serveur et les certificats clients. Ensuite, nous devons le signer avec l’AC.

Créez le certificat de serveur et signez-le avec l’autorité de certification

Lors de la création des certificats serveur et client, nous pouvons leur donner un mot de passe pour la clé privée, cependant, il n’est pas recommandé de le faire sur le serveur car à chaque fois que nous le démarrons, il nous demandera le mot de passe pour l’utiliser. Si nous ne voulons pas de mot de passe, nous mettrons « nopass » derrière chaque commande que vous verrez ci-dessous.

./easyrsa gen-req servidor-openvpn-redeszone nopass

La sortie du terminal est la suivante :

root @ debian-vm : /home/bron/EasyRSA-v3.0.6# ./easyrsa gen-req server-openvpn-redeszone nopass

Remarque : en utilisant la configuration Easy-RSA à partir de : ./vars

Utilisation de SSL : openssl OpenSSL 1.1.1d 10 sept. 2019

Génération d’une clé privée EC


écrivant une nouvelle clé privée dans ‘/home/bron/EasyRSA-v3.0.6/pki/private/servidor-openvpn-redeszone.key.bHJsAFg0KR’


—–


Vous sont sur le point d’être invités à saisir des informations qui seront incorporées


dans votre demande de certificat.

Articles Similaires

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba