Introduction

Dans ce dossier consacré aux VPNs nous allons expliquer en des termes simples le fonctionnement d'un VPN et les protocoles utilisés pour sa mise en place et sa sécurisation. VPN signifie Virtual Private Network, soit Réseau Privé Virtuel (RPV) pour nous autres francophones.

Un tel procédé consiste à connecter deux réseaux confidentiels au travers d'un réseau jugé non sûr. Le réseau le plus souvent utilisé pour établir des VPNs est la plupart du temps Internet, ce dernier de par son faible coût est en effet souvent mis à contribution pour faire transiter toutes sortes de données, dont on exige un niveau de sécurité plus ou moins élevé durant les transferts...
On dit que l'on crée un tunnel entre les deux réseaux que l'on souhaite interconnecter, pour réaliser ce tunnel il faut avoir recours à un protocole de " tunnelisation ".

Bien entendu un tel système est plus utilisé par les entreprises que par les particuliers, il est en effet rare que ces derniers disposent de deux réseaux et aient besoin de les interconnecter d'une telle manière !


Image


Du fait qu'un VPN passe par un réseau considéré comme non sécurisé, des procédures de sécurisation vont être mises en place, chacune ayant son importance pour garantir un minimum de sécurité :
  • L'authentification : il faut être certain que ce soit la bonne personne ou entité qui cherche à établir le VPN
  • L'intégrité : les données transitant par un autre réseau, il faut garantir qu'elles ne vont pas être corrompues par une personne située au milieu de la communication.
  • La sécurité : le contenu de la communication ne doit pas être accessible aux personnes qui arriveront à intercepter une partie des données. L'utilisation d'un algorithme de cryptage sera alors nécessaire.

Au cours de ce dossier nous allons voir les deux principaux cas d'utilisation des VPNs : le VPN LAN to LAN (tunnel fixe) et le VPN dit RoadWarrior (dont une des extrémités change d'emplacement à chaque connexion). Nous passerons également en revue les trois protocoles de tunnelisation les plus utilisés aujourd'hui à savoir PPTP, L2TP et IPSec.

Il est important de comprendre qu'un réseau IP est formé par différentes couches (modèle OSI), chacune s'appuyant sur l'autre pour transmettre les informations. On parle alors d'encapsulation, ou encore de pile TCP/IP. Il sera nécessaire de bien avoir cette notion à l'esprit pour comprendre l'empilement des protocoles les uns sur les autres.

Des allusions à ce que l'on appelle des Request For Comments seront faites, une RFC est une documentation issue d'un groupe de travail. Il s'agit là de la documentation complète des protocoles réalisée par les personnes et les sociétés qui les ont créés.

Bien entendu le domaine des VPNs est loin d'être simple, le but de ce dossier n'est pas de s'étendre dans des détails trop techniques mais d'expliquer de la manière la plus simple possible le fonctionnement d'un VPN. Un lien vers une documentation externe sera fourni pour les détails les plus ardus, cela aidera tant les débutants dans leur compréhension globale que les experts dans leur soif de détails. Dans la mesure du possible ces documentations seront en français, le cas échéant en anglais.


../..

LAN to LAN ou RoadWarrior '

  • LAN to LAN ou RoadWarrior '

Deux types de mise en pratique de VPN existent, d'un côté ce que l'on appelle le "LAN to LAN", et de l'autre le "RoadWarrior".

1. LAN to LAN
Un VPN LAN to LAN est plus proche du sens réel de l'abréviation de VPN : à savoir relier deux réseaux locaux en un seul. Ce type de VPN étant destiné à être permanent, il ne faudra pas négliger la sécurité de ce dernier : en effet, les échanges étant permanents, un pirate aura plus de matière à décoder les données qui transitent entre les deux points.
Nous verrons dans la suite de ce dossier qu'il est possible de sécuriser à chaque niveau les échanges.


VPN - LAN to LAN
Un réseau "A" et un réseau "B"
interconnectés à l'aide d'un VPN




2. RoadWarrior
Ce type d'utilisation correspond à celui d'un utilisateur nomade qui crée une connexion depuis un lieu qui est variable. Il s'agit donc d'un VPN qui est temporaire et n'est pas destiné à être fixe, la sécurité est ainsi moins importante que pour un VPN destiné à être permanent.


VPN - RoadWarrior
Utilisateur nomade avec VPN RoadWarrior



Nous allons maintenant voir dans le détail les trois protocoles de tunnelisation les plus utilisés aujourd'hui, à savoir :

  • PPTP
  • L2TP
  • IPSec
../..

Le protocole PPTP

  • Le protocole PPTP

Le Point-To-Point Tunneling Protocol (PPTP) est un protocole d’encapsulation s’appuyant sur le protocole PPP pour la communication. Ce protocole ne peut travailler que sur des réseaux IP. Historiquement parlant, ce protocole a été implémenté pour la première fois par Cisco, il fut ensuite repris par Microsoft dans ses systèmes Windows. Une spécification fut publiée dans la Request For Comments (RFC) 2637 en juillet 1999, parmi les auteurs on citera à nouveau Microsoft, mais également l’équipementier 3Com, ainsi que d’autres sociétés moins connues (Ascend Communications, Copper Mountain Networks, ECI Telematics, etc…)


Image


Fonctionnement général d'un VPN avec PPTP
Le protocole PPTP consiste en deux flux de communication entre le client et le serveur, s'appuyant directement sur le protocole IP :
  • Le premier flux a pour rôle la gestion du lien entre les deux parties, il s’agit là d’une connexion sur le port 1723 du serveur en TCP.
  • Le second flux concerne les données échangées entre les deux parties, bien entendu ce flux peut et doit être chiffré, ce dernier transite en utilisant le protocole General Routing Encapsulation.

PPTP ne concerne que le transport des données, un de ces deux protocoles intervient ensuite pour sécuriser l'authentification, il faut en effet être certain que c'est la bonne personne qui se connecte au serveur VPN !
  • Password Authentification Protocol (PAP) : ce protocole décrit dans la RFC 1994 consiste à mettre en place une authentification entre le client et le serveur VPN. Les informations d'authentification (nom d'utilisateur et mot de passe) transitent en clair, ce qui n'est pas l'idéal si l'on veut sécuriser au maximum...
  • Challenge Handshake Authentification Protocol (CHAP) : ce protocole consiste en un mécanisme d'authentification crypté, il est donc sécurisé. Un protocole basé sur ce dernier, développé par Microsoft, est aussi utilisé : MS-CHAP.

L'authentification effectuée, il faut désormais sécuriser la communication au sein du VPN; comme pour l'authentification, la sécurisation des données repose sur un protocole de PPP : Compression Control Protocol. Différents types de cryptage sont utilisés, qu'ils soient symétriques ou asymétriques. Les algorithmes RSA (DES, RC4 et IDEA) et les clés publiques (Public Key Infrastructure, PKI) entre autres.

../..

Le protocole PPTP - Suite

Type d'utilisation
Ce protocole est majoritairement utilisé pour établir des VPN du type RoadWarrior, il fut d'ailleurs créé avec pour objectif ce type d'utilisation : faciliter la connexion des utilisateurs nomades au réseau de leur entreprise.
Aujourd'hui PPTP est toujours utilisé, même si L2TP, que nous allons voir à la page suivante, reprend ses principaux avantages.


Schema VPN - PPTP


Comme exemple de mise en oeuvre, on pourrait imaginer un ordinateur portable muni d'une carte 3G sur lequel on mettrait en place une connexion créant un tunnel PPTP pour accéder aux serveurs de l'entreprise. On notera que comme les opérateurs 3G ne proposent un accès qu'à leur service et bloquent tout autre trafic HTTP, le tunnel PPTP ainsi créé permettra d'accéder à Internet à l'aide de la passerelle de l'entreprise.


Implémentations
Les systèmes d'exploitation les plus courants supportent en natif le protocole PPTP, il en est de même pour la majorité des routeurs professionnels et certains modèles grand public.

Image PPTP fut le premier protocole VPN implémenté dans les systèmes d’exploitation de Microsoft, il fit son apparition dans Windows 95 OSR2 et Windows NT Workstation. L’objectif était alors de sécuriser les communications établies par Internet entre les clients RoadWarrior et le réseau de leur entreprise (à l'aide du cryptage MPPE). Il est depuis disponible en natif dans pratiquement tous les systèmes Windows (Windows Mobile 2003 inclus). PPTP est accessible dans Windows 2000 et XP avec le service système " Routage et accès à distance ", un dossier consacré à la mise en place d’un serveur VPN par PPTP est d’ailleurs disponible sur GNT.

Image Windows n’est pas le seul système d’exploitation à avoir implémenté PPTP, en effet, Linux supporte lui aussi ce protocole (il supporte le MPPE depuis le noyau 2.6.13 du 28 octobre 2005, bien plus tard). Suse 10 fut la première distribution Linux à proposer un client PPTP.


Image De son côté, Apple a lui aussi intégré le support de PPTP dans son système Mac OS X, Cisco et  Efficient Network vendent de leur côté des clients pour les versions antérieures de ce système.


Image
La famille des systèmes BSD (NetBSD, FreeBSD, OpenBSD, etc...) supporte elle aussi le protocole PPTP à l’aide du port nommé mdp.



../..

Le protocole L2TP

  • Le protocole L2TP

L2TP est un protocole combinant les avantages du PPTP de Microsoft et du Layer 2 Forwarding (L2F) de Cisco, ce protocole est décrit dans la RFC 2661 et a été créé par l’ Internet Egineering Task Force (IETF), il s’appuie lui aussi sur le protocole PPP. Le protocole L2TP est aujourd’hui principalement utilisé par les Fournisseurs d’Accès à Internet (FAI ou ISP en anglais).

L2TP est la plupart du temps couplé à IPSsec pour sécuriser les données, comme décrit dans la RFC 3193, en effet, L2TP ne s'occupe que du transport des données et non de leur confidentialité.


Image


Fonctionnement général d'un VPN avec L2TP
Nous venons de voir que PPTP ne peut travailler que sur des réseaux IP, or, avec L2TP, il est possible d'interconnecter n'importe quel réseau orienté paquet (IP, ATM, X.25, Frame Relay).

Ce protocole de transport utilise UDP pour faire transiter les données et rajoute un en-tête L2TP aux paquets. Le problème est que UDP ne propose pas de système de contrôle de l'intégrité des données transmises (contrairement à TCP), L2TP s'appuie donc sur deux flux pour communiquer :
  • Un premier flux est utilisé pour contrôler l'intégrité des échanges ainsi que gérer le tunnel, il utilise le port UDP 1701.
  • Le second flux sert à envoyer purement et simplement les données, il peut lui aussi utiliser le port 1701 mais pas nécessairement, une liste de ports a d'ailleurs été assignée par le IANA à cet effet.

L'authentification et la sécurité des données ne sont pas assurées en natif par L2TP, c'est pourquoi on rajoute souvent une couche IPSec à ce genre de VPN. Cette couche permettra de garantir que les échanges se font entre les bonnes personnes (ou entités) et ne pourront être exploités en cas d'interception par une personne tierce.


../..

Le protocole L2TP - Suite

Type d'utilisation
Ce protocole est aujourd'hui principalement utilisé pour établir des connexions occasionnelles entre un utilisateur en déplacement (RoadWarrior) et le réseau de son entreprise. Toutefois, il est également utilisé, certes dans une moindre mesure, pour transporter toutes sortes de flux réseau. Lors de son utilisation, L2TP est la plupart du temps couplé à IPSec pour sécuriser les informations transmises de part et d'autre des deux réseaux.


Schema VPN - L2TP


On pourrait très bien imaginer comme exemple de mise en oeuvre le cas d'un protocole non routable utilisé par deux serveurs et dont chacun est sur un réseau différent. On encapsulerait alors ce protocole dans un tunnel L2TP, il changerait ainsi de réseau et permettrait aux deux serveurs de communiquer quand même...


Implémentations
Les systèmes d'exploitation les plus courants supportent en natif le protocole L2TP, tout comme la majorité des routeurs professionnels ainsi que certains modèles grand public.


Image Tout comme PPTP, L2TP fut implémenté dans les systèmes d’exploitation de Microsoft dès Windows 95 OSR2 et Windows NT Workstation. En revanche le support de L2TP avec la couche IPSec ne fut disponible qu'à partir de Windows 2000.


Image
Linux supporte ce protocole depuis 1997, année depuis laquelle il supporte également PPTP et IPSec.


Image Apple n'a intégré le support de L2TP (directement avec le support d'IPSec) que depuis Mac OS X Panther, bien que la société CheckPoint vendait déjà un client pour les versions 8 et 9 (basé sur Vanilla).


Image
L2TP est également supporté par la famille des systèmes BSD (NetBSD, FreeBSD, OpenBSD, etc...) il est intégré directement dans le noyau du système.


../..

Le protocole IPSec

  • Le Protocole IPSec

Probablement le protocole VPN le plus utilisé aujourd'hui, IPSec fit une première apparition dans les RFC numérotées de 1825 à 1829 parues lors de l'année 1995. Ce protocole prend directement en charge les trois composantes d'un VPN, à savoir : le transport, l'authentification et la sécurisation des données.
Tandis qu'il agit comme une couche supplémentaire dans IPv4, IPSec est partie intégrante de IPv6. Ceci ayant pour but de simplifier l'intégration de ce dernier au sein des futurs réseaux IP (pas de redirections de ports entre les routeurs d'une entreprise pour acheminer un tunnel correctement).


Image


Fonctionnement général d'un VPN avec IPSec
Il existe deux types d'implémentation de ce protocole, suivant le niveau de sécurité et les besoins que l'on a, on en choisira un en dépis de l'autre...

  • Une première implémentation consiste à utiliser IP pour faire du transport : IPSec génère un paquet et le transmet à IP, ce dernier considèrera alors le contenu de la couche supérieure comme sécurisé et fera acheminer directement le paquet sans le modifier. Entendez par là que les en-têtes des couches supérieures ne seront pas cryptés (notamment l'adresse IP source et l'adresse IP de destination), et donc transmis en clair sur le réseau.
  • Une autre implémentation, plus sécurisée, consiste à faire crypter par IPSec les en-têtes du paquet. Deux associations de sécurité* (SA en anglais) sont créées, une pour chaque extrémité du tunnel. Leur rôle sera à la fois d'établir la connexion entre les deux points (avec le protocole IKE), et de garantir l'intégrité de la communication (non modification) et sa sécurité (protocole ISAKMP). Internet Key Exchange (IKE) et Internet Security Association and Key Managment Protocol (ISAKMP) sont tous deux basés sur le principe de l'échange de clés publiques. ISAKMP s'appuie sur les algorithmes de cryptage DES et 3DES.
Une autre méthode dite de " haute sécurité " utilise le protocole Encapsuling Security Payload (ESP), dont le rôle est d'encapsuler les paquets. Couplé à un algorithme de cryptage (DES, 3DES, AES). IKE peut être rajouté en supplément pour encore plus de sécurité.

Les ports utilisés par IPSec sont le 500 en UDP (échange des clés) ainsi que le 50 et le 51 en TCP (transfert des données).

°°°°°°

*SA : La Security Association est un regroupement du protocole Authentification Header (AH) et du protocole IKE. Ecapsuling Security Payload (ESP) a comme rôle d'assurer le cryptage des paquets. TLS est aussi utilisé.

../..

Le protocole IPSec - Suite

Type d'utilisation
IPSec est principalement utilisé pour créer des tunnels fixes, particulièrement de routeur à routeur. On relie ainsi de façon permanente et transparente pour les utilisateurs deux réseaux éloignés l'un de l'autre. Toutefois, et dans une moindre mesure, ce protocole est aussi utilisé pour les clients RoadWarrior.

De par son intégration directe au sein d' IPv6, IPSec est promu à un bel avenir et tend à supplanter les autres protocoles VPN, même si son fonctionnement est le plus complexe. La multitude et le nombre de couches de sécurité et de cryptages possibles, à différents niveaux, font de ce protocole le plus sûr en matière de sécurité.


Schema VPN - IPSec


IPSec peut-être utilisé dans le cadre d'une architecture centralisée où l'on créera par exemple plusieurs tunnels VPN interconnectés au sein d'un routeur central : permettant ainsi aux ordinateurs des différents points de communiquer.


Implémentations
Les systèmes d'exploitation les plus courants supportent désormais IPSec, la majorité des routeurs professionnels et quelques modèles grand public aussi.


Image IPsec est supporté en natif depuis Windows 2000. Il est toutefois possible, pour les utilisateurs des versions antérieures à celle-ci, de télécharger le client IPSec de Microsoft pour Windows 95, 98, Me et NT 4.0.


Image
Depuis le noyau 2.5.47 Linux supporte ce protocole, les utilisateurs du noyau 2.4 peuvent se tourner vers FreeS/WAN pour l'utiliser.


Image
Le support d' IPSec dans l'OS de la firme à la pomme est apparu, tout comme L2TP, dans la version Panther (10.3) de Mac OS.


Image
NetBSD, FreeBSD, OpenBSD supportent eux aussi ce protocole. Le projet KAME a pour but de fournir une implémentation pour IPv6.


../..

Conclusion

  • Conclusion

Nous venons de voir au cours de ce dossier les deux principales utilisations des VPN qui sont faites aujourd'hui ainsi que les trois principaux protocoles utilisés actuellement. On retiendra que PPTP est particulièrement utile pour les connexions du type RoadWarrior. L2TP est équivalent avec cependant la capacité d'encapsuler tout type de réseau et ainsi router des protocoles qui normalement ne le sont pas en les encapsulant.

Quant à IPSec, ce dernier est idéal pour les tunnels LAN to LAN de par les niveaux de sécurité qu'il propose pour chaque couche qui intervient dans les communications. IPSec tend, dès la mise en place d' IPv6, à devenir le protocole de tunnelisation le plus utilisé, et ce dans les deux domaines d'utilisation des VPN (LAN to LAN et RoadWarrior).


Image


Cependant, une attention toute particulière est à accorder à la puissance de chiffrement que l'on souhaite utiliser dans son VPN pour crypter les données. En effet, la loi française fixe la limite de taille des clés à 128 bits (2 puissance 7) pour les particuliers, les entreprises doivent quant à elle faire une demande si elles souhaitent avoir recours à des clés d'une taille supérieure.
Par ailleurs, la loi française limite l'utilisation du cryptage à des domaines bien précis.



Documentation supplémentaire :

Créer un serveur VPN sous Windows 2000 / XP Pro

Configuration d'un serveur VPN sous Windows 2000