Pour l’accès à l’infrastructure numérique de l’entreprise et des outils informatiques à distance, comme si on y est sur place, on utilise le VPN pour accroître la sécurité des échanges. De nombreux professionnels proposent ce genre de services, il suffit de taper VPN, dans votre moteur de recherche, pour découvrir les offres.

Cet article a pour but de présenter en dix étapes la mise en place d’un serveur VPN, à l’aide de OpenVPN, et d’une distribution Linux Ubuntu 18-04 server.

OpenVPN est un logiciel open-source gratuit, il est utilisé pour implémenter des réseaux privés virtuels afin de créer des connexions  site à site ou point à point sécurisées.

OpenVPN utilise le protocole SSL permettant de connecter différents types d’appareils au réseau. Grâce à OpenVPN, on peut relier un groupe de machines situées sur un lieu distant à une infrastructure locale à travers le réseau public non sécurisé.

De quoi aura-t-on besoin pour créer le VPN?

Un serveur Ubuntu 18-04 en état de marche.

Une adresse IP privée statique pour votre serveur, du type 192.168.5.21 par exemple. Vous pouvez utiliser votre classe d’adresses préférée.

Un mot de passe root pour votre serveur.

Vous pouvez aussi utiliser  Putty, si vous souhaiter réaliser toutes les configurations de votre serveur depuis une autre machine.  Il faudra aussi veiller pour cela à ce que le serveur SSH soit installé.

Si toutes les conditions sont réunies, voici les différentes étapes que nous allons aborder dans cet article:

Etape 1 : Mise à jour des paquetages Linux
Etape 2 : Installation de OpenVPN
Etape 3 : Téléchargement et configuration de EasyRSA
Etape 4 : Création d’un certificat de la clé et des fichiers de chiffrement du serveur
Etape 5 : Création d’une paire Certificat-Clé client
Etape 6 : Configuration du service OpenVPN
Etape 7 : Configuration réseau
Etape 8 : Démarrage du serveur OpenVPN
Etape 9 : Céation d’une infrastructure de configuration client
Etape 10 : Test de connexion du client

 

Etape 1 : Mise à jour des paquetages Linux

Dans la fenêtre de commande, taper :

 sudo apt-get update -y

 

Ensuite

 

 sudo apt-get upgrade –y

 

Une fois que c’est fini, redémarrer le serveur avec la commande

 

 sudo reboot

 

Etape 2 : Installation de OpenVPN

Par défaut OpenVPN se trouve dans le « repository » de Ubuntu 18.04. On peut  l’installer en tapant la commande

 

 sudo apt-get install openvpn –y

 

Lorsque l’installation est terminée, on peut maintenant passer à l’étape suivante.

 

Etape 3 : Téléchargement et configuration de EasyRSA

On va mettre en place une autorité de certification (CA : certificate authority), EasyRSA sera donc utilisé et configuré à cet effet.

Télécharger l’archive EasyRSA à partir du site officiel, avec la commande :

 

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

 

Puis décompresser l’archive :

 

 tar –xvzf EasyRSA-3.0.4.tgz

 

EasyRSA est à présent installé avec un fichier de configuration qui va être modifié, pour définir un certain nombre de paramètres pour l’autorité de certification (AC).

Il faut aller dans le répertoire EasyRSA-3.0.4, puis copier le fichier « vars.example », puis le nommer « vars »

 

 cp vars.example vars

 

Ouvrir le fichier vars, avec l’éditeur nano

 

 sudo nano  ~/EasyRSA-3.0.4/vars

 

Dé commenter et changer les paramètres par défaut  des champs suivants selon votre convenance. Pour ce me concerne  :

 

set_var EASYRSA_REQ_COUNTRY     "FRANCE"
set_var EASYRSA_REQ_PROVINCE    "ILE-DE-FRANCE"
set_var EASYRSA_REQ_CITY        "GUYANCOURT"
set_var EASYRSA_REQ_ORG "Info-elec-sie co"
set_var EASYRSA_REQ_EMAIL       "Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser."
set_var EASYRSA_REQ_OU          "SIE"

 

Une fois terminé, sauver,  puis fermer le fichier.

Ensuite lancer un script appelé « easyrsa » avec l’option ‘init-pki’ pour créer une infrastructure de clé publique.

Il faudra se placer dans le répertoire /EasyRSA-3.0.4 ; puis taper la commande

 

 ./easyrsa init-pki

 

En réponse on a ceci :

 

Note: using Easy-RSA configuration from: ./vars
init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /home/my_rep/EasyRSA-3.0.4/pki

 

Exécuter à nouveau le script easyrsa, avec l’option build-ca pour mettre en place l’AC et créer deux fichiers nommés :  ca.crt et ca.key, dont l’un (ca.crt) constitue le certificat public de l’AC, pour que les deux parties client et serveur VPN, puissent s’informer mutuellement qu’ils font partie du même réseau de confiance ;  et l’autre (ca.key) constitue la clé privée que l’AC utilise pour signer les certificats des serveurs et des clients.

Juste une remarque avant de poursuivre; un attaquant peut s’introduire dans votre AC et récupérer le fichier ca.key ensuite signer les certificats puis avoir accès au VPN. Le VPN devient alors vulnérable; pour éviter cela il conseillé de ne pas utiliser la même machine pour l’AC et le serveur VPN. L’AC devra être isolé lorsqu’il n’y a pas des demandes de signature des certificats.

Continuons l'installation. Si on ne souhaite pas à chaque fois saisir un mot de passe lorsqu’on va interagir avec l’AC, il faudra donc exécuter le script easyrsa build-ca avec l’option nopass :

 ./easyrsa build-ca nopass

En réponse on a:

Note: using Easy-RSA configuration from: ./vars
Generating a RSA private key
..........................................+++
......+++
writing new private key to '/home/bidj/EasyRSA-3.0.4/pki/private/ca.key.LnIXFpbh5X'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:

 

Il sera demandé de donner un nom commun à votre AC, par souci de simplicité, laisser le nom proposé par défaut, taper la touche ENTRER.

L’AC est à présent en place et prête à signer des certificats.

 

Etape 4 : Création d’un certificat de la clé et des fichiers de chiffrement du serveur

A présent le serveur AC est prêt ; on va générer une clé de chiffrement et une demande de certificat depuis ce même serveur,  et ensuite transférer la demande à l’AC pour être signée.

Aller dans le répertoire EasyRSA-3.0.4 ; puis exécuter le script « easyrsa » avec les commandes « gen-req » « server » avec l’option « nopass » :

 ./easyrsa gen-req server nopass

On obtient en réponse :

Note: using Easy-RSA configuration from: ./vars
Generating a RSA private key
...................................................................................................................................+++
.........+++
writing new private key to '/home/bidj/EasyRSA-3.0.4/pki/private/server.key.UQrnlgk7EG'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [server]:

On peut laisser le nom par défaut « server », puis taper ENTRER.

La clé privée du serveur et la demande de certificat sont crées.

Keypair and certificate request completed. Your files are:
req: /home/bidj/EasyRSA-3.0.4/pki/reqs/server.req
key: /home/bidj/EasyRSA-3.0.4/pki/private/server.key

Maintenant copier cette clé dans le répertoire /etc/openvpn/

 sudo cp ~/EasyRSA-3.0.4/pki/private/server.key  /etc/openvpn/

Puisque votre AC et OpenVPN sont sur la même machine,  on peut à présent signer la demande.

 ./easyrsa sign-req server server

Taper « yes » puis sur la touche ENTRER. On a le résultat suivant :

Using Easy-RSA configuration from: ./openssl-easyrsa.cnf
# D’autres messages ici ….

Check that the request matches the signature
Signature ok
The Subject’s Distinguished Name is as follows
commonName :ASN.1 12:’serevr’
Certificate is to be certified until Mar 21 18:54:40 2031 GMT (3650 days)
Write out database with 1 new entries
Data Base Updated
Certificate created at: /home/bidj/EasyRSA-3.0.4/pki/issued/server.crt

Copier à présent  les fichiers ca.crt et server.crt dans le répertoire /etc/openvpn/

Taper :

 sudo cp ~/EasyRSA-3.0.4/pki/ca.crt   /etc/openvpn/

Puis

 sudo cp ~/EasyRSA-3.0.4/pki/issued/server.crt   /etc/openvpn/

A présent on va créer une clé robuste DIFFIE-HELMAN, pour cela exécuter le script :

 ./easyrsa  gen-dh

On devra obtenir ceci :

Note: using Easy-RSA configuration from: ./vars
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
...........................................+...........+.......+....................................................................................................................................................................................................+....................+......+....................................................................................................................................................................................+...................+................................................................+.............................................................+.......................................................................................................+............++*++*++*++*
DH parameters of size 2048 created at /home/bidj/EasyRSA-3.0.4/pki/dh.pem

 

Ensuite on va générer une signature HMAC pour renforcer les vérifications TLS du serveur.

 

 openvpn  --genkey  --secret  ta.key

 

Ensuite copier les fichiers ta.key et dh.pem dans le répertoire /etc/openvpn/ à l’aide des commandes suivantes :

 

 sudo  cp ~/EasyRSA-3.0.4/ta.key   /etc/openvpn/

Puis

 sudo cp ~/EasyRSA-3.0.4/pki/dh.pem   /etc/openvpn/

A présent les certificats et les clés ont été générés.

 

Etape 5 : Création d’une paire Certificat-Clé client

On va maintenant générer une clé privée et un certificat pour un client que nous allons appeler « pierre »  sur le serveur. Créer un répertoire où seront stockés les fichiers de certificat et de clé du client.

 mkdir –p  ~/client/keys

Aller dans le répertoire  /EasyRSA-3.0.4

 cd EasyRSA-3.0.4

Puis exécuter le script easyrsa ; générer une demande client

 ./easyrsa  gen-req  pierre  nopass

Taper sur la touche ENTRER ;  on aura le résultat suivant :

Note: using Easy-RSA configuration from: ./vars
Can't load /home/bidj/EasyRSA-3.0.4/pki/.rnd into RNG
140163723592128:error:2406F079:random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:88:Filename=/home/bidj/EasyRSA-3.0.4/pki/.rnd
Generating a RSA private key
..................................................+++++
.........+++++
writing new private key to '/home/bidj/EasyRSA-3.0.4/pki/private/pierre.key.EbdX3MJa3R'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [pierre]:
Keypair and certificate request completed. Your files are:
req: /home/bidj/EasyRSA-3.0.4/pki/reqs/pierre.req
key: /home/bidj/EasyRSA-3.0.4/pki/private/pierre.key

Les paires certificats-clés et fichiers de configuration des clients seront stockés dans le répertoire  /client  crée précédemment.  Avant toute chose, il faut verrouiller les autorisations de ce répertoire par mesure de sécurité.  Taper :

 

 chmod –R 700 ~/client

 

Copier la clé du client pierre dans le répertoire  /client

 sudo cp /home/bidj/EasyRSA-3.0.4/pki/private/pierre.key   /home/bidj/client/keys/

 

Ensuite signer le certificat à l’aide de la commande suivante

 ./easyrsa  sign-req  client  pierre

Confirmer la demande en tapant  yes; En réponse on a :

 

You 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 client certificate for 3650 days:
subject=
    commonName                = pierre
Type the word 'yes' to continue, or any other input to abort.
  Confirm request details: yes
Using configuration from ./openssl-easyrsa.cnf
Can't load /home/bidj/EasyRSA-3.0.4/pki/.rnd into RNG
140126491890112:error:2406F079:random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:88:Filename=/home/bidj/EasyRSA-3.0.4/pki/.rnd
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'pierre'
Certificate is to be certified until Mar 21 21:10:48 2031 GMT (3650 days)
Write out database with 1 new entries
Data Base Updated
Certificate created at: /home/bidj/EasyRSA-3.0.4/pki/issued/pierre.crt

 

Ensuite copier le fichier du certificat client pierre dans le répertoire  /client/keys/

 sudo cp ~/EasyRSA-3.0.4/pki/issued/pierre.crt   ~/client/keys/

 

Ensuite copier les fichiers ca.crt  et ta.key dans le répertoire  /client/keys/

 sudo cp  ~/EasyRSA-3.0.4/ta.key   ~/client/keys/

Puis

 sudo cp /etc/openvpn/ca.crt  ~/client/keys/

 

Les fichiers clients et serveur ont été crées.

 

Etape 6 : Configuration du service OpenVPN

Les clés et les certificats du client et du serveur ont été générées au cours des étapes précédentes. On va à présent configurer le service OpenVPN pour utiliser ces informations d’identification.

On va utiliser un fichier nommé server.conf, qui est proposé avec l’installation de OpenVPN.  Ce fichier servira de base pour créer notre fichier de configuration.

Copier ce fichier dans le répertoire /etc/openvpn/,  pour cela taper la commande :

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

 

Ensuite décompresser l’archive :

 sudo gzip –d  /etc/openvpn/server.conf.gz

 

Editer le fichier :

 sudo nano /etc/openvpn/server.conf

Puis effectuer les modifications suivantes :

 

Dans section HMAC,  trouver la directive tls-auth ;  dé commenter si nécessaire cette ligne (en supprimant le « ; ») :

tls-auth key 0 #this file is secret

Rajouter la ligne

key-direction 0

Puis vérifier que la ligne qui suit est aussi dé commentée

cipher AES-256-CBC

Ensuite ajouter une directive auth pour sélectionner l’algorithme de synthèse des messages HMAC. On pourra choisir comme algorithme SHA256

auth SHA256

Trouver la ligne dh, puis supprimer 2048, pour avoir ceci :

dh dh.pem

Trouver ensuite les paramètres user et group, puis dé commenter les lignes correspondantes :

user nobody
group nogroup

Si on souhaite utiliser le VPN pour acheminer l’ensemble du trafic, on peut aussi diriger les paramètres DNS sur les ordinateurs clients.

Dé commenter les lignes suivantes :

push ‘’redirect-gateway def1 bypass-dhcp’’
push ‘’dhcp-option DNS 208.67.222.222’’
push ‘’dhcp-option DNS 208.67.220.220’’

Le port VPN par défaut est 1194 ; vous pouvez aussi utiliser le port 443 comme port VPN à la place du port 1194. Dans ce cas il faudra aussi changer le protocole en TCP. Ce choix sera restrictif, car il ne sera pas utilisé, si vous avez aussi un serveur WEB hébergé dans la même machine que votre serveur VPN.

Pour cet exemple on va conserver les paramètres par défaut pour le port, ainsi que le protocole.

Enregistrer et fermer le fichier une fois terminé.

 

Etape 7 : Configuration réseau

Ajuster le paramètre de transfert IP par défaut du serveur. Modifier pour cela le fichier :

/etc/sysctl.conf

Ouvrir ce fichier

 sudo  nano /etc/sysctl.conf

Dé commenter  la ligne

net .ipv4.ip_forward = 1

Enregistrer et fermer le fichier.

Ajuster la valeur pour la session en cours. Pour cela taper :

 sudo  sysctl -p

A présent on va configurer le parefeu et ajouter des règles de masquage. Avant cela on doit d’abord trouver l’interface réseau public de la machine ; taper la directive :

 ip route | grep default

Pour la machine de cet exemple on a :

default via 192.168.5.1 dev enp0s25 proto static

L’interface ici s’appelle enp0s25.

Editer le fichier before.rules, en tapant la commande

 sudo nano /etc/ufw/before.rules

Les règles du parefeu sont généralement ajoutées  à l’aide de la commande ufw

Rajouter modifier le fichier en ajoutant les directives comprises entre #BEGIN OPENVPN RULES et #END OPENVPN RULES; sans oublier de faire figurer la bonne interface réseau. On devra obtenir ceci :

#
# 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
# BEGIN OPENVPN RULES
*nat
:POSTROUTING ACCEPT [0:0]
# Allow traffic from OpenVPN client to enp0s25 change to your interface name
-A POSTROUTING -s 10.8.0.0/8 -o enp0s25 -j MASQUERADE
COMMIT
# END OPENVPN RULES
# Don't delete these required lines, otherwise there will be errors
*filter

Enregistrer et fermer le fichier.

Indiquer ensuite au pare feu d’accepter les paquets transmis par défaut. Pour cela ouvrir le fichier ufw :

 sudo nano  /etc/default/ufw

Puis changer la directive

DEFAULT_FORWARD_POLICY= ‘’ACCEPT’’

Enregistrer et fermer le fichier

Ajouter aussi le port 1194 du VPN au pare feu, ainsi que le port 22 du SSH si celui-ci n’a pas été rajouté avant.

 sudo  ufw allow 1194/udp

Puis :

 sudo ufw allow OpenSSH

Redémarrer le parefeu en tapant les commandes suivantes :

 sudo ufw disable
 sudo ufw enable

 

Etape 8 : Démarrage du serveur OpenVPN

Taper la commande

 sudo systemctl start openvpn@server>

On peut vérifier que le service a bien démarré en tapant :

 sudo systemctl  status openvpn@server>

On devrait voir affiché l’état du serveur,

  • Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. - OpenVPN connection to server
   Loaded: loaded (/lib/systemd/system/openvpn@.service; disabled; vendor preset
   Active: active (running) since Wed 2021-03-24 10:00:34 UTC; 2min 58s ago
     Docs: man:openvpn(8)
           https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
           https://community.openvpn.net/openvpn/wiki/HOWTO
 Main PID: 2385 (openvpn)
   Status: "Initialization Sequence Completed"
    Tasks: 1 (limit: 4617)
   CGroup: /system.slice/system-openvpn.slice/Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
           └─2385 /usr/sbin/openvpn --daemon ovpn-server --status /run/openvpn/s
Mar 24 10:00:34 servertest ovpn-server[2385]: Could not determine IPv4/IPv6 prot
Mar 24 10:00:34 servertest ovpn-server[2385]: Socket Buffers: R=[212992->212992]
Mar 24 10:00:34 servertest ovpn-server[2385]: UDPv4 link local (bound): [AF_INET
Mar 24 10:00:34 servertest ovpn-server[2385]: UDPv4 link remote: [AF_UNSPEC]
Mar 24 10:00:34 servertest ovpn-server[2385]: GID set to nogroup
Mar 24 10:00:34 servertest ovpn-server[2385]: UID set to nobody
Mar 24 10:00:34 servertest ovpn-server[2385]: MULTI: multi_init called, r=256 v=
Mar 24 10:00:34 servertest ovpn-server[2385]: IFCONFIG POOL: base=10.8.0.4 size=
Mar 24 10:00:34 servertest ovpn-server[2385]: IFCONFIG POOL LIST
Mar 24 10:00:34 servertest ovpn-server[2385]: Initialization Sequence Completed

On peut également vérifier que l’interface tun0 est disponible en tapant

 ip addr show tun0

On devra obtenir ceci :

3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/none
    inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::a290:c4c7:4f33:2ab1/64 scope link stable-privacy
       valid_lft forever preferred_lft forever

Activer le service OpenVPN afin qu’il puisse démarrer automatiquement après la mise sous tension de la machine. Taper la commande :

 sudo systemctl enable openvpn@sever>

Le serveur est maintenant opérationnel.

 

Etape 9 : Céation d’une infrastructure de configuration client

La création des fichiers de configuration clients est assez lourde, à chaque client qu’on doit créer, il faudra se conformer aux fichiers de configuration du serveur.  Il sera plutôt intéressant de créer un fichier de configuration qui servira de base pour tous les clients, puis un script qui permettra de générer les fichiers de configuration , les certificats et les clés uniques.

Créer un nouveau répertoire dans lequel seront stockés les fichiers de configuration client :

 mkdir –p client/files

Puis copier un exemple de fichier de configuration client dans le répertoire /client, qu’on va renommer base.conf :

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

Puis éditer le fichier base.conf

 sudo nano ~/client/base.conf

Modifier l’adresse IP avec celle de votre serveur, chercher pour cela la ligne remote :

 

S’assurer aussi que le protocole choisi est bien  proto  udp

Décommenter en supprimant le « ; » les directives user et group :

user nobody
group nogroup

 

Commenter les directives ca, cert, key et tls-auth.

Utiliser les mêmes paramètres cipher et auth utilisés précédemment dans le fichier server.conf.

cipher AES-256-CBC
auth  SHA256

 

Ajouter

tls-auth  ta.key 1

Ensuite ajouter le directive « key-direction 1 »

 key-direction 1

Pour les clients linux ayant un fichier  /etc/openvpn/update-resolv-conf

Vous pouvez rajouter les lignes suivantes :

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

 

Créer un script qui compilera le fichier de base avec les fichiers de certificat, de clé, et de chiffrement adéquate puis on pourra ainsi placer la configuration générée dans le répertoire /client/files

 

Ouvrir un fichier appelé make_config.sh  dans le répertoire /client :

 

 sudo nano  ~/client/make_config.sh

 

 Puis ajouter un contenu semblable à celui-ci :

 

#!/bin/bash

# First argument: Client identifier

KEY_DIR=~/client/keys
OUTPUT_DIR=~/client/files
BASE_CONFIG=~/client/base.conf

cat \({BASE_CONFIG} \
    <(echo -e '') \
    \){KEY_DIR}/ca.crt \
    <(echo -e '\n') \
    \({KEY_DIR}/\){1}.crt \
    <(echo -e '\n') \
    \({KEY_DIR}/\){1}.key \
    <(echo -e '\n') \
    \({KEY_DIR}/ta.key \
    <(echo -e '') \
    > \){OUTPUT_DIR}/${1}.ovpn

Enregistrer et fermer le fichier.

Configurer ce fichier ; pour cela exécuter la commande :

 sudo chmod  700 ~/client/make_config.sh

Ainsi au lieu de gérer séparément tous les fichiers de configuration de certificats, de clés des clients toutes les informations seront stockées au même endroit. Ainsi pour créer un nouveau client, il suffira d’exécuter ce script.

Exemple, on va créer deux clients appelés maitre2  et pierre2:

Il faut d’abord créer une paire certificat-clé pour le client maitre2  et le client pierre2;  comme cela a été crée pour le client pierre à l’étape 5.

Puis  se placer dans le répertoire /client :

 cd  ~/client

puis exécuter le script make_config.sh  pour maitre2 :

 sudo  ./make_config.sh maitre2

Et pour pierre2 :

 sudo ./make_config.sh pierre2

On peut aller voir si les clients maitre2 et pierre2 ont été crées dans le répertoire /client/files/

 

Etape 10 : Test de connexion du client

Ayant sous la main deux tablettes android, on va donc les utiliser pour les tests.  On commence par télécharger puis installer, depuis Google Play Store le client OpenVPN pour android, dans les tablettes.

Le client maitre2 sera installé dans la Tablette A.  Il faudra d’abord faire une copie de maitre2.ovpn sur un clé USB, puis le transférer sur une carte SD puis sur la tablette. Vous pouvez aussi utiliser la commande scp.

Lancer le client OpenVPN sur la tablette, puis créer un profil vpn.

Utiliser la flèche pour importer le profil depuis une carte SD.

Puis valider.

On reprendra les mêmes opérations sur la tablette B avec pierre2.

L'image ci-dessous atteste que le VPN fonctionne, à en juger avec la clé qui apparail en haut à droite de la tablette.

 

              openvpn clt

 

Idem pour l'autre client. Enfin nous avons vérifiés qu'on pouvait atteindre l'autre tablette et vice-versa avec la commande "ping". Notre test s'est arrêté là.

Il est possible d’utiliser indifféremment des clients Windows, Linux ou Mac, les procédures sont différentes et nous n’allons pas les présenter ici.

 

Révocation des clients

Pour empêcher tout accès à un client déjà crée, on procède par la révocation de son certificat.

Exemple, supposons qu’on désire révoquer le client pierre2 :

Aller dans le répertoire /EasyRSA-3.0.4,

 cd ~/EasyRSA-3.0.4

Puis taper :

 ./easyrsa revoke pierre2

Confirmer la révocation en tapant sur yes

Ensuite créer une liste de révocation sinon le client pourrait toujours se connecter :

./easyrsa gen-crl

Ensuite copier le fichier crl.pem dans le répertoire /etc/openvpn/

 sudo cp ~/EasyRSA-3.0.4/pki/crl.pem   /etc/openvpn/

Puis,

 sudo nano /etc/openvpn/server.conf

Puis ajouter à la fin du fichier "crl-verify".

Enregistrer puis fermer le fichier.

Redémarrer le serveur OpenVPN

 

Conclusion :

Beaucoup de sites marchands proposent des offres pour des VPN. En ce qui nous concerne, on peut enregistrer un grand nombre de clients dans notre serveur VPN, mais c’est travail fastidieux qui demande beaucoup de patience. Il existe des solutions commerciales proposant une interface graphique afin de créer rapidement des clients, on peut citer la solution OpenVPN-as  qui peut aussi être utilisée gratuitement, si on n’a que deux clients ; mais au de là, c’est un coût par licence que l’éditeur demandera.

Ce serveur VPN open source et gratuit, nous offre la possibilité de navigation, la protection de nos codes et identifiants en toute sécurité.