vpn doc

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

    [email protected]

  • 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