Le VPN : Réseau privé virtuel - notions de base

15 septembre 2006

Télécharger en PDF


Sommaire

I.Le concept de réseau privé virtuel 1

a)Introduction 1

b)Un peu plus sur le fonctionnement du VPN 2

c)Les fonctionnalités du VPN en résumé 2

II.Les implémentations historiques de VPN 3

a)Catégories de protocoles 3

1)Classement par Niveau OSI 3

2)Classement par Système d'exploitation 3

b)Les principaux protocoles de VPN 3

1)Le protocole PPTP 4

2)Le protocole L2TP 6

3)Le protocole IPSec 7

i.Mode de transport 7

ii.Les composantes d'IPSec 8

iii.L'échange des clés 9

4)Le protocole MPLS 10

c)L'implémentation OpenVPN 10

III.Bibliographie 10


I.Le concept de réseau privé virtuel


a)Introduction



Les réseaux locaux type LAN permettent de faire communiquer les ordinateur d'un site d'une société ensemble. Ces réseaux sont relativement sûr car ils sont quasiment toujours derrière une série de pare-feu ou coupés d'Internet et que le chemin emprunté par les données ne quitte pas l'entreprise et est connu. Ils peuvent toutefois être soumis à des attaques dites du « man-in-the-middle » qui sera l'objet d'un autre document.

Sur Internet, on ne sait pas par où passent les données car les chemins changent. Ces données peuvent donc être écoutées ou interceptées. Il n'est donc pas envisageable de faire connecter deux LAN entre eux par Internet sans moyen de sécuriser le cheminement des données échangées.

Il existe alors deux solutions :



Voici comment peut se schématiser une Réseau Privé Virtuel ou VPN :






Mais alors pourquoi réseau virtuel privé. Virtuel simplement parce que le VPN relie deux réseaux physiques LAN par une liaison qui n'est pas réellement sûre et surtout pas dédiée à cet usage. Et privé parce que les données sont encryptées et que seuls les deux réseaux se voient mais ne sont pas vus de l'extérieur.



Pour résumé le VPN permet de mettre deux sites en relation de façon sécurisée à très faible coût par une simple connexion Internet. Mais cela se fait au détriment des performances car le passage par Internet est plus lent que sur une liaison dédiée.



b)Un peu plus sur le fonctionnement du VPN



Le VPN repose sur un protocole de tunnelisation qui est un protocole permettant de chiffrer les données par un algorithme cryptographique entre les deux réseaux.



Il existe deux types de VPN :



c)Les fonctionnalités du VPN en résumé



Le VPN n'est qu'un concept, ce n'est pas une implémentation. Il se caractérise par les obligations suivantes :



II.Les implémentations historiques de VPN

a)Catégories de protocoles

1)Classement par Niveau OSI



Il existe deux catégories de protocoles VPN :



2)Classement par Système d'exploitation



Voici les protocoles classés par OS :

b)Les principaux protocoles de VPN



Les principaux protocoles de tunneling VPN sont les suivants :



1)Le protocole PPTP


Le principe du protocole PPTP (RFC2637) (Point To Point Tunneling Protocol) est de créer des trames avec le protocole PPP et de les crypter puis de les encapsuler dans un paquet IP.

Cela permet de relier les deux réseaux par une connexion point-à-point virtuelle acheminée par une connexion IP sur Internet. Cela fait croire aux deux réseaux qu'ils sont reliés par une ligne directe.



On garde, ainsi les adresses des réseaux physiques dans la trame PPP cryptées et cette trame est acheminée normalement sur Internet vers l'autre réseau.



Il permet les opérations suivantes :



La connexion se passe donc ainsi :




On obtient donc une connexion PPP au dessus de la connexion Internet ou Ethernet qui nous donne accès au serveur VPN pptpd. Cette connexion PPP obtient une IP de la plage définie dans la configuration de pptpd. Sur le serveur, on a une connexion de son IP publique vers l'IP virtuelle du client et sur le client c'est l'inverse.



Voici ce que cela donne avec un ping vers une machine derrière le serveur:

11:00:17.003113 IP IP_client > IP_serveur: GREv1, call 128, seq 120, length 101: compressed PPP data

11:00:17.503088 IP IP_client > IP_serveur: GREv1, call 128, ack 116, no-payload, length 12

11:02:12.840243 IP IP_serveur > IP_client: GREv1, call 0, seq 135, ack 139, length 105: compressed PPP data



On voit donc uniquement les paquets cryptés.



Un paquet d'une connexion PPTP ressemble donc à ceci :




Il est encore beaucoup utilisé du fait qu'il est nativement intégré aux systèmes Windows. Mais les protocoles tels que IPSec ou OpenVPN sont bien meilleurs en sécurité et en performances.



Pour plus d'information sur ce type de VPN, voir le tuto qui est consacré à PPTP.

2)Le protocole L2TP



C'est un protocole très proche des protocoles PPTP et L2F et est normalisé dans un RFC. Cette fois les trames PPP sont encapsulées dans le protocole L2TP lui-même et les trames PPP peuvent encapsuler des paquets IP, IPX, NetBIOS ou autre. Il se base aussi souvent sur IPSec.

Il y faut deux types de serveurs pour utiliser L2TP :



Plus techniquement, voici l'encapsulation qu'engendre L2TP (de bas en haut, dans le cas d'un HTTP) :

Il est donc relativement lourd, d'autant que les MTU (taille max des paquets) des lignes traversées peuvent générer de la fragmentation. Son seul avantage est de pouvoir terminer une session PPP n'importe quand ce qui permet à un utilisateur mobile de pouvoir se connecter facilement en VPN.



L2TP est encapsulé dans des paquets UDP entre le LAC et le LNS et utilise le port 1701.



La connexion d'un utilisateur se passe donc comme suit :








Pour Linux, il existe l'implémentation RP-L2TP (http://sourceforge.net/projects/rp-l2tp).



Pour plus d'information sur ce type de VPN, voir le tuto qui est consacré à L2TP.

3)Le protocole IPSec


i.Mode de transport

IPSec est un protocole défini par l'IETF permettant de sécuriser les échanges au niveau de la couche réseau. Il s'agit en fait d'un protocole apportant des améliorations au niveau de la sécurité au protocole IP afin de garantir la confidentialité, l'intégrité et l'authentification des échanges.

Il existe deux modes pour IPSec :







ii.Les composantes d'IPSec

Le protocole IPSec est basé sur quatre modules :



En résumé, le SPD indique quels paquets il faut traiter et le SAD indique comment il faut traiter un paquet sélectionné.




iii.L'échange des clés

L'échanges des clés nécessaires au cryptage des données dans IPSec peut se faire de trois façons différentes :

A l'issue de ces deux phases, le canal IPSec est mis en place.



Pour plus d'informations sur sa configuration, voir le tuto qui est consacré à IPSec.

4)Le protocole MPLS



C'est un protocole développé en partie par Cisco pour faciliter le routage IP par les commutateurs. Il est assez peu employé. Il repose sur la commutation de Label (ce qui n'a rien de particulier au VPN). Le principe est de mettre un entier (le label) entre les couches 2 (liaison) et 3 (réseau) qui évite au routeur de remonter plus haut qu'il n'en a besoin. Ainsi, il a une table pour lui dire « si je reçois un paquet avec le numéro n je le réémet sur ma sortie S avec le label m ». Ceci évite d'avoir besoin de lire l'entête IP et de consulter sa table de routage IP.

Voir aussi Tout sur Mpls.

c)L'implémentation OpenVPN



OpenVPN est une solution qui se base sur SSL. Cela permet d'assurer deux choses à la fois, sans avoir besoin de beaucoup de logiciel côté client :

Il permet par exemple de résoudre les problèmes de NAT en offrant la même protection qu'IPSec mais sans les contraintes.



Pour plus d'information voir le tuto consacré à OpenVPN.



III.Bibliographie

VPN - Réseaux Privés Virtuels (RPV)

Les Réseaux Privés Virtuels - Vpn

OpenVPN - An Open Source SSL VPN Solution by James Yonan

Réseau privé virtuel - Wikipédia

sharevb