Vous êtes sur la page 1sur 12

INSTALLATION D'OPENVPN:

http://openmaniak.com/fr/openvpn_tutorial.php

Suivez le tutorial d'installation d'OpenVPN.

ARCHITECTURE CLIENT/SERVER:

Parmi les deux boitiers OpenVPN, il est ncessaire d'en dclarer un en tant que serveur et l'autre en
tant que client. Dans certains scenarios, chaque boitier peut tre dclar comme serveur ou client,
mais dans d'autres, il est obligatoire de choisir spcifiquement un boitier comme serveur et l'autre
comme client, regardons quand.
Avant d'tablir le VPN SSL, le client essaie d'abord de joindre le serveur sur un port spcifique, le
serveur n'ayant pas besoin d'atteindre le client. Prenons un exemple o vous tes dans un
environnement professionnel et voulez tablir un VPN avec un quipement directement connect
Internet, disons un quipement votre domicile.
Dans ce cas usuel, le client peut atteindre le serveur mais pas le contraire, Ceci est du au fait que le
client est situ dans un rseau local et se connecte Internet via un proxy et un Pare-feu qui vont
changer son adresse IP source par leur propre adresse IP ou une autre membre d'un pool.
Bien-sr, quand le tunnel est cr, le trafic en son intrieur est bidirectionnel.

FICHIER DE CONFIGURATION:

Crez un fichier o vous stockez votre configuration d'OpenVPN.


Dans notre exemple, nous allons appeler ce fichier config.txt and le sauver dans le dossier
/home/user/ ou "C:\Program Files\OpenVPN\config\" selon s'il s'agit d'une machine Linux/Unix ou
Microsoft.

Les paramtres de configuration sont prsents dans les paragraphes suivants.

1
DESIGNATION CLIENT/SERVEUR :
SERVEUR CLIENT
# ADRESSE IP DU SERVEUR
# ADRESSE IP DU SERVEUR
# L'adresse IP WAN du client
remote 100.0.0.1
n'est pas
#
# requise

MODE DE TUNNEL:

Vous pouvez choisir entre un tunnel IP (pilote TUN) ou Ethernet (pilote TAP).
Le tunneling IP est galement appel mode de routage tandis que le tunneling Ethernet est aussi
appel mode pont (bridging).
Prfrez le mode tunnel IP (par dfaut) moins que vous n'ayez besoin de faire passer du trafic
ethernet comme du NetBios dans le tunnel.

PORT DU TUNNEL:

Le port source et destination de tunneling est par dfaut le port UDP 1194. Il est possible qu'il soit
ncessaire de le changer pour des raisons d'ouverture de port sur le pare-feu autrement vous pouvez
le garder telle quelle.
Preferez les ports UDP. L'utilisation de TCP peut mener la dgradation des performances.

Comme la majorit des applications utilisent TCP, si un mode de tunnel TCP est galement choisi,
vous allez crer un tunnel TCP sur TCP (TCP over TCP). Ce mode de tunnel n'est pas recommand
parce qu'en cas de retransmissions de paquets l'intrieur du tunnel, des recalcules vont intervenir
dans les deux tunnels, ce qui va mener de basses performances comme un temps de rponse lev.
Prfrez le protocole UDP pour tunneliser vos applications parce que UDP ne fournit pas de
mecanisme de vrification d'erreur comme le fait TCP.
Lisez cet article pour obtenir plus de dtails propos du problme des tunnels TCP sur TCP.
SERVEUR ET CLIENT
# TUNNEL TCP OU UDP
# TCP tunnel
proto tcp
# Tunnel UDP est recommand
proto udp
# Utilisez UDP ou TCP mais pas
les deux
#
# PORT TCP OU UDP
port 1194

2
PARAMETRAGES DU FIREWALL:

Vous devez vrifier que l'adresse IP de votre client OpenVPN peut atteindre l'adresse IP de votre
serveur ainsi que le port TCP/UDP.
Voici un exemple d'une rgle de scurit qui peut tre implment sur le pare-feu du schma ci-
dessous.

Grce la simplicit des configurations d'OpenVPN, les problmes pour tablir une connexion
proviennent trs souvent de restrictions d'adresses IP ou de ports sur le chemin entre le client et le
serveur.

TUNNEL ETHERNET/IP:

Vous pouvez choisir de construire soit des VPNs Ethernet, soit des VPNs IP avec l'aide
respectivement des pilotes TAP et TUN. TAP/TUN sont disponibles sur toutes les plates-formes et
sont dj prsent avec les Linux noyau 2.4 et suprieur.
Prfrez TUN (par dfaut) moins que vous avez besoin de faire passer du trafic Ethernet comme
du NetBios l'intrieur du tunnel.

Pour vrifier que les pilotes TUN/TAP sont chargs:


#lsmod | grep tun
tun 12672 1

Notez que le pilote "tun" est aussi le pilote TAP.


Si vous n'avez aucune rponse, vous pouvez le module du noyau de la faon suivante:
#modprobe tun
SERVEUR et CLIENT
# TUNNEL ETHERNET OU IP
# "dev tun" will create a routed
IP tunnel
dev tun
# "dev tap" will create an
Ethernet IP tunnel
dev tap
# use "dev tun" or "dev tap" but
not both

3
ARCHITECTURE OPENVPN de SECURITE:

Transparent tunnel:

OpenVPN tunnelise juste les donnes sans authentification, confidentialit ou intgrit. En d'autres
termes, il n'y a aucune vrification de scurit et les donnes peuvent tre vues quand elles
transitent dans le tunnel.
SERVEUR et CLIENT
# Client AND Server configs
# Pas d'intgrit (algorithme
# de hachage)
auth none
# Pas de chiffrement (algorithme
de chiffrement)
cipher none

Clefs partages:

Une combinaison secrte et permanente est partages entre les deux passerelles VPN.
Crez d'abord les clefs partages avec le tutorial de cration de clefs partages.
SERVEUR et CLIENT
# CLEFS PARTAGEES
# Systme LINUX
static /home/user/openvpn/key.txt
# Systme Windows
static "C:\\Program
Files\\OpenVPN\\config\\key.txt"
#openvpn /home/teddybear/openvpn/config.txt
>openvpn "C:\Program Files\OpenVPN\config\config.txt"

4
SSL/TLS:

- Client ou serveur SSL/TLS:


SERVEUR CLIENT
# SERVEUR SSL/TLS # CLIENT SSL/TLS
tls-server tls-client
- Certificats et clefs publiques:

Chaque quipement doit avoir ses propres clefs prive et publique. La clef publique tant incluse
dans un certificat.
Le certificat de l'autorit de certification (CA) doit aussi tre dtenu par chaque quipement
OpenVPN.
Voir le Tutorial sur la PKI pour comprendre l'infrastructure cls publiques (Public Key
Infrastructure) et savoir comment crer des clefs publiques et des certificats.
SERVEUR CLIENT
# CERTIFICATS ET CLEF # CERTIFICATS AND CLEF
PRIVEE PRIVEE
# Certificat de l'autorit (clef # Certificat de l'autorit (clef
publique du CA) publique du CA)
ca ca.key ca ca.key
# Certificat du server (clef # Certificat du client (clef
publique du serveur) publique du serveur)
cert server.crt cert client.crt
# Clef prive du serveur # Clef prive du client
key server.key key client.key
- Paramtres Diffie-Hellmann (DH):

Une fois que les boitiers OpenVPN sont surs de l'identit de l'autre (authenticit), DH peut tre
utilis pour crer un clef secrte partage pour les algorithmes de fonction de hachage (intgrit) et
de chiffrement (confidentialit).
En combinant un clef DH prive avec la clef DH public de l'autre boitier OpenVPN, il est possible
de calculer une clef partage secrte que seul les deux machines OpenVPN connaissent.
Voir le Tutorial SSL et PKI pour savoir comment crer les paramtres DH.

SERVEUR CLIENT
# Aucun paramtre DH sur le
# Paramtres Diffie-Hellman
client
dh dh1024.pem
#
Cette clef DH partage peut tre compare la clef partage OpenVPN.
Ces clefs partage seront utilises par les algorithmes de chiffrement symtrique et fonctions de
hachage comme montr dans les deux prochains paragraphes.

5
ALGORITHME DE CHIFFREMENT
SERVEUR et CLIENT
# ALGORITHME DE
CHIFFREMENT
cipher AES-256-CBC
- La confidentialit est assure par des algorithmes de chiffrement comme 3DES ou AES pour
empcher la lecture des donnes.
L'algorithme OpenVPN par dfaut est le Blowfish (signifiant poisson-lune en franais).
Pour vrifier les algorithmes disponibles:
#openvpn --show-ciphers
DES-CBC 64 bit default key (fixed)
IDEA-CBC 128 bit default key (fixed)
RC2-CBC 128 bit default key (variable)
DES-EDE-CBC 128 bit default key (fixed)
DES-EDE3-CBC 192 bit default key (fixed)
DESX-CBC 192 bit default key (fixed)
BF-CBC 128 bit default key (variable)
RC2-40-CBC 40 bit default key (variable)
CAST5-CBC 128 bit default key (variable)
RC5-CBC 128 bit default key (variable)
RC2-64-CBC 64 bit default key (variable)
AES-128-CBC 128 bit default key (fixed)
AES-192-CBC 192 bit default key (fixed)
AES-256-CBC 256 bit default key (fixed)

CBC pour Cipher Block Chaining (Chiffrement par bloc de donnes) est un mode oprationel de
cryptographie utilis pour chiffrer les donnes avec un algorithme de chiffrement par bloc comme
CBC utilise de petits segments de donnes, la place de processer des blocs entiers en une fois,
d'autres modes d'operation cryptographique sont EBF, OFB, CFB. CBC est recommand.

6
ALGORITHME DE HACHAGE

- L'intgrit utilise des fonctions de hachage pour protger l'altration des donnes.
HMAC est souvent utilis en addition de SHA1 et MD5.
Les fonctions de hachage par dfaut de OpenVPN sont HMAC-SHA1.
Pour vrifier les algorithmes disponibles:
#openvpn --show-digests
MD2 128 bit digest size
MD5 128 bit digest size
RSA-MD2 128 bit digest size
RSA-MD5 128 bit digest size
SHA 160 bit digest size
RSA-SHA 160 bit digest size
SHA1 160 bit digest size
RSA-SHA1 160 bit digest size
DSA-SHA 160 bit digest size
DSA-SHA1-old 160 bit digest size
MDC2 128 bit digest size
RSA-MDC2 128 bit digest size
DSA-SHA1 160 bit digest size
RSA-SHA1-2 160 bit digest size
DSA 160 bit digest size
RIPEMD160 160 bit digest size
RSA-RIPEMD160 160 bit digest size
MD4 128 bit digest size
RSA-MD4 128 bit digest size
SERVEUR et CLIENT
# ALGORITHME DE HACHAGE
auth MD5
"openvpn --show-tls" affiche le chiffrement et le code d'authentification du message (MAC) utilis
durant la ngociation SSL/TLS. Ils ne doivent pas tre confondus avec le chiffrement et le MAC
utilis pour scuriser le tunnel.

7
ADRESSES IP:

Choississez les adresses IP que vous voulez utiliser l'intrieur du tunnel.

Adresses IP statiques:

En mode rout, deux adresses IP (locale et distante) l'intrieur d'un masque de sous-rseau de 30
bits doivent tre choisi.
En mode pont (bridged), une adresse pour le boitier local OpenVPN et un masque de sous-rseau
incluant l'adresse IP du serveur sont choisis.
SERVEUR CLIENT
# ADDRESSAGE IP # ADDRESSAGE IP
# Exemple mode IP: # IP Tunnel
# Serveur IP: 10.8.0.1 ; Client # Serveur IP: 10.8.0.1 ; Client
IP: 10.8.0.2 IP: 10.8.0.2
ifconfig 10.8.0.1 10.8.0.2 ifconfig 10.8.0.2 10.8.0.1
# Exemple mode pont # Exemple mode pont
# Serveur IP: 10.8.0.1 # Client IP: 10.8.0.2
ifconfig 10.8.0.1 255.255.255.0 ifconfig 10.8.0.2 255.255.255.0
# Utilisez le mode IP ou bridge # # Utilisez le mode IP ou bridge
mais mais
# pas les deux # pas les deux
# Le client et le serveur doivent # Le client et le serveur doivent
utiliser utiliser
# le mme mode de tunnel # le mme mode de tunnel
Adresses IP dynamiques:

Dans ce cas, le serveur possde une adresse IP statique et fournir des adresses IP aux clients comme
un serveur DHCP.
SERVEUR CLIENT
# LE CLIENT ACCEPTE LES
# PARAMETRES DHCP
OPTIONS
# Etendue DHCP
# DU SERVEUR
# Le serveur s'attribue la
# Le client devrait accepter les
premire
options
# adresse de l'tendue
# pousses par le serveur
server 10.8.0.0 255.255.255.0
pull

8
PARAMETRES OPTIONELS:

OpenVPN offre un trs large nombre de paramtres.


Rfrez-vous la page man OpenVPN pour de l'assistance.

PARAMETRES DE JOURNALISATION:

La verbosit du journal (log) est configur de 0 (minimal) 15 (complet). Dans une utilisation
normale, les niveaux verbeux "2" et "4" vont dj fournir assez de journaux.

# Niveau de verbosit.
# 0 -- Erreurs fatales seulement.
# 1 -- Trs silencieux mais affiche des erreurs non-fatales.
# 3 -- Sortie moyenne, idal pour des oprations moyennes.
# 9 -- verbeux, bon pour un dpannage.
SERVEUR and CLIENT
# VERBOSITE DU JOURNAL
# Paramtrage de la verbosit du
journal, 0=min 15=max
verb 3

9
UTILISATEUR OPENVPN:

Pour des raisons de scurit, c'est toujours mieux de faire tourner un logiciel sans les privilges
root.
Vous pouvez rduire les privilges du dmon OpenVPN aprs initialisation pour oprer en tant
qu'utilisateur "nobody".
Une autre chose intressante pour la scurit est de limiter le droit pour OpenVPN accder des
fichiers aprs initialisation avec "chroot".

Ces deux paramtres de scurit sont disponibles sous des systmes comme Linux ou Unix mais pas
sous Microsoft Windows. Une autre raison de prfrer des outils open source comme les systmes
oprationels Linux ...
SERVEUR and CLIENT
# SECURITE OPENVPN - Linux
seulement
# Utilisateur OpenVPN
user nobody
# Aprs initialisation, OpenVPN
peut
# seulement accder un dossier
# Le dossier peut tre vide
# Limitation du processus
OpenVPN
chroot /etc/openvpn/

10
LANCEMENT D'OPENVPN:

Utilisez la syntaxe suivante pour lancer OpenVPN.


#openvpn chemin-du-fichier-de-configuration
Ci-dessous deux exemples avec Linux et Windows. Le fichier de config est "config.txt":
#openvpn /home/teddybear/openvpn/config.txt
>openvpn "C:\Program
Files\OpenVPN\config\config.txt"
VERIFICATION DES JOURNAUX:

Le journal devrait se terminer avec la ligne suivante:

Initialization Sequence Completed

Ceci indique que le tunnel OpenVPN a t cr avec succs.

TESTS DE CONNECTIVITES:

Ping est un utilitaire commun pour vrifier les connectivits IP.


Les passerelles VPN devraient pinger l'adresse IP tunnel de l'autre.
Par exemple, dans notre scenario, nous pingons l'adresse IP tunnel du client depuis le serveur:
ping 10.8.0.2

11
VERIFICATION DU PROCESSUS OPENVPN:

A venir bientt ...

Here are some OpenVPN default values:


PARAMETRE: VALEUR:
port source et dest: UDP 1194
Mode de tunnel: Tunnel IP (mode tun)
Chiffrement symtrique: Blowfish - CBC (128 bits)
Fonctions de hachage: HMAC - SHA1 (160 bits)
Compression: NON
MTU du tunnel: 1500 bytes
mode verbeux: 0
Haut de la page

12

Vous aimerez peut-être aussi