Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Installer et configurer OpenVPN

Par Baptiste NOWICKI Publié le 10/12/2017 à 16:33:19 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Introduction

Un VPN (Virtual Private Network) ou réseau privé virtuel en français va nous permettre de créer un lien entre plusieurs ordinateurs. Le VPN va créer un tunnel entre les différents ordinateurs connectés, ils seront ainsi sur le même réseau local permettant d'outrepasser certaines restrictions (proxy, firewall...)

L'utilisation de ce système va donc nous permettre d'accéder à tous les ordinateurs connectés sur le même VPN et de ce fait avoir un accès au réseau interne (de votre domicile ou encore de votre entreprise)

Voici un petit schéma afin de comprendre le fonctionnement d'un VPN

OpenVPN est un logiciel libre développé par James Yonan écrit en C/C++ permettant de créer un réseau privé virtuel.

Dans cette seconde partie, nous verrons comment l'installer et le configurer sous Linux.

Installation

Dans le suite de ce tutoriel, nous assumons que vous êtes connecté en tant que root, si ce n'est pas le cas il faudra ajouter "sudo" avant chaque commande.

Nous commençons par installer les packages nécessaires : OpenVPN, git qui nous permettra de récupérer les fichiers pour la génération des clefs & iptables-persistent afin de sauvegarder notre configuration de route par la suite.

apt-get install iptables-persistent openvpn git

Une fois ces packages installés nous allons récupérer via git les fichiers qui vont nous permettre de générer les clefs.

cd /etc/openvpn
git clone https://github.com/OpenVPN/easy-rsa-old

Nous devons ensuite modifier différentes informations de notre fichier vars (KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG)

vim vars

Modifiez les variables précédemment citées en fonction de votre localisation et du nom de votre organisation.

Générer les clefs

PKI

Public Key Infrastructure ou infrastructure à clés publique en français va nous permettre de gérer les cycle de vie de nos certificats.

. ./vars
./clean-all
./build-ca

Remplissez les différentes informations demandées lors de cette dernière commande.

Serveur

Nous allons maintenant générer la clef de notre serveur

./build-key-server server

Remplissez les différentes informations demandées et signez le certificat.

Client

Une fois la clef du serveur générée nous allons créer celle de notre client

./build-key client1

Remplissez les différentes informations demandées et signez le certificat.

Si plusieurs utilisateurs vont se connecter à votre VPN il faudra recommencer cette étape (1 clé par utilisateur)

Diffie Hellman

Algorithme d'échange de clefs

./build-dh

Tls-auth (optionnel)

Afin de renforcer notre sécurité (protection contre attaque DOS, scanning de port ...) nous allons générer la clef ta (tls-auth)

cd keys/
openvpn --genkey --secret ta.key

Ci-dessous un tableau récapitulatif des différentes clefs et de leur utilité.

Nous allons maintenant copier nos clefs dans le dossier racine d'openVPN

cd /etc/openvpn/easy-rsa-old/easy-rsa/1.0
cp -R keys/ /etc/openvpn/

Configurer notre serveur

Maintenant que nos clefs sont générées nous allons attaquer la partie configuration du serveur.

Création du fichier de configuration :

vim /etc/openvpn/server.conf

Collez-y ceci :

# Conf
mode server
proto udp
port 1194
dev tun
# Certificates and keys
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh2048.pem
tls-auth ta.key 0 #si la clef a ete generee
cipher AES-256-CBC
# Network
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
persist-key
persist-tun
comp-lzo
# Log
verb 3
mute 20
status openvpn-status.log

Quelques explications :

# Conf

Nous indiquons que c'est notre configuration serveur, nous utilisons le protocole UDP ainsi que le port 1194 (libre à vous de changer le port si vous le souhaitez)

# Certificates and keys

Nous renseignons le chemin de nos clefs et le CIPHER (algorithme qui permet d'encrypter / décrypter nos clefs)

# Network

Ici nous renseignons les IP's qui seront assignées à nos clients lors de la connexion, nous voulons que tous le traffic passe par notre VPN et enfin nous utilisons les DNS d'OpenDNS (que vous pouvez bien entendu changer)

Nous allons maintenant vérifier le bon fonctionnement de cette configuration.

cd /etc/openvpn
openvpn server.conf

Si la configuration a été correctement réalisée, vous devriez avoir quelque chose comme cela :

Routage et ports

Activation de l'ip forwarding qui va nous permettre de faire fonctionner notre machine comme routeur entre plusieurs réseaux

vim /etc/sysctl.conf

Il faut ensuite dé commenter la ligne 28 (enlever le #)

net.ipv4.ip_forward=1

Puis on recharge sysctl

sysctl -p

Nous allons ensuite configurer notre routing grâce à iptables

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Attention à bien adapter la commande en fonction de la carte réseau utilisée (eth0 ou autre)

Afin de savoir quelle carte est utilisée, un simple

ifconfig

pourra vous renseigner.

Enfin nous sauvegardons cette règle afin de la rendre persistent même après un reboot de la machine

iptables-save > /etc/iptables.rules

Notre configuration côté serveur est maintenant terminée, passons à la configuration client.

Configuration client sous Windows

Téléchargez tout d'abord OpenVPN sur le site officiel : https://openvpn.net

Nous allons maintenant récupérer nos clefs via WinSCP : https://winscp.net/eng/download.php

Lancez le logiciel et connectez-vous comme vous avez l'habitude de le faire avec votre client SSH.

Naviguez dans les dossiers jusque : /etc/openvpn/keys

Récupérer les clefs nécessaires (souvenez vous du tableau récapitulatif) :

  • ca.crt

  • client1.crt

  • client1.key

  • ta.key (si générée)

Et copiez les dans un dossier (sur votre bureau par exemple)

Venez ensuite les coller dans le répertoire config d'OpenVPN ( par exemple C:\Program Files\OpenVPN\config )

Il est maintenant temps de créer le fichier de configuration client :

Ouvrez un bloc note et collez-y ceci :

client
dev tun
proto udp
remote IPSERVEUR 1194
resolv-retry infinite
nobind
ca ca.crt
cert client1.crt
key client1.key
tls-auth ta.key 1
persist-key
persist-tun

cipher AES-256-CBC
comp-lzo
verb 3

Pensez à bien remplacer IPSERVEUR par l'IP du serveur ou vous avez installé OpenVPN.

Sauvegarder ce fichier dans C:\Program Files\OpenVPN\config\client1.ovpn (attention à l'extension !)

Lancez OpenVPN en tant qu'administrateur puis faites un clic droit : Connecter

Une fois connecté et afin de vérifier le bon fonctionnement de votre VPN, vous pouvez vérifier votre IP sur :

http://whatismyipaddress.com/fr/mon-ip

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels