السبت، 20 فبراير 2016

VPN : Virtual Private Network

vpn , Virtual Private Network , Réseau privé virtuel , Fonctionnement de vpn , Protocoles de tunnelisation de vpn , SSH , SSL/TLS , IPsec , L2TP , L2F , PPTP , GRE , cisco , ccna

 Réseau privé virtuel ( VPN : Virtual Private Network) :
Le réseau privé virtuel (VPN) est vu comme une extension des réseaux locaux et préserve la sécurité logique que l'on peut avoir à l'intérieur d'un réseau local. Il correspond en fait à une interconnexion de réseaux locaux via une technique de « tunnel ».
Un bon compromis consiste à utiliser Internet comme support de transmission en utilisant un protocole de « tunnellisation » (en anglais tunneling), c'est-à-dire encapsulant les données à transmettre de façon chiffrée. On parle alors de VPN pour désigner le réseau ainsi artificiellement créé. Ce réseau est dit virtuel car il relie deux réseaux « physiques » (réseaux locaux) par une liaison non fiable (Internet), et privé car seuls les ordinateurs des réseaux locaux de part et d'autre du VPN peuvent accéder aux données en clair.
Le VPN permet donc d'obtenir une liaison sécurisée à moindre coût, si ce n'est la mise en œuvre des équipements terminaux. En contrepartie, il ne permet pas d'assurer une qualité de service comparable à une ligne louée dans la mesure où le réseau physique est public, donc non garanti.
Le VPN vise à apporter certains éléments essentiels dans la transmission de données : l'authentification (et donc l'identification) des interlocuteurs, la confidentialité des données (le chiffrement vise à les rendre inutilisables par quelqu'un d'autre que le destinataire).

1 Fonctionnement :
Un VPN repose sur un protocole, appelé protocole de tunnelisation, c'est-à-dire un protocole permettant aux données passant d'une extrémité à l'autre du VPN d'être sécurisées par des algorithmes de cryptographie.
Le terme tunnel est utilisé pour symboliser le fait qu'entre l'entrée et la sortie du VPN les données sont chiffrées et donc normalement incompréhensibles pour toute personne située entre les deux extrémités du VPN, comme si les données passaient dans un tunnel. De plus, créer un tunnel signifie aussi encapsuler un protocole dans un protocole de même niveau du modèle OSI (IP dans IPSec par exemple). Dans le cas d'un VPN établi entre deux machines, on appelle client VPN l'élément permettant de chiffrer les données à l'entrée et serveur VPN (ou plus généralement serveur d'accès distant) l'élément déchiffrant les données en sortie.
Ainsi, lorsqu'un système extérieur à un réseau privé (client nomade, agence ou travailleur à domicile) souhaite se connecter au réseau de son entreprise :
- Les paquets (qui contiennent les données) sont chiffrés par le client VPN (selon l'algorithme décidé par les deux interlocuteurs lors de l'établissement du tunnel VPN) et éventuellement signés.
- Ils sont transmis par le biais du réseau transporteur (Internet en général).
- Ils sont reçus par le serveur VPN qui les déchiffre, les traite et regarde si les vérifications requises sont correctes.

2 Protocoles de tunnelisation :
- GRE, souvent remplacé par L2TP, développé par Cisco.
- PPTP (Point-to-Point tunneling Protocol) est un protocole de niveau 2 développé par Microsoft, 3Com …
- L2F (Layer Two Forwarding) est un protocole de niveau 2 développé par Cisco Systems, Nortel et Shiva. Il est désormais quasi-obsolète.
- L2TP (Layer Two Tunneling Protocol) est l'aboutissement des travaux de l'IETF (RFC 3931) pour faire converger les fonctionnalités de PPTP et L2F. Il s'agit ainsi d'un protocole de niveau 2 s'appuyant sur PPP.
- IPsec est un protocole de niveau 3, issu des travaux de l'IETF, permettant de transporter des données chiffrées pour les réseaux IP.
- SSL/TLS offre une très bonne solution de tunnelisation. L'avantage de cette solution est d'utiliser un navigateur Web comme client VPN.
- SSH, initialement connu comme remplacement sécurisé de telnet, offre la possibilité de tunneliser des connexions de type TCP, permettant d'accéder ainsi de façon sûre à des services offerts sur un réseau protégé, sans créer un réseau privé virtuel au sens plein. Toutefois, depuis sa version 4.3, le logiciel OpenSSH permet de créer des tunnels entre deux interfaces réseau virtuelles au niveau 3 (routage du seul trafic IP, interfaces TUN) ou au niveau 2 (tout le trafic Ethernet, interfaces TAP). Toutefois, OpenSSH ne gère que la création de ces tunnels, la gestion (routage, adressage, pontage, etc ...), c'est-à-dire la création du VPN utilisant ces tunnels, restant à la charge de l'utilisateur.