Upload
hicham-wayne
View
215
Download
0
Embed Size (px)
Citation preview
8/2/2019 vpn doc
1/39
JoSy - 20/03/07
Les techniques de tunnels VPN
Roland DirlewangerCNRS - Dlgation Aquitaine-Limousin
Esplanade des Arts et Mtiers33402 TALENCE CEDEX
8/2/2019 vpn doc
2/39
2
JoSy - 20/03/07
Sommaire
Gnralits
Trois solutions
Tunnels SSH par port dans SSHv3
Tunnels Ipsec
Tunnels OpenVPN
Bilan d'utilisation
Bibliographie
8/2/2019 vpn doc
3/39
3
JoSy - 20/03/07
Les enjeux de la mobilit
Le point de vue de l'utilisateur
On peut se raccorder l'Internet depuis n'importe o
Je peux donc accder aux ressources informatiques de
mon unit d'o je veux, quand je veux
Le point de vue de l'administrateur systmes etrseaux
Je dois protger ces ressources informatiques
Comment concilier les deux ?
8/2/2019 vpn doc
4/39
4
JoSy - 20/03/07
Les diffrents cas de figure
Rseau du labo
Connexion sur un rseau tiers
- salle libre service d'une confrence- visite dans un autre labo- rseau WiFi d'htel, de gare, ...
Connexion domicile- ADSL- Tlphone
Connexion sans fil- via oprateur- via tlphone portable
Utilisation d'un poste tiers- cybercaf- dans un autre labo
Utilisation d'un
poste tiers bootpar une cl USB,un DVD, etc.
Internet
8/2/2019 vpn doc
5/39
5
JoSy - 20/03/07
Les diffrents cas de figure
Ces cas de figure se ramnent :
Rseau du labo
Rseau hte
Pare-feu optionnel- en entre
- en sortie
Pare-feu- en entre
- en sortie
Internet
8/2/2019 vpn doc
6/39
6
JoSy - 20/03/07
Les diffrents cas de figure
Les besoins se ramnent le plus souvent :
Accs la messagerie : lecture, envoi
Accs intranet WWW
Accs aux serveurs de fichiers Accs des bases de donnes
Accs des applications
Accs une bulle protge dans un rseau hostile
On peut rpondre avec une solution diffrente pourchaque besoin et chaque situation : c'est complexe
Un rseau priv virtuel est une rponse homogneet transparente pour l'ensemble
8/2/2019 vpn doc
7/39
7
JoSy - 20/03/07
Ide gnrale
Mettre en place une solution qui :
Cre un lien virtuel point point entre le poste mobile etun quipement du labo.
Route le trafic scuriser via ce lien
Internet
Rseau du labo
Tunnel
Rseau tiers
8/2/2019 vpn doc
8/39
8
JoSy - 20/03/07
Qu'est-ce qui doit transiter par letunnel ?
Deux solutions :
Uniquement le trafic vers le rseau du labo, lereste est rout normalement
Pas de transit inutile via le rseau du labo Possibilit d'utiliser des ressources (imprimantes) du rseau local
sur lequel est connect le poste mobile
Tout le trafic passe par le tunnel Certaines solutions (Checkpoint, Cisco) rejettent tout trafic entrant
qui ne provient pas du tunnel
Le poste mobile profite de la protection du FW du labo
Le poste mobile peut accder des services authentifis par
adresse IP
8/2/2019 vpn doc
9/39
9
JoSy - 20/03/07
Les rseaux privs virtuels
VPN = Virtual Private Network
Technologie rseau permettant de construire unrseau priv l'intrieur d'une infrastructurepublique.
Priv : les changes transitant par ce rseau sontconfidentiels pour les autres utilisateurs du rseau public.
Virtuel : le rseau priv ainsi cr n'est pas matrialis pardes liens physiques.
8/2/2019 vpn doc
10/39
10
JoSy - 20/03/07
Le problme de TCP dans TCP
Solution naturelle :
Btir un tunnel avec un protocole scuris (SSH, SSL) quis'appuie sur une connexion TCP
TCP dans TCP :
Les connexions vers des services (HTTP, SMTP, IMAP)utilisent elles aussi des connexions TCP qui vont passer
dans le tunnel. On parle de TCP dans TCP. Sur des rseaux non saturs, tout se passe bien
8/2/2019 vpn doc
11/39
11
JoSy - 20/03/07
Le problme de TCP dans TCP
Le problme :
La connexion TCP du tunnel peut dtecter des pertes depaquets, des congestions, etc.
Elle ralentit le trafic en rallongeant les dlais de retransmission. Si une connexion TCP (exemple, l'envoi d'un message via
SMTP) est demande travers le tunnel, elle dmarre avecdes dlais de retransmission courts. Elle n'a aucun ACK dansces dlais.
Elle gnre des demandes de retransmission un rythme plusrapide que la connexion TCP du tunnel peut absorber
Le rsultat est que la connexion TCP du tunnel est noye dedemandes de retransmission. La part de trafic utile diminuefortement et donne l'impression que le tunnel est coup.
8/2/2019 vpn doc
12/39
12
JoSy - 20/03/07
Tunnels SSH v3
Le protocole SSH
mis au point par Tatu Ylnen qui fonde une socit dumme nom en 1995
but : remplacer par des quivalents plus srs lescommandes telnet, ftp, rlogin, rcp, etc.
authentification par login/mot de passe ou cl privecl, publique
confidentialit (chiffrement ), intgrit (HMAC) transport du protocole X11 (dport d'affichage sur
Unix) tunnels par ports
8/2/2019 vpn doc
13/39
13
JoSy - 20/03/07
SSH Authentification du serveur
Chaque serveur doit disposer d'un bi-cl
Client et serveur changent un secret (via Diffie-Hellmann) dontsont drives les cls de session
Le serveur transmet sa cl publique et signe le dialogue initial
Le client doit vrifier le lien entre la cl publique et le serveur utilisation d'une base locale
utilisation de certificats
chec de la vrification => avertir l'utilisateur
8/2/2019 vpn doc
14/39
14
JoSy - 20/03/07
SSH Authentification du client
L'authentification du client
Plusieurs mthodes : mot de passe, cl publique, nom demachine, Kerberos (1.5)
Par mot de passe : le plus simple mettre en uvre
remplacement transparent de telnet, ftp, etc. par ssh,sftp, etc.
Par cl publique : action explicite de l'utilisateur pour rajouter sa cl
publique dans la configuration de SSH
8/2/2019 vpn doc
15/39
15
JoSy - 20/03/07
Tunnels SSH
X11 forwarding
dfinition d'un serveur X11 virtuel sur le serveur distant :DISPLAY=localhost:0.10
transmission via la connexion SSH de toute requte sur ceserveur X11 vers le serveur X11 de la machine locale
Port forwarding
association entre un port local (IP 127.0.0.1 port tcp/x) et une
destination quelconque (A.B.C.D port tcp/y) toute connexion sur le port x local entrane une connexion du
serveur distant vers A.B.C.D port y
transmission via la connexion SSH du trafic 127.0.0.1:x versA.B.C.D:y
8/2/2019 vpn doc
16/39
16
JoSy - 20/03/07
SSH Tunnels par ports
X11 forwarding : dport d'affichage travers SSH
Internet
application sur
le serveur SSHDISPLAY=localhost:0.10
Tunnel SSH
affichage
garde-barrire
X11 portTCP 6000interdit
8/2/2019 vpn doc
17/39
17
JoSy - 20/03/07
SSH Tunnels par ports
Port forwarding
Internet
serveur SSHTunnel SSH
autre serveur
connexion vers
@IP 127.0.0.1port TCP x
connexion vers@IP A.B.C.Dport TCP y
garde-barrire
8/2/2019 vpn doc
18/39
18
JoSy - 20/03/07
SSH Principales implmentations
Serveurs
Version commerciale : www.ssh.fi
Version libre : www.openssh.org
mais aussi sur des quipements rseaux (cisco, ...)
Clients
openssh putty
8/2/2019 vpn doc
19/39
19
JoSy - 20/03/07
SSH Bilan d'utilisation
Avantages :
Trs simple mettre en oeuvre
Grande interoprabilit
Mais ... il faut faire l'effort d'imposer une authentificationpar cl publique
Inconvnients :
Ne fonctionne que pour une liste de ports connue
l'avance Ne fonctionne pas pour le partage de fichiers, le bureau
distance, les serveurs HTTP virtuels, etc.
Pas vraiment transparent pour l'utilisateur
8/2/2019 vpn doc
20/39
20
JoSy - 20/03/07
Tunnels IPsec
IPSec = IP Security Protocol.
Couche scurit dveloppe par l'IETF.
Ensemble de mcanismes destins protger letrafic au niveau IP.
Transparence pour les couches suprieures
Un systme conforme IPSec peut : Choisir les protocoles de scurit.
Choisir les algorithmes utiliss.
Utiliser des clefs cryptographiques/certificats
8/2/2019 vpn doc
21/39
21
JoSy - 20/03/07
Les principaux composants d'IPsec
ISAKMP, UDP port 500
Ngociation des protocoles de scurit
Echanges de cls
Authentification par PSK, certificats, bi-cls
ESP = Encapsulated Security Payload, protocole 50
Chiffrement
AH =Authentication Header, protocole 51
Authentification, intgrit Politique de scurit
Permet d'indiquer quel trafic scuriser ou pas en fonction desadresses et des numros de ports.
8/2/2019 vpn doc
22/39
22
JoSy - 20/03/07
IPsec AH et ESP
Deux modes d'utilisation :
Transport, entre deux machines
Tunnel, entre deux rseaux
Internet
A B
InternetA
BIPsec
8/2/2019 vpn doc
23/39
23
JoSy - 20/03/07
IPsec - Principales implmentations
Linux, NetBSD, FreeBSD :
Natif + ipsec-tools (racoon, implmente IKE)
FreeSwan pour les noyaux Linux 2.4
Windows
Natif
Cisco
8/2/2019 vpn doc
24/39
24
JoSy - 20/03/07
IPsec et NAT
IPSec n'est pas nativement prvu pour fonctionneren environnement NAT-t.
Protocole AH :
Impossibilit car il authentifie des champs modifis par du NAT(adresses sources et destination).
Protocole ESP :
Cache les ports TCP/UDP utiliss pour
multiplexer/dmultiplexer les connexions NAT-tes. Support du NAT dcrit dans 2 RFC:
RFC 3948 : UDP Encapsulation of ESP IPSec Packets.
RFC 3947 : Negotiation of NAT-Traversal in the IKE.
8/2/2019 vpn doc
25/39
25
JoSy - 20/03/07
IPsec et NAT
Principes du NAT-Traversal :
Encapsulation de la charge ESP dans un datagrammeUDP.
Ajout au protocole ISAKMP pour :
Dtecter les systmes NAT sur le chemin rseau entreles 2 tiers en prsence.
ngocier l'accord sur la norme de NAT-Traversalutilis.
Utilise le port 4500/udp (ISAKMP NAT).
8/2/2019 vpn doc
26/39
26
JoSy - 20/03/07
IPsec Le modle Windows
But :
D'abord, authentifier la machine via un certificat
Puis, authentifier l'utilisateur via ses paramtres de
connexion Windows Utilise PPP
Authentification de l'utilisateur
Cration d'interfaces virtuelles
Utilise L2TP
PPP s'appuie sur la couche liaison (niveau 2)
L2TP offre un niveau 2 au dessus d'IP
8/2/2019 vpn doc
27/39
27
JoSy - 20/03/07
IPsec Le modle Windows Imbrication des tunnels IPSec, L2TP et PPP.
IPSec = protection des changes (chiffrement).
L2TP = transport des trames PPP.
PPP = Authentification, raddressage de la machine cliente,transport du trafic VPN.
Paquet IP
Tunnel
IPSec
Tunnel
L2TPTunnel
PPP
Paquet IP
8/2/2019 vpn doc
28/39
28
JoSy - 20/03/07
IPsec Le modle Windows
Imbrication des tunnels IPSec, L2TP et PPP.
DonnesIPPPPL2TPUDPESPIPLinkESP
TrailerESPAuth
LinkTrailer
crypt
authentifi
Paquet initial
8/2/2019 vpn doc
29/39
29
JoSy - 20/03/07
IPsec Bilan d'utilisation
Complexit du modle Windows
Problme de NAT
Problmes d'accs :
Les paquets UDP 500, 4500, ESP, AH sont souventarrts par le FW du rseau qui hberge le poste mobile
Poste mobile
Internet Rseau du labo
PasserelleIPsec
8/2/2019 vpn doc
30/39
30
JoSy - 20/03/07
Les tunnels SSL
Au dpart, SSL (Secure Socket Layer) est destin scuriser les connexions TCP entre un client et unserveur. Exemples :
HTTP / SSL entre un navigateur et un serveur WWW
IMAP / SSL entre un client et un serveur de messagerie
SMTP / TLS entre deux serveurs de messagerie
Stunnel (www.stunnel.org) :
Permet d'utiliser SSL lorsque l'application sur le client et/ou leserveur ne sait pas faire du SSL
Scuriser des accs des bases de donnes
Scuriser rsync, LDAP, VNC, ...
8/2/2019 vpn doc
31/39
31
JoSy - 20/03/07
Tunnels SSL
Autre ide : utiliser SSL en lieu et place d'IPsec pourfaire des VPN
Exemple : OpenVPN (www.openvpn.org) Produit OpenSource, licence GPL
Utilise les interfaces virtuelles TUN/TAP
Encapsule le trafic dans une connexion SSL
Utilise UDP ou TCP (port paramtrable = 1194 par dfaut)
8/2/2019 vpn doc
32/39
32
JoSy - 20/03/07
OpenVPN
Deux modes de fonctionnement :
Mode tunnel : niveau 3 (routage)
Le client obtient une adresse IP de la part du serveurOpenVPN. Cette adresse est dans un rseau priv.
Le trafic entre le client, le serveur, le rseau de l'unit estrout via le tunnel
Mode pont : niveau 2
Le client distant est vu comme tant directement connectau rseau local de l'unit
Obtient une adresse IP de la mme faon que les postesdirectement connects au rseau local (DHCP, statique)
Les broadcasts sont achemins dans le tunnel
8/2/2019 vpn doc
33/39
33
JoSy - 20/03/07
OpenVPN - Authentification du client
Par certificats
Accepte des certificats CNRS serveurs ou utilisateurs
Fait appel un script (verify-dn) qui permet de programmer desdroits d'accs aussi fins que l'on veut
Par login / mot de passe
Sur Linux, par plugin PAM
8/2/2019 vpn doc
34/39
34
JoSy - 20/03/07
OpenVPN - Configuration, utilisation
Utilise des fichiers de configuration :
Syntaxe identique pour client et pour serveur
Syntaxe indpendante de la plateforme (Linux, MacOS,
Windows) Configuration simple (~ 12 lignes) et bien documente
Une GUI de lancement pour client Windows
Via bouton dans le coin infrieur droit
Tlchargeable sur
openvpn.se
OpenVPN trafic du tunnel dans le
8/2/2019 vpn doc
35/39
35
JoSy - 20/03/07
OpenVPN trafic du tunnel ... dans letunnel
OpenVPN suppose que la passerelle VPN dispose d'uneadresse externe et d'une adresse dans le rseau du labo. Enpratique, elle n'a qu'une interface, dans le rseau interne.
Internet
OpenVPN
Internet OpenVPN
Architecture avec une passerelleOpenVPN deux interfaces
Architecture avec une passerelleOpenVPN une interface
OpenVPN trafic du tunnel dans le
8/2/2019 vpn doc
36/39
36
JoSy - 20/03/07
OpenVPN trafic du tunnel ... dans letunnel
Bug (?) : OpenVPN en mode tunnel sur une passerelle uneinterface (@IP a.b.c.d) tablit le tunnel vers cette interfacepuis configure les tables de routage pour que tout le trafic destination du rseau interne, y compris a.b.c.d, passe par letunnel.
Deux possibilits pour contourner le problme :
Script sur le client pour mettre une route spcifique dea.b.c.d vers le routeur par dfaut du rseau qui hberge leclient
Configurer OpenVPN sur le serveur pour qu'il pousse vers le client des routes individuelles pour chaque serveurdu rseau interne.
8/2/2019 vpn doc
37/39
37
JoSy - 20/03/07
OpenVPN - Bilan d'utilisation
Avantages
Une seule syntaxe client/serveurs pour toutes plateformes
Simplicit de la mise en oeuvre
Technologies maitrises (SSL, certificats)
Inconvnients
Mode tunnel : trafic du tunnel dans le tunnel
Mode pont : difficilement utilisable sur liaison lentes cause des broadcasts
8/2/2019 vpn doc
38/39
38
JoSy - 20/03/07
Bilan gnral d'utilisation
Un ventail de solutions robustes aux ergonomiesaccessibles tout utilisateur
L'environnement du rseau hte peut empcher une
solution de fonctionner : Blocage du trafic UDP 500, ESP, AH : IPsec
Adresses prives + NAT : IPsec
Blocage de UDP 1194 : OpenVPN/UDP
Adresses prives + proxy HTTP : SSH, OpenVPN/TCP
En gnral SSH et OpenVPN en mode tunnel surTCP passent toujours
8/2/2019 vpn doc
39/39
39
JoSy - 20/03/07
Bibliographie
Tutoriel VPN - Protocoles et fonctionnement des rseauxprivs virtuels , B. Dexheimer, R. Dirlewanger, F. Morris,
JRES, Novembre 2003, Lille.http://2003.jres.org/TUTORIELS/paper.A.pdf
La mobilit : quelles solutions ? , R. Dirlewanger,Sminaire RAISIN, mars 2005, Bordeaux.http://raisin.u-bordeaux.fr/article.php3?id_article=32
Why TCP Over TCP Is A Bad Idea , O. Titz, avril 2001.http://sites.inka.de/~W1011/devel/tcp-tcp.html