Vous êtes sur la page 1sur 10

OPENVPN

I – Premiers tests
Dans un premier temps je vais mettre en place un VPN non chiffré entre 2 machines, juste afin
de se familiarisé avec les paramètres d’un VPN.

MACHINE SERVEUR
Pour le moment nous avons deux interfaces réseau.

Je passe en root afin de créer un tunnel (ici tun1 mais on le nomme comme on veut).
- 1ère adresse IP (ici 10.0.0.1)  interface ip du serveur.
- 2ème adresse IP (ici 10.0.0.2)  interface ip distante (client).

Je remarque que la nouvelle interface réseau a été créée.


MACHINE CLIENT

Un message de mis en garde est affiché car le VPN n’est pas chiffré. Si je suis victime d’une
attaque MITM, l’attaquant pourra observer les différents messages échangés.

Je remarque que l’adresse IP du tunnel a bien été ajoutée. Le ping fonctionne de l’interface
de Bob vers celle de Nicolas et inversement.
II - Deuxièmes tests : Utilisation d’une clé partagée
Je vais créer un nouveau tunnel qui, cette fois, sera chiffré grâce à une clef partagée entre le
serveur et le client.

MACHINE SERVEUR
Cependant en démarrant ma machine je remarque qu’un VPN est déjà en fonctionnement. Je
le stop avec la commande kill.

Je créer la clef de chiffrement :


openvpn --genkey --secret cle.key

Je partage cette clef avec la machine client :


scp cle.key bob@192.168.240.4:/home/bob/VPN
En lançant le VPN un Warning me spécifie que la sécurité est trop faible, on me conseille
d’utiliser un algorithme de chiffrement ayant des blocs de taille plus large comme par
exemple AES-256-CBC. Je rectifie donc ma commande.

MACHINE CLIENT
Depuis la machine client j’initie la connexion en précisant l’adresse IP du serveur, la même
clef et le même protocole de chiffrement.

MACHINE SERVEUR
III – Création d’un VPN SSL avec OpenVPN
Le sujet du TP utilisant une autre version d’openvpn easy-rsa, le lien suivant est très utile.

https://ubuntu.com/server/docs/service-openvpn

MACHINE SERVEUR

La 1ère étape est d’installer le package nécessaire :


sudo apt install openvpn easy-rsa

Mise en place de l’autorité de certification (CA) afin de générer des certificats et clefs pour
un serveur Openvpn et plusieurs clients. Pour cela il faut copier le dossier easy-rsa sous
/etc/openvpn. Je le fait grâce à la commande suivante :
make-cadir /etc/openvpn/easy-rsa

Il est possible d’apport des modifications au fichier vars.

Autorité de certification
Ensuite lancer les deux commandes suivantes afin d’initier le PKI et créer sa clef privée.
./easyrsa init-pki
./easyrsa build-ca

Un mot de passe est demandé pour protéger la clef du pki puis un Common Name est à
préciser.

J’ai choisi www.centrale.tn en Common Name et password en mot de passe


Serveur
Maintenant il faut générer une paire de clef pour le serveur

./easyrsa gen-req soares_serveur nopass


Une requête a été générée ainsi qu’une clef.

Je continue en générant le défi Diffie Hellman qui est stocké dans /etc/openvpn/easy-rsa/pki :
./easyrsa gen-dh

Je termine par la création d’un certificat pour mon serveur :


./easyrsa gen-req soares nopass
./esayrsa sign-req server soares

Le certificat est stocké dans /etc/openvpn/easy-rsa/pki/issued :

Tout ce dont j’ai besoin a été généré (dans des sous répertoires) je les copie donc sous
/etc/openvpn :
CLIENT
Le client a également besoin d’un certificat pour s’authentifier auprès du serveur. Il y a 2
manières de faire :
- Le serveur créer le certificat puis le distribue au(x) client(s).
- Le client créer une demande de certificat qu’il fait signer au serveur

Je choisis de créer le certificat de mon client directement sur le serveur.


./easyrsa gen-req nicolas nopass

Une fois la demande de certificat effectuée, l’autorité de certification la signe.


./easyrsa sign-req client nicolas
s

Maintenant je dois envoyer à mon client :


- Le certificat de l’autorité de certification
- Le certificat du client
scp pki/ca.crt pki/issued/nicolas.crt nicolas@192.168.240.9:/home/nicolas
Maintenant je vais éditer le fichier de configuration du serveur, que je dois d’abord
récupérer.
cp /usr/share/doc/openvpn/examples/sample-config-
files/server.conf.gz /etc/openvpn/soares.conf.gz

Je décompresse ce fichier
gzip -d /etc/openvpn/soares.conf.gz

Puis j’édite le fichier :


vim /etc/openvpn/soares.conf

Les principales modifications sont de préciser les bons noms de certificats

Je termine en créant une ta.key pour l’authentification par TLS :


openvpn --genkey --secret ta.key

Puis je place ta.key sous /etc/openvpn/

Il faut démarrer le VPN :


systemctl status openvpn@soares
L’interface réseau du tunnel a été ajoutée :
Il

Les clients voulant utiliser le TLS doivent également posséder une copie de ta.key, je l’envoie
donc vers mon client de manière sécurisé.

J’envoie également la clef du client :

MACHINE CLIENT
Je passe à la configuration du client :
sudo apt-get install openvpn

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

Ensuite je colle ce que j’ai reçu du serveur sous /etc/openvpn :

Je continue en éditant le fichier client.conf :


Une fois les modifications enregistrées je démarre openvpn :
systemctl start openvpn@client

L’interface réseau a été ajoutée :

Le ping du client vers le serveur passe et vice-versa :

Vous aimerez peut-être aussi