Вы находитесь на странице: 1из 49

Scurit de linformation e e Tunnels et VPN

Laurent Archim`de e Thomas Chevalier Julien Herbin Sylvestre Ledru Nicolas Pellegrin DESS ISYDIS
4 mai 2004

Table des mati`res e


1 Introduction 2 Le Tunneling IP 2.1 Quest ce que cest ? . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Tunnels SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2 Exemple : Export X11 via SSH. . . . . . . . . . . . . . . 2.2.3 Exemple : scurisation du trac grce a un tunnel SSH e a ` 2.3 Tunnels avec Stunnel . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Stunnel . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.2 Exemple : acc`s POP via Stunnel . . . . . . . . . . . . . e . . . . . . . . 3 6 6 6 6 6 8 10 10 11

3 PPP over SSH. 12 3.1 Installation client . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.2 Installation serveur . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4 IPSec : la thorie e 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Bases de donnes de politiques de scurit (SAD/SPD) e e e 4.2.1 SA (Security Association) . . . . . . . . . . . . 4.2.2 SAD (Security Association Database) . . . . . 4.2.3 SPD (Security Policy Database) . . . . . . . . 4.2.4 Illustration . . . . . . . . . . . . . . . . . . . . 4.3 Modes de fonctionnement . . . . . . . . . . . . . . . . 4.3.1 Mode Transport ou Transparent : . . . . . . . . 4.3.2 Mode Tunnel . . . . . . . . . . . . . . . . . . . 4.3.3 Mode Nesting . . . . . . . . . . . . . . . . . . . 4.4 Protocoles de scurit (modes dencapsulation) . . . . e e 4.4.1 Authentication Header (AH) . . . . . . . . . . 4.4.2 Encapsulating Security Payload (ESP) : . . . . 4.4.3 Internet Key Exchange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 16 18 18 19 19 20 20 20 21 21 22 22 24 26 28 28 29 31 34 36 36 37 37 37 38

5 Partie technique Ipsec 5.1 Procdure de compilation et installation de ipsec/openswan e 5.2 Utilisation de Ipsec en mode Road Warrior . . . . . . . . . 5.3 Opportunistic encryption . . . . . . . . . . . . . . . . . . . 5.4 Rseau a rseau . . . . . . . . . . . . . . . . . . . . . . . . . e ` e 6 Connexion Ipsec entre machines Windows et Linux 6.1 Pr-requis . . . . . . . . . . . . . . . . . . . . . . . . . e 6.2 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . e e e 6.3 Dnitions . . . . . . . . . . . . . . . . . . . . . . . . . e 6.3.1 Format des certicats X509 . . . . . . . . . . . 6.4 Mise en application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.5

6.4.1 Cration de lautorit de certication sur le serveur e e 6.4.2 Cration du certicat de la passerelle . . . . . . . . e 6.4.3 Cration dun certicat pour un client Windows . e Conclusion sur la certication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

38 39 39 40 40 40 41 43 44 44 44 45 46 46

7 Failles des VPN 7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . 7.2 VPN : Cesam ouvre toi . . . . . . . . . . . . . 7.2.1 Questions sur les protocoles utiliss . . . . . e 7.3 Les architectures Rseaux : Le prim`tre des VPN e e e 7.3.1 Passerelle mais pourquoi ? . . . . . . . . . . 7.3.2 Attaque ARP (couche de liaison OSI) . . . 7.3.3 Les failles dimplmentation . . . . . . . . . e 7.4 Avantages et inconvnients de la solution PPP . . e 7.4.1 TCP over TCP . . . . . . . . . . . . . . .

Introduction

La quasi totalit des ux dinformations sur Internet utilisent le protocole e TCP/IP (couches 3 et 4). Une grande partie des protocoles (POP/SMTP/FTP) utilisent dautres protocoles de communication au mieux binaires, au pire en clair. Les protocoles encryptant leurs donnes sont relativement spcialiss et e e e donc assez peu utiliss (ssh, https, pop3-ssl...) pourtant, il est extrmement e e facile sur Internet pour une personne ayant acc`s a un priphrique de routage e ` e e (serveur classique ou routeur) de voir tous les paquets circulants sur le rseau. e Par exemple, on peut facilement analyser les trames relatives a la con` sultation des emails (protocole POP3). Par dfaut dans le protocole POP3, les e mots de passe circulent en clair sur le rseau. Ainsi, il est facile dobtenir le e mot de passe du compte pop dun utilisateur sans pour autant avoir le moindre acc`s au poste client ou au serveur. e Avec la commande ngrep, on voit tr`s rapidement les probl`mes de scurit e e e e poss par ce protocole. e T 217.167.120.134:110 -> 81.249.31.222:1817 [AP] +OK <8182.1078671690@mail-hitomi.ecranbleu.org>.. # T 81.249.31.222:1817 -> 217.167.120.134:110 [AP] CAPA.. ## T 217.167.120.134:110 -> 81.249.31.222:1817 [AP] -ERR authorization first.. # T 81.249.31.222:1817 -> 217.167.120.134:110 [AP] USER berangere@jovialyteam.com.. # T 217.167.120.134:110 -> 81.249.31.222:1817 [AP] +OK .. # T 81.249.31.222:1817 -> 217.167.120.134:110 [AP] PASS kangourou.. ## T 217.167.120.134:110 -> 81.249.31.222:1817 [AP] +OK .. # T 81.249.31.222:1817 -> 217.167.120.134:110 [AP] STAT.. ## T 217.167.120.134:110 -> 81.249.31.222:1817 [AP] +OK 0 0..

# T 81.249.31.222:1817 -> 217.167.120.134:110 [AP] QUIT.. # T 217.167.120.134:110 -> 81.249.31.222:1817 [AP] +OK .. De plus, il est mme possible de consulter le contenu des emails en sniant e le rseau. Cette opration est totalement transparente et indtectable pour le e e e client ou le serveur.

[...] T 217.167.120.134:110 -> 62.39.154.188:64269 [AP] 1 2131..2 5312..3 2365..4 2615..5 1385..6 4169..... # T 62.39.154.188:64269 -> 217.167.120.134:110 [AP] RETR 1.. # T 217.167.120.134:110 -> 62.39.154.188:64269 [AP] +OK .. # T 217.167.120.134:110 -> 62.39.154.188:64269 [A] Return-Path: <plop-return-1604-jovialyteam.com-chrispy=jovialyteam.com@jovialyteam .com>..Delivered-To: jovialyteam.com-chrispy@jovialyteam.com..Received: (qmail 289 46 invoked by uid 98); 7 Mar 2004 03:41:26 -0000..Mailing-List: contact plop-help@ jovialyteam.com; run by ezmlm..Precedence: bulk..X-No-Archive: yes..List-Post: <ma ilto:plop@jovialyteam.com>..List-Help: <mailto:plop-help@jovialyteam.com>..List-Un subscribe: <mailto:plop-unsubscribe@jovialyteam.com>..List-Subscribe: <mailto:plop -subscribe@jovialyteam.com>..Reply-to: plop@jovialyteam.com..Delivered-To: mailing list plop@jovialyteam.com..Received: (qmail 28938 invoked from network); 7 Mar 20 04 03:41:24 -0000..From: Sylvestre Ledru <sylvestre@ledru.info>..To: Plop Mailing Liste Jovialyteam <plop@jovialyteam.com>..Cc: Pierre Marot <pierre.marot@jovialyte am.com>..Content-Type: text/plain; charset=ISO-8859-1..Message-Id: <1078630913.143 03.123.camel@localhost>..Mime-Version: 1.0..X-Mailer: Ximian Evolution 1.4.5 ..Dat e: Sun, 07 Mar 2004 04:41:54 +0100..Content-Transfer-Encoding: 8bit..Subject: [plo p] faites chauffer les photos....Bon..suite a cette tres sympas soir.es a lalien ce soir, jai mis rapido en..place le systeme de gallerie dont jai parl. un peu a [...] Ceci est le fait que le canal de communication est dit non scuris, cest-`-dire e e a que lon a aucune garantie quant a la condentialit du ux dinformations ` e circulant sur le rseau. Sur le LAN dune entreprise, un utilisateur consultant e ses emails sur un serveur situ localement est a priori peu problmatique e ` e 5

mais lorsquil consulte ses emails a partir de chez lui sur le serveur mail de ` sa socit, il na aucun moyen de controle sur les ux passant chez dirents ee e prestataires (Fournisseurs dacc`s internet, backbone...). Des informations e sensibles circulant par email peuvent donc tre interceptes. e e Le protocole POP3 est loin dtre le seul protocole pouvant tre cout de e e e e mani`re tr`s simple. En eet, il est possible dcouter une bonne partie e e e des protocoles de cette mani`re : HTTP, SMTP, IMAP, DNS, Messageries e instantanes (MSN, ICQ...)... Pour peu que le voyeur espionne lutilisateur e a partir de la passerelle que ce dernier utilise, toute lactivit Internet de ` e lutilisateur est connue. Pour scuriser ces ux, il existe plusieurs mani`res de le faire : e e utiliser des connexions prives pour relier les dirents points e e utiliser des protocoles de niveau 7 grant de mani`re native le cryptage : e e HTTPS, POP3-SSL... scuriser le canal de communication tout en restant sur un canal non e scuris par lutilisation dun VPN e e Connexions prives : e Cest la solution idale, on reste ma de tout ce qui circule sur le canal. Les e tre personnes ayant acc`s a des routeurs sur ce canal tant identies. Le principal e ` e e (unique ?) probl`me de cette solution est son cot. En eet, il coute beaue u coup plus cher de faire tirer une ligne spcialise quutiliser des canaux existants. e e Protocoles nativement crypts : e Cest une solution ecace en gnral mais qui a le dsavantage de laisser e e e limplmentation du syst`me de cryptage/dcryptage aux applications (serveurs e e e ou clientes). En eet, si un client ou un serveur ne g`re pas limplmentation e e en crypt, il nest pas possible dutiliser le protocole crypt. Par exemple, e e certaines versions de Outlook ne supportent pas le POP3-SSL et donc obligent lutilisation du POP3 classique. Un autre point problmatique est que les ux entre les deux machines restent e identiables. Les protocoles crypts utilisent des ports identis. Il reste donc e e possible a lattaquant de savoir a quel service le client fait appel. ` ` Le VPN (Virtual Private Network / Rseau priv virtuel) : e e Le VPN permet de relier deux rseaux distants a travers Internet. Il est ainsi e ` possible de faire communiquer ces deux rseaux comme si ils taient connects e e e directement ensemble. Dans la quasi totalit des implmentations dun VPN, e e un cryptage est rajout entre les deux connectiques qui vont initier la VPN. e Ainsi, par exemple, on peut avoir deux rseaux distants dune deux oces e dune entreprise relies a travers un VPN. e `

2
2.1

Le Tunneling IP
Quest ce que cest ?

Le tunneling IP est le procd qui consiste a encapsuler un ux rseau dans e e ` e les paquets dun autre ux rseau du type TCP/IP. Il est possible, par exemple, e dencapsuler un ux IPX (rseau netware) dans une connexion TCP/IP. Un e tunnel IP est un moyen dassurer linterconnexion entre deux (ou plus) rseaux e dans un rseau plus grand. e Un tunnel IP seectue entre 2 machines, qui jouent le rle de passerelles pour o les autres machines de leur rseau respectif. e Le tunneling peut rendre des services de dirents ordres : e chirement et dchirement des donnes transmises. e e compression et dcompression des donnes envoyes dans le tunnel. e e e orir limpression a lutilisateur de travailler en rseau local (voire sur la ` e mme machine) e

2.2
2.2.1

Tunnels SSH
SSH

SSH est un protocole permettant dtablir une session interactive chire e e entre un client et un serveur. Ainsi, les ux dinformations entre ces deux entits sont crypts ce qui garantit la condentialit. De plus, il permet lidene e e titication de la machine distante. Lalgorithme utilis pour la ngociation des e e cls est RSA (dont le brevet a expir aux USA ce qui permet une utilisation e e publique lgale). e Une fois lchange des cls eectu, la communication entre les deux mae e e chines se fait en utilisant un chirage symtrique (un chirage symtrique e e est environ 1000 fois plus rapide quun chirage asymtrique). Les principaux e algorithmes utiliss dans SSH sont triple DES (3DES) ainsi que Blowsh. e La plupart des fonctionnalits cryptographiques tant implments dans la e e e e biblioth`que OpenSSL. e La version du protocole ssh utilise est la version 2, la premi`re version e e de ce protocole sourait dune grosse faille de scurit. e e

2.2.2

Exemple : Export X11 via SSH.

Sous Unix, la possibilit est oerte dacher une application graphique sur e un autre serveur X que le serveur local. Ainsi, il est possible dobtenir le rendu 7

graphique dune application installe et lance depuis une machine dirente e e e de celle que lon utilise pour visionner lapplication. Pour pouvoir eectuer un export X11 classique, il faut lancer la commande xhost + sur la machine client (cel` permet dautoriser les connexions dautres a utilisateurs a la session X en cours). Il faut aussi que le serveur X acceptant la ` connexion (toujours sur la machine sur laquelle on dsire acher lapplication) e ne soit pas lance avec la clause -nolisten tcp. e Le chier en question est le suivant : /etc/X11/xinit/x sous GNU Linux Debian #!/bin/sh exec /usr/bin/X11/X -dpi 100 #-nolisten tcp Les deux conditions prcdentes runies permettent darriver a nos ns. e e e ` Nanmoins, cette procdure est un peu lourde et les donnes circulent en clair e e e sur le rseau (touches frappes par exemple). e e

SSH propose de faons native la gestion de lexport X11, cest a dire que c ` lors dune connexion a une machine distante, il est possible de faire en sorte que ` les informations concernant une application fentre soient intgres au ux e e e e SSH. Dans ce cas, lapplication est lance sur le serveur X local par lutilisateur e ayant ouvert la session, donc, nul besoin dautoriser les connexions distantes au serveur X . Autrement dit, -nolisten tcp peut tre spci au serveur X pour e e e son lancement et xhost na pas besoin dtre lanc par lutilisateur connect e e e (plus sr). u Cependant, il faut que dans la conguration du serveur SSH la clause suivante soit spcie (/etc/ssh/sshd cong sous GNU Linux Debian) : e e X11Forwarding yes Sur le schma suivant, imaginons par exemple que la machine cerise ne e soit pas tr`s performante dun point de vue traitement en images, et que la e machine groseille au contraire soit tout a fait en mesure dexploiter ce genre ` dapplication. Cependant, si groseille est utilise par une autre personne, on e peut vouloir utiliser cerise simplement pour obtenir le rendu grpahique.

Si groseille hberge un serveur SSH initialis avec loption X11Forwarding e e yes, il sut de sy connecter de la mani`re suivante depuis cerise : e ssh -X groseille Puis de lancer lapplication dsire dans le shell obtenu suite au login, et le e e rendu graphique apparaitra sur cerise. Les donnes sont protges puisquelles circulent dans le ux SSH au lieu e e e de circuler en clair sur le rseau. Il est donc possible de disposer dun service e non disponible sur la machine locale lesprit tranquille. En fait, lexport X11 via SSH est un tunnel, puisque les donnes circulent grce a une connexion rseau e a ` e TCP/IP tablie entre 2 machines, en entrant par un port TCP dune machine e et en sortant par un autre port dune autre machine. 2.2.3 Exemple : scurisation du trac grce ` un tunnel SSH e a a

Une solution pour palier a ce probl`me, est de mettre en place un tunnel ` e SSH entre le serveur FTP, et le client. Loption -L de ssh permet dencapsuler les connexions eectues sur les sockets sur un port donn dans le ux SSH, en e e direction dun autre port sur la machine distante.

Le schma suivant montre comment stablie une connexion FTP scurise e e e e avec SSH entre une machine du LAN et un serveur FTP distant. Pour cet exemple pratique, nous disposons de deux machines sur le LAN, cerise, sur laquelle on dsire lancer le client FTP et groseille sur laquelle nous allons e lancer un client ssh congur pour rediriger les connexions arrivants sur le port e 2100 vers abricot (encapsules dans le ux SSH). Cette derni`re hberge e e e un serveur FTP spar de notre LAN par Internet. Notons que nous devons e e 9

disposer dun compte utilisateur sur chacune des machines. Nanmoins, il nest e pas ncessaire davoir un acc`s super utilisateur sur les machines, sauf dans le e e cas ou lon dsire travailler avec des ports TCP suprieurs a 1000. e e `

La commande qui permet dtablir la connexion SSH entre groseille et e abricot est la suivante : [18:37:13][jam@groseille] ~\$ ssh -g -L 2100:abricot:21 abricot -N Password: Loption -N permet de pas donner de prompt apr`s la connexion a SSH. e ` Loption -g permet dautoriser les connexion dautres machines, direntes de e celle qui tablie la connexion, a utiliser le canal scuris. e ` e e Enn, loption -L indique que le donnes arrivant sur le port 2100 de la machine e locale doivent tre envoyes sur le port 21 dabricot en passant par la connexion e e SSH. D`s lors, les donnes reues sur le port 2100 de la machine sur laquelle est e e c lance la commande SSH (client) seront intgres dans le ux scuris, puis e e e e e dbales et dchires a lautre bout sur la machine qui hberge le service SSH. e e e e ` e

Dsormais, le fait de se connecter a groseille sur le port 2100 va devenir e ` quivalent pour lutilisateur a se connecter au serveur FTP dabricot, mis a e ` ` part le fait que les donnes sont cryptes. e e 10

[18:37:49][jam@cerise] ~\$ ftp groseille 2100 Connected to 127.0.0.1. 220 ProFTPD 1.2.9 Server (Debian) [abricot] Name (127.0.0.1:jam): voici le ux quon lon peut maintenant snier sur le rseau : e interface: eth1 (192.168.0.0/255.255.255.0) # T 192.168.0.17:33387 -> 217.167.120.138:22 [AP] .&.j;....zR.*.)}....?.6~.....kRmL..&.!;AL....LK # T 217.167.120.138:22 -> 192.168.0.17:33387 [AP] .<T.ye..-.v.Q.Q.!...:Z...r........1.<+3...j.=...6>P....G....j~.P_a....5.F.1 ....< ## T 192.168.0.17:33387 -> 217.167.120.138:22 [AP] .3..L........n.pI6SvGx........:...].......J..iT...X.=v.>n....-.] # T 217.167.120.138:22 -> 192.168.0.17:33387 [AP] X..r..B..1Y....P4..q"......]..GK\.....ldS...D...3.6...!..bu....} ## T 192.168.0.17:33387 -> 217.167.120.138:22 [AP] ...d!.J..K.W..S.F..$"T...}P..b.H.....mD!..<..?.. # T 217.167.120.138:22 -> 192.168.0.17:33387 [AP] vq...|...,.....g....$.J\..9dLr..!..v..#.t...Ui.}......m=..[....0 # Donc les trames napparaissent plus en clair sur le rseau contrairement a ce e ` que nous avions vu lors dune connexion FTP non scurise. e e

2.3
2.3.1

Tunnels avec Stunnel


Stunnel

Stunnel est un programme qui permet de crypter les connexions TCP grce a aux librairies SSL (Secure Sockets Layer). Il peut tre utilis pour crypter des e e changes dinformations pour des services qui ne sont pas scuriss nativement, e e e comme ceux que nous avons cit prcdement. Pour utiliser stunnel, il est e e e obligatoire davoir install une librairie SSL du type OpenSSL ou SSLeay, e puisquelles assurent le cryptage / dcryptage pour stunnel. e

Stunnel ncessite la cration de certicats SSL (X509) pour fonctionner, ce e e qui permet au client et au serveur de sidentier mutuellement de mani`re sre e u 11

(dans la mesure o` elles font conance a une autorit tierce). Il est possible de se u ` e passer de certicats sur la machine cliente, mais pour lancer un service stunnel, il faut obligatoirement disposer dun certicat valide. Loption noauth permet de lancer stunnel en autorisant les connexions sans authencation sur le serveur, et loption -d passera le programme en dmon. Ici, nous nous interesserons bien e sr plus a la mise en place dun tunnel qu` la gnration de certicats, cest u ` a e e pourquoi les commandes de gnration des certicats ne seront pas explicites. e e e cration dune autorit de certication e e gnration du certicat pour le service e e gnration de certicats pour les clients (sauf si on ne fait pas dauthene e tication au niveau du serveur) Note : A partir de la version 4.0 de Stunnel, la conguration des tunnels doit se faire a partir des chiers de conguration associs au programme stunnel. Le ` e principe reste exactement le mme bien sr, mais les commandes ne sont plus e u tout a fait les mmes. ` e 2.3.2 Exemple : acc`s POP via Stunnel e

Lide de cet exemple est dutiliser un canal scuris par stunnel pour e e e rcuprer des emails sur un serveur POP. Considrons 2 rseaux LAN relis e e e e e par Internet. Le serveur POP est hitomi et le service est accessible par le port TCP 110. abricot est la machine distante sur laquelle nous allons installer le service stunnel qui va tourner sur le port 1100. groseille va ouvrir une connexion Stunnel avec abricot et permettre de se connecter a son port 1100 pour ` utiliser le tunnel. Enn, cerise va rcuprer ses e-mails en POP en spciant e e e comme serveur POP Abricot (port 1100).

Installation sous Debian : abricot:~# apt-get install stunnel Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: openssl (0.9.7c-5)

12

The following NEW packages will be installed: openssl (0.9.7c-5) stunnel (3.26-1) Cration des certicats : e abricot:~# abricot:~# abricot:~# abricot:~# abricot:~# abricot:~# abricot:~# abricot:~# /usr/lib/ssl/misc/CA.pl -newca openssl req -new -nodes -keyout pop.pem -out pop_req.pem openssl ca -notext -infiles pop_req.pem >> pop.pem openssl req -new -keyout groseille.pem -out groseille.pem cp pop.pem /etc/ssl/certs/ cp demoCA/cacert.pem /etc/ssl/certs/pop.pem ln -s pop.pem /etc/ssl/certs/stunnel.pem c_rehash

Il faut maintenant transfrer le certicat groseille.pem sur la machine du e mme nom pour pouvoir lancer stunnel. e

Lancement du dmon sur le serveur (Abricot) : e abricot:~# stunnel -P/tmp/ -p pop.pem -d 1100 -r hitomi:110 (prciser noauth pour une connexion sans autentication) e Lancement du dmon sur le client (Groseille) : e [16:37:10][jam@groseille] ~\$ /usr/sbin/stunnel -P/tmp/ -p groseille.pem -c -d 1100 -r abricot:1100 Le tunnel est maintenant en place ; il ne reste plus qu` se connecter depuis a cerise a abricot pour rcuprer les mails en POP sur le port 1100. ` e e

PPP over SSH.


Cette technique consiste a tablir une connexion PPP via un ux SSH. `e

Le protocole PPP (point a point) permet dtablir une connexion entre ` e deux machines. Il est surtout utilis pour les connexions modem. Il y a comme e intrt dtre facile dutilisation mais aussi de pouvoir facilement fournir e e e des services a la machine initiant la connexion (obtention dune adresse IP ` fournie par le serveur...). Cest un protocole tr`s standard utilis par dautres e e protocoles encore utilis dans les connexions ADSL (PPPOE (PPP over e Ethernet), PPPOA (PPP over ATM ...). Il permet aussi dtre interconnect e e avec des syst`mes RADIUS. e

13

PPP over SSH permet de combiner la puissance de ces deux syst`mes : e De SSH, on tire la scurit des transactions. e e De PPP, on tire ltablissement dune connexion avec lobtention dune e adresse ip.

3.1

Installation client

Pour interconnecter un client a notre VPN PPP over SSH, il faut quil ai ` dans son noyau les options ncessaires au PPP. e Dans la partie Network Device Support des kernels linux, les options suivantes doivent tre actives : e e PPP (point-to-point protocol) support PPP ltering PPP support for async serial ports PPP support for sync tty ports PPP Deate compression PPP BSD-Compress compression Un script sh a t dvelopp par le projet Insidenetworks pour faciliter ee e e linterconnexion dun client avec un serveur PPP over SSH. Ce script est disponible a ladresse : http ://www.insidenetworks.net/connect/connect-linux ` Il va tout dabord vrier que larborescence ncessaire a PPP existe bien. e e ` Ensuite, une cl ssh DSA va tre gnre (grce au programmessh-keygen). e e e e e a Cette cl devra tre transmise a ladministrateur du serveur PPP over SSH e e ` (la cl se trouve dans le chier root/.ssh/in.pub). Cest la cl qui ira dans le e e chier authorized keys. 14

Le script va ensuite gnrer les chiers ncessaires a la mise en place du e e e ` rseau (montage automatique et adquat des routes : tous le trac vers e e 10.0.0.0/8 est rout vers le serveur PPP over SSH). Pour initier une connexion, e il sut te taper la commande pon in qui va connecter la machine sur le serveur. (po in pour dconnecter la machine) Linterface obtenue est : e 23: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 3 link/ppp inet 10.1.12.15 peer 10.1.12.2/32 scope global ppp0 Et tout le trac vers le VPN passe par cette interface : 10.0.0.0/8 dev ppp0 scope link

Le client va donc pouvoir accder aux services proposs par son serveur PPP e e over SSH mais aussi a toutes les machines qui sont interconnects au rseau ` e e virtuel.

3.2

Installation serveur

Pour installer un serveur PPP over SSH pouvant accepter direntes e connexions, il faut sassurer davoir les options adquates dans le kernel. Les e options sont les mmes que celles pour le client. e Ensuite, une fois le noyau et les modules recompils et installs correctee e ment, les modications a apporter au niveau du syst`me sont : ` e Crer un compte utilisateur vpn e Vrouiller le mot de passe (passwd -l vpn) e Vrier que lutilisateur a bien les droits ncessaires pour lxcution de e e e e pppd (sous Debian, addgroup vpn dip) Dans le rpertoire home de lutilisateur vpn (ex : /home/vpn), Mettre le e script vpnsh disponible sur http ://www.insidenetworks.net/serv/vpnsh, script qui deviendra le shell de lutilisateur Rendre ce script xcutable (chmod +x vpn/vpnsh) e e Modier le shell de lutilisateur vpn (chsh -s /home/vpn/vpnsh vpn) Crer le chier /etc/ppp/peers/vpnserv qui contient uniquement la ligne e noauth (echo noauth > /etc/ppp/peers/vpnserv) Ensuite, pour pouvoir crer des connexions utilisateur, il faut ajouter un e chier authorized keys (touch vpn/.ssh/authorized keys) puis restreindre les droits dacc`s au propritaire, ceci pour dvidentes raisons de scurit e e e e e (chown vpn vpn/.ssh/authorized keys ; chmod 0600 vpn/.ssh/authorized keys)

15

Pour ajouter une connexion, il faut entrer une ligne du type : command="hostname ip_locale:ip_distante (options supplementaire de pppd)" clefs_ssh Ce sont les cls RSA publics des clients. e Par exemple, pour connecter la machine yuko, on a rajoute la ligne suivante :

command="yuko 10.12.15.2:10.12.15.5" ssh-dss AAAAB3NzaC1kc3MAAACBAKmN0EHszYNVLNZU1wBR6wA3 La cl ssh est de type ssh2. Elle nous a t communique par ladminise ee e trateur de la machine yuko. Dans cet exemple, lorsque yuko se connectera a ` au serveur PPP over SSH, si la vrication de la cl russie, la machine yuko e e e obtiendra lip 10.12.15.5 (ceci grce a PPP) et aura comme passerelle 10.12.15.2 a ` (ip locale du serveur PPP over SSH) Si la connexion PPP russi, une nouvelle interface ppp est monte : e e 806: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1500 qdisc pfifo_fast qlen 3 link/ppp inet 10.12.15.2 peer 10.1.12.15/32 scope global ppp0 et une nouvelle route est ajoute dans la table de routage : e 10.12.15.15 dev ppp0 proto kernel scope link src 10.12.15.2

Ainsi, pour un snier, les ux PPP over SSH donneront limpression a ` lattaquant quil ny a quun ux SSH. Il naura aucun moyen de conna tre la nature des donnes circulants a travers le ux SSH. Ainsi, il ne verra e ` quappara ce genre de paquets circulant sur le rseau. tre e T 81.56.245.43:1027 -> 217.167.120.134:22 [AP] ....]..9....... ...P......|...c*Z...B...~...y.Qb-...V5..<...6.n5 T 81.56.245.43:1027 -> 217.167.120.134:22 [AP] |D~P...u-.Lh......Gmy%..$..D..).....=G....=..C\.JO..%.U.....I... Il est possible ensuite dinterconnecter plusieurs serveurs de VPN qui se partagent la classe 10.0.0.0/8 en dirents sous-rseaux. Chacun ayant la e e dlgation dune plage dip et peuvent ainsi crer un grand rseau scuris bas ee e e e e e sur Internet (ce qui implique lutilisation de services de routages tel que zebra/quagga) le tout sans avoir aucune connaissance des ips rels des direntes e e 16

passerelles. Pour faciliter lutilisation de ce rseau Internet dans Internet, il e est aussi possible de crer un nouveau TLD (.com, .net, .info ... sont des TLD) e pour faciliter lacc`s aux services disponibles sur le VPN. Cest ces services que e propose le projet InsideNetworks (http ://www.insidenetworks.net). Ce genre dinfrastructure lg`re en terme de dploiement est intressante pour e e e e interconnecter toutes les agences dune socit par exemple sur un mme rseau ee e e virtuel.

4
4.1

IPSec : la thorie e
Introduction

Pour scuriser les changes sur un rseau Internet, il existe plusieurs niveaux e e e dintervention. IPSec permet de scuriser les changes au niveau de la couche e e rseau. e Sur-couche du protocole IP, de nombreuses entreprises lutilisent dsormais e pour les rseaux privs virtuels (VPN) ou bien la scurisation des acc`s distants e e e e a un intranet. ` La couche IPSec donne donc les moyens dassurer : la condentialit des donnes changes (lutter contre lanalyse du trac) e e e e via le chirement, lauthentication des intervenants et des donnes dans la communication e (signatures), lintgrit des donnes (hashage), e e e la protection contre le rejeu (remise de paquets dj` envoys), ea e le contrle dacc`s. o e

17

Lutilisation des implmentations dIPSec permet un choix de conguration e vari : la conguration des lments dinterconnexion (Routeurs ou rewall) et e ee des quipements terminaux (PC et serveur) ore la possibilit dutiliser tous e e les types de chirement possibles.

18

4.2

Bases de donnes e (SAD/SPD)

de

politiques

de

scurit e e

IPsec fonctionne autour de bases de donnes de politiques de scurit dont e e e lutilit vous est dcrite ci-apr`s. e e e

4.2.1

SA (Security Association)

Une association de scurit IPSec est une structure de donnes servant a e e e ` stocker lensemble des param`tres de scurit associs a une communication. e e e e ` Une SA tant unidirectionnelle, il faut deux SA pour protger les deux sens e e dune communication. Les services de scurit dnis par la SA sont fournis e e e par lutilisation des protocoles AH ou ESP que nous expliquons plus tard dans ce document. Plus prcisment, Le rle dune SA est de spcier, pour chaque adresse e e o e IP avec laquelle IPsec peut communiquer, les informations suivantes : le Security Parameter Index (SPI) : lidentiant de la SA choisi par le rcepteur e le numro de squence, (viter le rejeu) e e e une fentre danti-rejeu e le dpassement de squence e e les param`tres dauthentication (algorithmes et cls) e e les param`tres de chirement (algorithmes et cls) e e la dure de vie de lassociation e le mode du protocole IPSec (tunnel ou transport) Chaque association est identie de mani`re unique a laide dun triplet e e ` compos de : e ladresse de destination des paquets lidentiant du protocole de scurit (AH ou ESP) e e le SPI Lorsquun destinataire reoit un paquet IPSec, il vrie a quelle SA c e ` correspond le paquet reu. Si cette association de scurit nest pas trouve le c e e e paquet est rejet, sinon il utilise les informations de scurit pour interprter le e e e e paquet IPSec.

19

4.2.2

SAD (Security Association Database)

Les associations de scurit sont stockes dans une base de donnes (Security e e e e Association Database, SAD). Cette base de donne est consulte par lhte an e e o didentier la mani`re dont doit tre trait chaque paquet reu ou a mettre. e e e c `e

4.2.3

SPD (Security Policy Database)

IPSec ore des protections bases sur des choix dnis dans une base de e e donnes de politique de scurit (Security Policy Databas, SPD) tablie par e e e e ladministrateur de la connexion. Elle permet de dcider, pour chaque paquet, e sil doit tre scuris ou autoris a passer outre ou rejet. e e e e` e Les services de scurit sont bass sur des mcanismes cryptographiques. e e e e IPSec met en jeu deux protocoles en complment du protocole IP classique : e AH et ESP. Ce sont deux types dencapsulation dirents mme si ESP e e reprend la plupart des principes dAH et ajoute notamment des services de condentialit. Par ailleurs, IPSec ore un service supplmentaire de crype e tographie (chirement en mode Fast Forward) permettant de conserver des performances optimales en conservant des paquets de mme taille. Nanmoins, e e ce mode garantie uniquement la condentialit : Len-tte IP et la longueur du e e datagramme restent les mmes (le champ doptions IP peut tre chir). e e e Les associations de scurit contiennent toutes les donnes de scurit e e e e e ncessaires a un change avec IPSec, notamment les algorithmes et les cls. e ` e e Une SA peut tre congure manuellement mais la plupart des conguration e e utilisent un protocole de ngociation dynamique des SA et dchange des cls e e e de session. Cest le protocole IKE (Internet Key Exchange) association du protocole de gestion des cls et des associations de scurit pour Internet (ISAKMP cadre e e e gnrique permettant lutilisation de plusieurs protocoles dchange de cl) et e e e e dune partie des protocoles SKEME et Oakley.

20

4.2.4

Illustration

Trac sortant : D`s que la couche IPSec doit envoyer des donnes, elle se rf`re a la SPD e e ee ` pour conna tre la mani`re dont elles doivent tre envoyes. Dans le cas o` e e e u elle doivent tre scurises, elle consulte la SAD pour retrouver la SA et par e e e consquent, les param`tres de scurit requis pour cette change. Si cette SA e e e e e nexiste pas, IPSec utilise le protocole IKE pour en dnir une. e Trac entrant : A la rception dun paquet distant, IPSec vrie dans lentte si des services e e e de scurit ont t utilis sur ce paquet. Au quel cas, il en extrait les idene e ee e tiants de la SA pour la retrouver dans la SAD. Ceci an de conna tre les param`tres de scurit permettant de traduire le paquet. Aussi, la SPD est e e e interroge pour savoir si la SA utilise pour transmettre le paquet est bien e e celle requise par les politiques de scurit. Dans le cas dun paquet IP clase e sique, la SPD est consulte pour savoir si le paquet a le droit ou non de transiter. e

4.3
4.3.1

Modes de fonctionnement
Mode Transport ou Transparent :

Dans le mode transport, IPSec intervient entre le niveau transport (TCP) et le niveau rseau (IP) du mod`le OSI : le PDU de la couche transport se e e 21

voit appliqu les mcanismes de signature et de chirement puis le rsultat est e e e pass a la couche rseau (encapsulation IP). e` e Ce mode ne rsout pas une probl`me majeur en mati`re de scurit : len-tte e e e e e e du paquet est inchang puisque produit par la couche IP. Il ny a donc ni de e masquage dadresse ni de protection des options IP. Cependant ce mode est relativement ais a mettre en oeuvre. e`

4.3.2

Mode Tunnel

Dans le mode tunnel, IPSec agit directement apr`s lencapsulation IP. La e totalit du paquet IP est encapsul dans un paquet IPSec scuris. Dans ce cas, e e e e len-tte IP dorigine est protge et les adresses sont masqus. Ce mode est tr`s e e e e e utilis pour la mise en place de VPNs. e

Le mode tunnel est utilis entre deux passerelles de scurit (routeur, e e e rewall, ?) alors que le mode transport se situe entre deux htes. o

4.3.3

Mode Nesting

Le mode de Nesting utilise a la fois le mode transport et le mode tunnel : ` Un paquet IPSec et encapsul dans un paquet IPSec. e

22

4.4
4.4.1

Protocoles de scurit (modes dencapsulation) e e


Authentication Header (AH)

AH permet dassurer lintgrit et lauthentication de lorigine des paquets e e IP mais pas la condentialit des donnes. e e Le paquet IP se voit aect dun nouveau champ permettant de vrier e e lauthenticit des donnes. Ce champ contient un hash (digest MD5 ou e e e SHA-1) appel Integrity Check Value . Aussi, la protection contre le rejeu e (rinjection de paquet) se fait grce a un numro de squence et permet e a ` e e dviter les attaques par inondation. Les param`tres de scurit lis a la e e e e e ` communication sont identis par un identiant unique (Security Parameters e Index) caractrisant la Security Association (SA). Cest une combinaison de e ladresse du destinataire et du protocole utilis. e

Ce protocole donne les moyens de garantir : - lauthentication du paquet et de son metteur (si ladresse source du paquet e est celle de lmetteur). e - Lunicit du paquet (pas de rejeu). e - Lintgrit des donnes (aucune altration volontaire ou non du paquet durant e e e e le transport). Seuls certains champs sont certis dans le paquet : La version dIP, e longueur de lentte/des donnes/du paquet, les donnes (en mode tunnel ou e e e transport), lidenticateur de ux, Protocole ou entte suivant, Adresse IP de e la source et du destinataire. Les autres ne le sont pas car il changent de valeur au cours de la dure de vie e du paquet (ex : TTL, Classe trac ?). Pour une protection totale du paquet IP, il faut utiliser le mode Tunnel.

23

Les direntes mthodes dintgrit utilises dans ce mode sont : e e e e e MD5 (Message Digest 5) : lalgorithme de hachage MD5 a t conu ` ee c par Rivest (un des concepteur de RSA). Il op`re sur des blocs de 512 bits. Le e rsultat dun hashage MD5 est un digest de 128 bits (4 * 32 bits). e SHA-1 (Secure Hash Algorithme 1) : La NSA et le NIST sont a ` lorigine de cette mthode base sur MD4. Il fonctionne avec des blocs de 512 e e bits, Cl de 160 bits. e Lapplication de ces mthodes sur un message produit un digest (hash) e e permettant de certier lintgrit et lauthenticit du message : Il est impossible e e e de retrouver le message a partir du digest ; Si un bit du message change, le ` digest rsultant est tr`s dirent a cause de leet davalanche. e e e ` Dautres algorithmes peuvent tre utiliss dan limplmentation dIPSec : e e e exemple MAC (bas sur DES). e

24

4.4.2

Encapsulating Security Payload (ESP) :

ESP permet de combiner, a volont, plusieurs services de scurit. A ` e e e savoir, la condentialit des donnes par lutilisation dun syst`me de chiree e e ment ; lauthentication du paquet et de son metteur (ladresse source du e paquet est celle de lmetteur) ; lintgrit des donnes (aucune altration volone e e e e taire ou non du paquet durant le transport) et lunicit du paquet (pas de rejeu). e If faut noter que service dauthentication nest pas obligatoire sauf si le service de condentialit nest pas utilis. e e Par opposition a AH, qui ajoute seulement une en-tte supplmentaire au ` e e paquet IP, ESP chire les donnes puis les encapsule. e

ESP propose de lauthentication de la mme mani`re que AH gr`ce a e e a ` lutilisation de donnes den-tte : e e Le SPI (Security Parameters Index) permet de caractriser lassociation de e scurit utilise pour la communication (SA). e e e Les donnes dauthentication contiennent la valeur de vrication dintgrit e e e e (ICV) permettant de vrier lauthenticit des donnes du paquet. e e e Un numro de squence pour viter le rejeu. e e e Les donnes chires sont contenues dans la partie champ libre (ou e e PayLoad Data) du paquet. Ce champ contient ventuellement aussi des e donnes de synchronisation. Du bourrage (Padding), peut tre ajout si e e e ncessaire. Sa longueur est spcie dans le champ prvu a cet eet. e e e e ` Enn, le champs En-tte suivant (Next Header) indique la nature des informae tions contenues dans le Payload Data (champ libre).

25

Pour lauthentication et lintgrit des donnes, ESP utilise HMAC, e e e une volution des algorithmes de hashage classiques. En eet, il sagit dun e algorithme de hashing MD5 ou SHA-1 avec en plus lutilisation dune clef secr`te partage entre les htes. Le hash chir reprsente une signature du e e o e e e message. Les mthodes de cryptage utilis par ESP : e e DES (Data Encryption Standard) : Cest une syst`me de cryptage e symtrique mis au point par IBM : il met en jeu une cl unique pour chirer et e e dchirer les messages. La condentialit du message repose donc sur le secret e e de cette cl. La transmission de la cl doit donc tre scurise. Il op`re sur des e e e e e e blocs de 64 bits (dont huit derniers bits de parit). e 3DES (Triple Data Encryption Standard) : 3DES consiste en lutilisation a trois reprises de DES. Ce qui le rend plus able car il met en jeu trois clefs ` direntes, mais donc plus lent. e

Par ailleurs, il existe deux codes pour les protocoles sans eet : Algorithme de chirage NULL Algorithme dauthentication NULL

26

4.4.3

Internet Key Exchange

Ce protocole a pour but dans sa premi`re phase de construction dun e premier tunnel scuris entre les 2 htes (le tunnel IKE). Il est utilis pour e e o e grer les tunnels IPSec (la ngociation des SAs et leur mise a jour) constituant e e ` la deuxi`me phase du protocole IKE. Ce sont ces tunnels qui serviront aux e changes de donnes entre les htes. Cependant, IPSec ore la possibilit e e o e doprer une authentication manuelle, sans utiliser IKE. e Il est la combinaison de plusieurs autres protocoles : ISAKMP, protocole de gestion des cls et des associations de scurit pour e e e Internet : cadre gnrique permettant lutilisation de plusieurs protocoles e e dchange de cl e e SKEME et Oakley, syst`mes dchange de cls. e e e Les direntes tapes du protocole IKE : e e

27

IKE Phase 1 Cette phase va servir a la cration dune premi`re cl qui va permettre ` e e e par la suite la gnration de 3 autres cls drivant de celle-ci. Cette cl peut e e e e e tre gnre selon 3 modes oerts par IKE. Le mode secret partag implique e e e e e que les htes partagent dj` un secret qui permettra la mise au point de cette o ea cl. Le mode Chirement asymtrique se base sur les crypto syst`me a cl e e e ` e publique pour changer les donnes sensibles et donc tablir le secret partag. Le e e e e mode Signature, quant a lui, se sert du chirement asymtrique pour signer et ` e authentier les htes alors que le secret partag est tabli grce a Die-Hellman. o e e a ` Une fois la premi`re cl gnre, elle est drive en 3 autres cls qui serviront a e e e e e e e e ` la cration du tunnel IKE scuris entre les htes (en fa une association de e e e o te scurit ISAKMP). Lune des cls sera utilise pour lauthentication, lautre e e e e pour le chirement et la derni`re sera utilis lors de la phase 2 du protocole. e e Ce canal, scuris, est ensuite utilis pour la deuxi`me phase IKE. e e e e Plus prcisment, lors de cette phase, les changes permettent de dnir e e e e lassociation de scurit puis dtablir le secret partag et enn dauthentier e e e e les htes. o Il faut noter que le mode aggressif permet de limiter les communications en utilisant certains param`tres doce. Dautre part, les SA ISAKMP utilisent e un chirement (DES ou 3DES) lors de lchange des clefs de session. e

IKE Phase 2 Lobjectif de la deuxi`me phase a pour objectif de crer les tunnels IPSec e ` e (SA) pour les changes eectifs entre les htes : Deux SA par htes, un pour e o o chaque sens de communication, conserves dans la SAD (Security Association e Database). Cest lors de cette phase que chaque hte donne ses prfrences en mati`re o ee e dalgorithme et tablissent le matriel cryptographique. Les cls de session sont e e e gnres a partir de lune des cls drives, gnre durant la phase 1 de IKE. e e e ` e e e e e e Cependant, lorsque le mode Perfect Secrecy est utilis, les htes doivent e o changer de nouveaux secrets, ceci an de couper la relation systmatique entre e e les nouvelles cls gnrs et la cl de la phase 1 IKE. Cet change seectue via e e e e e e le protocole dchange Die-Hellman. e Cette phase sert aussi a spcier les changes devant bncier des services ` e e e e IPSec (utilisation de la Security Policy Database), Rappels sur certains syst`mes utiliss : e e RSA (Rivest, Shamir, Adleman) : RSA est un crypto syst`me a cl publique faisant intervenir une paire de cl e ` e e par intervenant, dans un change scuris : e e e 28

Une cl prive, utilise par lmetteur du message pour chirer. Cette cl nest e e e e e jamais divulgue. e Une cl publique, utilise par le destinataire pour dchirer le message. Cette e e e cl est divulgu a tous les destinataire via, par exemple, un certicat numrique e e` e certi par un CA. e Cet algorithme sappuie sur la dicult de factorisation de deux nombres entiers. e Die-Hellman : Il sagit dun algorithme dchange de clefs pour les algorithmes a clefs e ` publiques. Cet algorithme permet un tablissement dun secret partag entre 2 e e htes, et ce via un rseau non scuris. o e e e DH est bas sur les nombres premiers, le modulo et le logarithme discret : e Une fois les paires de cls gnres a laide des donnes partages, les cls e e e e ` e e e publiques sont changes et vont servir a laide des cls prives a gnrer le e e ` e e ` e e secret (une clef de session qui servira au crirement des messages). Pour cela, chaque hte utilise sa clef prive et la cl publique de lhte distant pour crer o e e o e la clef de session commune.

Partie technique Ipsec

La principale implmentation libre sous Linux est Freeswan mais pour des e raisons politiques et internes, une partie des patchs sont refuss (les patchs e de contributeurs amricains sont automatiquement refuss). Ainsi, Freeswan e e nint`gre pas le NAT traversal, les certicats (x509) ... De plus, le projet e freeswan a t arrt le 1er mars 2004. ee ee Cest pour ces raisons que nous utilisons un fork (reprises du projet par un autre groupe) appel openswan (http ://www.openswan.org) qui int`gre tous e e ces patchs qui apportent dintressantes fonctionnalits. Il existe aussi le projet e e strongswan (http ://www.strongswan.org/) qui proposent aussi ipsec avec dautres patchs. Les protocoles IP tant modis, il faut donc modier la pile IP. Sous e e linux, ceci se fait en patchant le noyau du syst`me et en le recompilant. e

5.1

Procdure de e ipsec/openswan

compilation

et

installation

de

Il est suppos que le kernel est correctement congur et les sources de celui e e ci disponible dans /usr/src/linux.

29

Tlchargez la derni`re version sur le site ociel (actuellement, la derni`re est ee e e la version 2.1.1). cd /usr/src/ wget http://www.openswan.org/code/openswan-2.1.1.tar.gz tar -zxvf openswan-2.1.1.tar.gz cd openswan-2.1.1 make kpatch # cette option va patcher le kernel pour ajouter les fonctionnalits ipsec e make nattpatch > nat_patch cd ../linux patch -p1 < ../openswan-2.1.1/natpatch # pour obtenir la fonctionnalit de e nat traversal # make menuconfig # pour verifier que les options IPSEC sont bien actives e (dans la section Networking options) Lancez la compilation du nouveau kernel (la procdure est variable selon e les distribs linux) # cd ../openswan-2.1.1/ # make programs install # pour installer les daemons et services ncessaires au e fonctionnement de openswan. Attention, les sources de la libraire de calcul mathmatique gmp doivent etre install pour pouvoir compiler openswan. e ^ e # # # # # # # #

5.2

Utilisation de Ipsec en mode Road Warrior

Le mode road warrior est le mode qui permet a un utilisateur distant de ` se connecter au rseau priv de lentreprise comme si il tait physiquement e e e prsent. Cest typiquement lexemple de lun employ qui veut se connecter au e e rseau de lentreprise a partir de chez lui. e ` La particularit rside dans le fait que lutilisateur na pas une ip xe. En e e eet, avec la plupart des fournisseurs dacc`s internet, les ips sont allous e e dynamiquement.

30

Pour eectuer cette connexion, il faut chaque machine ai la cl public RSA e de lautre machine pour valider le processus dauthentication. La partie de conguration ipsec pour une connexion Road Warrior se divise en deux parties La partie Left (Local) et Right (Remote, distante). Ainsi, pour la machine cliente, on va avoir :

conn road left=%defaultroute # Pour rcuperer lip dynamique e leftnexthop=%defaultroute # leftid=@client_road_warrior.example.com # Information locale leftrsasigkey=0sAQPIPN9uI[...] # Cl RSA de la machine road warrior e right=192.0.2.10 # Adresse ip de la passerelle ipsec rightsubnet=10.0.0.0/24 # Rseau priv gr par la passerelle e e e e rightid=@reseau.example.com # Information distante rightrsasigkey=0sAQOnwiBPt[...] # Cl RSA de la passerelle ipsec e auto=add # autorise mais ne lance pas la connexion au dmarrage dipsec e Pour le serveur ipsec, le fichier ipsec.conf aura lapparence suivante : conn road left=192.0.2.10 # Adresse ip de la passerelle ipsec leftsubnet=10.0.0.0/24 # Rseau priv gr par la passerelle e e e e leftid=@reseau.example.com # Information distante leftrsasigkey=0sAQOnwiBPt[...] # Cl RSA de la passerelle ipsec e right=%defaultroute # Pour rcuperer lip dynamique e rightnexthop=%defaultroute # 31

rightid=@client_road_warrior.example.com # Information locale rightrsasigkey=0sAQPIPN9uI[...] # Cl RSA de la machine road warrior e auto=add # autorise mais ne lance pas la connexion au dmarrage dipsec e Pour initier la connexion, il sut de taper la commande : ipsec auto up road Pour obtenir sur une machine la cl RSA public, il sut de taper la come mande suivante : ipsec showhostkey left pour la machine situe a gauche ou e ` ipsec showhostkey right pour lautre cot. (les cls gnres a gauche et a e e e e e ` ` droite sont similaires dans le cas de RSA). Si la cl na pas t gnre au pree ee e e e mier dmarrage (ce que openswan fait normalement par dfaut), il est possible e e de la gnrer avec la commande : ipsec newhostkey output /etc/ipsec.secrets e e hostname machine.example.com Si le client se trouve derri`re un NAT (ou appel aussi masquerading), e e il faut absolument que le serveur ainsi que le client g`rent la RFC 3715 e (IPsec-Network Address Translation (NAT)). Dans le cas contraire, le NAT rcrivant les paquets la vrication AH (Authentication Header) dipsec va ee e rejeter le paquet et rendre impossible toute connexion. Cette conguration va permettre a la machine dite cliente daccder au ` e rseau priv situ derri`re la passerelle et ainsi accder aux ressources du rseau e e e e e e local. Le tout scuris par le cryptage appliqu par ipsec. e e e

5.3

Opportunistic encryption

Lopportunistic encryption (ou appel OE) est une fonctionnalit non e e RFC ajoute par les dveloppeurs de freeswan sur le protocole IPSEC. Il a e e pour intrt de pouvoir ngocier avec nimporte quel serveur (connu ou non) e e e acceptant lOE la cration dun tunnel ipsec temporaire entre une machine et e lautre.

32

Pour cela, il utilise les proprits des DNS pour pouvoir authentier la ee machine distante. Sans rentrer dans les arcanes des DNS, il va faire une double vrication en se e basant sur les champs de commentaires de DNS (champs TXT). Lorsquune machine se connecte a une serveur ipsec grant lOE, il va faire ` e deux rsolutions DNS : e une sur le champs de commentaire du reverse de lip une sur le champs de commentaire du nom annonc par ipsec du serveur e Ainsi, lors du processus de connexion, lipsec va vrier la prsence de ces deux e e champs. Et ceux, des deux cots de la connexion. e Il est possible de tester lexistence de ces deux champs a la main (ici ` avec le programme host). # host -t TXT machine.ecranbleu.org machine.ecranbleu.org TXT "X-IPsec-Server(10)=81.255.82.6" " AQNnycIot0WaNFL6LHInCoWnLz72qHb6Cvpw7Za3oWkWO5uksyKn2EN8Ckw 6N/bX2Opbz53h+PjFBUcyjO65UzamUqbOdiJemE0RZq2Jv1fmcAOTw+8oKoq6N a0pMD3Nl9MP0bhrW5KnExTZ8IBAWIGF7yqlFaSXW6rsCYmavkU+kHFo7NsEa0W oHUwdzEscyapV0WR0Apvqu4t8AB3pgkTg5/Xpo2qD64QQybjkUFx7QKYLg7QX1 WcnwAgHW2" "EyEz+Z9tAwoamhAG4Ckunbwm3ot8mhu4EFdukrG+mXDOVPXiZn w3zmvWYDiJFdqcfl6oy8cbTmOao2UDoOGkjgzk+SE7L1EAod ipsec auto --up net-to-netlhBU/z4bidc+y3xxcVs5NaCKOTXUVBw/qirOHnmCC+FYYg bwS7qobaL1XOb+w7N2ipgba/f6NFmxC+WHuTbepYv7+4iafajeizDQEeEYSZVD 7qFqe9H0HeY5jF+x+gKFKM/cgrMYEoBJQb3s2f4qWOnf6s1Kv" "p1fCER+qD0U Af4JZEbBAvNMWcdK6ll3HkvwtfVlSaEW8Bs=" # host -t TXT 6.82.255.81.in-addr.arpa. 6.82.255.81.in-addr.arpa CNAME 6.0-16.82.255.81.in-addr.arpa 33

6.0-16.82.255.81.in-addr.arpa TXT "X-IPsec-Server(10)=81.255.82.6" " AQNnycIot0WaNFL6LHInCoWnLz72qHb6Cvpw7Za3oWkWO5uksyKn2EN8Ckw6N/bX2Opb z53h+PjFBUcyjO65UzamUqbOdiJemE0RZq2Jv1fmcAOTw+8oKoq6Na0pMD3Nl9MP0bhrW5K nExTZ8IBAWIGF7yqlFaSXW6rsCYmavkU+kHFo7NsEa0WoHUwdzEscyapV0WR0Apvqu4t8AB 3pgkTg5/Xpo2qD64QQybjkUFx7QKYLg7QX1WcnwAgHW2" "EyEz+Z9tAwoamhAG4Ckunbwm 3ot8mhu4EFdukrG+mXDOVPXiZnw3zmvWYDiJFdqcfl6oy8cbTmOao2UDoOGkjgzk+SE7L1E AodlhBU/z4bidc+y3xxcVs5NaCKOTXUVBw/qirOHnmCC+FYYgbwS7qobaL1XOb+w7N2ipgb a/f6NFmxC+WHuTbepYv7+4iafajeizDQEeEYSZVD7qFqe9H0HeY5jF+x+gKFKM/cgrMYEoB JQb3s2f4qWOnf6s1Kv" "p1fCER+qD0UAf4JZEbBAvNMWcdK6ll3HkvwtfVlSaEW8Bs=" Pour rajouter ces champs, il faut gnrer la cl public. Il existe un proe e e gramme inclus dans openswan qui permet de gnrer lenregistrement DNS au e e format utilis par BIND (principal serveur DNS sur le net) : e # ipsec showhostkey --txt @hostname --fqdn # la partie entre entre backquote permet de Une fois le processus de vrication et dchange des cls a t eectu, e e e ee e un tunnel est eectu de mani`re transparente entre les deux machines. Par e e exemple, si une machine grant lOE essaye de consulter un site internet e hberge sur une machine supportant cette technologie, la scurisation se ferra e e automatiquement. Le projet freeswan met a disposition publique une machine de test pour ` vrier que cette fonctionnalit marche de mani`re correcte. Ainsi, si on essaye e e e de se connecter (quelque soit le protocole) sur la machine oetest.freeswan.org, le tunnel va tre mis en place pour une certaine dure. e e Le tunnel ainsi obtenu est similaire a celui que lon a pu obtenir prcdemment ` e e en dehors du fait quil a une dure de vie. e # ipsec eroute 0 193.17.15.19/32 -> 81.255.82.7/32 => tun0x1002@81.255.82.7 Si on snie le rseau, on ne va voir que des informations chires circuler, e e sans mme dinformations quant au port de destination ou source. Voila ce que e tcpdump nous retourne quand on snie une connexion crypte. e Ent^te : 14:16:52.493098 81.255.82.7 > 193.17.15.19: e ESP(spi=0x629ad466,seq=0x19) Contenu du packet : E..h^U..42..Q.R.....b..f.....B..+.....-.o/|.... .]q.g[...Y.".....y..4r..P."..Kx.. Ent^te : 14:16:52.493199 193.17.15.19 > 81.255.82.7: e ESP(spi=0xf9e66fad,seq=0x1b) Contenu du packet : E..i...@2......Q.R...o........<..^...z9Rt.... 34

.Q..~6..Y..8..:n.G...Q,.....I...wx.. Alors que si la connexion navait pas t chir, on aurait obtenu bien plus ee e dinformations, tel que le port source, de destination, les numros de squence e e et surtout le contenu du paquet : Ent^te : 14:19:29.709798 81.255.82.7.21 > 193.17.15.19.36111: e P 62:94(32) ack 11 win 32416 <nop,nop,timestamp 90859454 188978569> (DF) [tos 0x10] Contenu du packet : 220 ProFTPD 1.2.9 Server (Debian) [brannigan.ecranbleu.org].. Ent^te : 14:20:42.840999 193.17.15.19.36113 > 81.255.82.7.21: e P 11:26(15) ack 94 win 5840 <nop,nop,timestamp 188985899 90866560> (DF) Contenu du packet : PASS mon_pass.. Intret de lOE Lopportunistic encryption est tr`s intressante pour e e e scuriser les ux sur internet. Si toutes les machines utilisaient ce syst`me, les e e probl`mes de scurit a lchelle dinternet seraient sensiblement diminus tant e e e e e e donn que tous les ux sont automatiquement crypts entre deux priphriques. e e e e Mais malheureusement, cette technologie est dicile a dployer pour principale` e ment trois raisons : elle est spcique a Free/Swan et a ses forks (openswan/strongswan) aue ` ` cune autre implmentation dipsec ne limplmentant jusqu` maintenant. e e a elle ncessite une dlgation de la rsolution inverse de son adresse ip pour e ee e pouvoir rajouter les champs commentaires ncessaires. e le procd dauthencation reste relativement long selon les crit`res e e e habituellement tolr en rseau : il faut en eet entre 2 et 4 secondes pour e e e vrier les cls (en grande partie d a la lenteur de la rsolution DNS). e e u` e Dautres mthodes de mise en place de la connexion OE sont actuellement a e ` ltude (en particulier un draft dune RFC pour utiliser IKE (Internet Key e Exchange) au lieu des serveurs DNS).

5.4

Rseau ` rseau e a e

Le mode de rseau a rseau permet dinterconnecter deux rseaux dene ` e e treprise distante. Par exemple, dans le cas dune entreprise ayant deux locaux distants ayant besoin dutiliser des ressources rseau communes (serveur de e chier, acc`s au serveur de messagerie ...). Il va tre ncessaire dinterconnecter e e e les deux rseaux. La solution dune connexion physique entre les deux locaux e est la plupart du temps inenvisageable car tr`s coteuse. La solution dun VPN e u sur Internet interconnectant les deux rseaux est donc la plus conomique et e e raliste dun point de vue technique. e 35

Pour interconnecter les deux rseaux, il faut interconnecter les deux passerelles e et autoriser lacc`s aux rseaux quelles g`rent. e e e

La conguration ncessaire pour interconnecter les deux rseaux prsents e e e e dans le schma est la suivante : e conn net-to-net left=217.167.120.134 # ip publique de la passerelle du rseau A e leftsubnet=192.168.1.0/24 # Rseau priv de loffice A e e leftid=@officea.masociete.com # identifiant de la passerelle leftrsasigkey=0s1LgR7/oUM[...] # Cl RSA de la passerelle e leftnexthop=%defaultroute # Rcup`re la route de la passerelle e e right=81.255.82.5 # ip publique de la passerelle du rseau B e rightsubnet=192.168.2.0/24 # Rseau priv de loffice B e e rightid=@officeb.masociete.com # Identifiant de la passerelle rightrsasigkey=0sAQOqH55O[...] # Cl RSA de la passerelle e rightnexthop=%defaultroute # Rcup`re la route de la paserelle e e auto=add Dans ce cas, il ny a pas a intervertir les deux dnitions (right/left). ` e Pour initier la connexion, la commande est : # ipsec auto --up net-to-net Si le processus se droule parfaitement, ipsec va produire lachage suivant : e 104 106 108 004 "net-to-net" "net-to-net" "net-to-net" "net-to-net" #223: #223: #223: #223: STATE_MAIN_I1: STATE_MAIN_I2: STATE_MAIN_I3: STATE_MAIN_I4: 36 initiate sent MI2, expecting MR2 sent MI3, expecting MR3 ISAKMP SA established

112 "net-to-net" #224: STATE_QUICK_I1: initiate 004 "net-to-net" #224: STATE_QUICK_I2: sent QI2, IPsec SA established On peut vrifier que le tunnel est bien etabli gr^ce a la commande : e a ` # ipsec eroute 0 192.168.1.0/24

-> 192.168.2.0/24

=> tun0x1002@81.255.82.5

Ainsi, toutes les machines relis au rseau de loce A seront accessibles a e e ` celle du rseau de loce B et rciproquement. Ce qui potentiellement entra e e ne des probl`mes de scurit car si un des deux rseaux venait a tre compromis, e e e e `e le pirate aurait un acc`s facile et rapide a lautre rseau. e ` e

6
6.1

Connexion Ipsec entre machines Windows et Linux


Pr-requis e

Comme nous lavons vu prcdemment, IKE assure la ngociation des e e e param`tres de la connexion IPSec. Il ngocie les algorithmes utiliss, les cls, e e e e les dures de vie, etc. e Direntes mthodes pour grer les cls sont possibles : e e e e Secrets partags : ncessite un secret connu et partag entre les entits. e e e e Il est appel le pre-shared secret et va servir de base a llaboration e ` e de la cl m`re qui va elle-mme servir lors de lauthentication nale. il e e e faut installer la cl sur chacune des machines, il y a une cl par couple de e e machines. Kerberos : fonctionne en environnement Microsoft DNS : mthode de choix pour FreeS/WAN, encore nouveau, ne fonctionne e quavec certains serveurs DNS, nest pas disponible pour Windows 2000, repose sur la conance que lon peut faire au DNS. Certicats x509 ou mode Signature : Se base sur lutilisation de certicats. Le but est dtablir un VPN entre une machine Windows cliente et un e serveur Linux dans loptique de dmontrer linteroprabilit des direntes e e e e implmentations dIpsec sur des plateformes htrog`nes. Windows XP et e ee e 2000 incluent le mode Certicat en standard (il ny aura rien a installer de ` particulier sur les poste Windows), nous nous baseront donc dessus pour la mise en pratique. Nous expliqueront dans un premier temps ce mode Certicats. Limplmentation dIpsec devra comporter du ct serveur, le patch X.509 e oe permettant la gestion des certicats dauthentication.

37

6.2

Gnralits e e e

La certication est le procd qui permet de relier une cl publique a un e e e ` individu, une organisation ou autre entit. La validation est laction de vrier e e quune certication est toujours valide. Le certicat est un document lectronique attestant quune clef publique appare tient rellement a un individu ou a une organisation. Il est possible de transmete ` ` tre une clef publique en authentiant son propritaire, mais tous les destinataires e doivent faire conance a lautorit de certication qui aura mis le certicat. ` e e

6.3

Dnitions e

Un certicat permet dassurer lidentit du propritaire de la clef publique e e quil contient. La premi`re mthode consiste a tablir une relation de conance directe avec e e `e le dtenteur de la clef publique (principe du protocole PGP) e La seconde mthode consiste a ce que tous les intervenants dun change fassent e ` e conance en un tiers appel Autorit de Certication (CA pour Certication e e Authority), qui se chargera de vrier lidentit du propritaire de la clef e e e publique, de dlivrer et de signer le certicat assurant la relation. Lautorit de e e certication aura en charge de prciser les mthodologies mises en place pour e e vrier les identits des propritaires des certicats, pour assurer la prennit e e e e e des informations dans le temps, etc. Le format dun certicat est dni par le standard X.509 e Le but de la gestion par certicats est de rendre automatique la distribution des cls entre toutes les entits participant a une transaction donne. e e ` e Lors de la phase dauthentication, IKE utilise les RSA signatures (certicat numrique au format X.509 authenti par une signature RSA). Dans cette e e architecture tri-parties avec les 2 peers et lautorit de certication (ayant e dlivr et sign les certicats), chaque peer reoit un certicat manant dune e e e c e autorit de certication. les deux machines signent leurs certicats avec leurs e clefs prives et les cryptent avec leurs clefs publiques (elles mmes ayant au e e pralable t signes par lautorit de certication), puis lenvoie a lautre peer. e ee e e ` Lidentication de lquipement distant va donc se faire au moyen du certicat e reu du serveur de certicat par lquipement voulant raliser lidentication. c e e 6.3.1 Format des certicats X509

Premi`re version : 1988 e Deuxi`me version : 1993 e Troisi`me version : version actuellement utilise (X509v3). Cette version e e contient des extensions qui augmentent la exibilit des certicats. e Un certicat contient les donnes suivantes : e Certicate format version (Ce champ donne la version du certicat : 1, 2

38

ou 3) Certicate serial number (Numro de srie unique pour lautorit de e e e conance qui a tabli le certicat qui lidentie de faon unique. Cest ce e c numro de srie qui sera post dans la liste de rvocation en cas de rvocation. e e e e e ) Signature algorithm identier for CA (Dsigne les algorithmes utiliss e e pour signer le certicat : (norme ISO). Il sagit dun algorithme asymtrique et e dune fonction de hachage. Exemple : RSA with SHA . ) Issuer X.500 name (Nom de lmetteur du certicat. Spcie le DN (Dise e tinguished Name) dans la norme X.500 du CA qui a gnr le certicat. o = e e e organization name c = country ) Validity period (Priode de validit du certicat. Donne les dates de dbut e e e et de n de validit.) e Subject X.500 name (Nom de propritaire du certicat (celui qui poss`de la e e clef prive correspondant a la clef publique contenue dans le certicat. Spcie e ` e le DN dans la norme X.500. O = organization C = country CN = name) Subject public key information (Ce champ contient la valeur de la cl e publique du dtenteur du certicat et les algorithmes avec lesquels elle doit e tre utilise. Exemple : RSA with MD5) e e CA signature (Cest la signature de lautorit de certication (CA). Cette e signature est eectue en passant lensemble du certicat au travers dune e fonction de hachage puis en chirant le rsultat a laide de la cl prive de e ` e e lautorit de certication.) e Ces informations sont certies tre justes par une autorit de certicae e e tion (Certication Authority ou CA ; par exemple Verisign) qui est cens e vrier les informations avant de valider le certicat, notamment le Distine guished Name . Pour cela, le CA hache et signe le certicat a laide de sa cl ` e prive. Il sut donc de conna e tre sa cl publique largement distribue pour e e vrier la validit dun certicat distribu par elle. e e e

6.4
6.4.1

Mise en application
Cration de lautorit de certication sur le serveur Linux e e

Cette autorit permettra par la suite de valider lensemble des certicats e pour le serveur et les clients. ./CA.sh -newca Spcification des informations : e C=FR,S=France,L=Paris,O=Ledru,CN=zoidberg.ecranbleu.org,Email=sylvestre@ledru.info Obtention du certificat : /etc/ipsec.d/cacerts/cacert.pem

39

6.4.2

Cration du certicat de la passerelle e

./CA.sh -newreq ./CA.sh -sign zoidberg.ecranbleu.org est le nom de la passerelle. zoidberg.ecranbleu.org.pem : certicat de la passerelle (contient la cl publique) e zoidberg.ecranbleu.org.key : cl prive e e mv zoidberg.ecranbleu.org.pem /etc/ipsec.d/certs mv zoidberg.ecranbleu.org.key /etc/ipsec.d/private Mise ` jour de /etc/ipsec.secrets : a RSA zoidberg.ecranbleu.org.key "PassGateway" 6.4.3 Cration dun certicat pour un client Windows e

On gn`re en premier lieu un certicat standard. e e Windows ncessite de convertir les deux chiers .pem et .key en un chier .p12 e openssl pkcs12 -export -in winHost.zoidberg.ecranbleu.org.pem -inkey winHost.zoidberg.ecranbleu.org.key -certfile /etc/ipsec.d/cacerts/cacert.pem -out winHost.zoidberg.ecranbleu.org.com.p12 La machine Windows doit possder ce chier .p12 et le certicat de lautorit e e de certication du serveur. Le certicat utilis pour IPSec est associ a lordinateur et non pas a lutilisae e` ` teur comme on aurait pu limaginer. Windows poss`de 3 catgories de magasins e e de certicats qui correspondent aux 3 comptes suivants : Le compte de lordinateur (global) Le compte de lutilisateur (un par utilisateur) Le compte du service (un par service) Par ailleurs le magasin peut correspondre a un magasin physique (carte a ` ` puce ou token USB) ou logique (rang dans le registre). Cependant seul un e utilisateur peut avoir un magasin physique. En outre il nest pas possible de protger par un mot de passe la cl prive associe au certicat de lordinateur e e e e car le processus doit pouvoir sexcuter sans intervention humaine (il na pas e de fentre pour demander un code). e La cl prive et les certicats doivent tre imports a laide de la MMC e e e e ` (Microsoft Management Console). On utilisera, pour grer les politiques de scurit, un outil recommand e e e e 40

sur le site Freeswan (ipsec.exe). Celui-ci permet, associ a un chier de e ` conguration de spcier les connexions possibles. e conn road left=%any leftsubnet=81.51.226.209 right=81.255.82.6 rightsubnet=192.168.10.0/24 rightca="C=FR,S=France,L=Creteil,O=Miage, CN=zoidberg.ecranbleu.org,email=sylvestre" network=auto auto=start pfs=yes La syntaxe est tr`s proche du langage de description du chier de congue ration /etc/ipsec.conf du serveur Linux.

6.5

Conclusion sur la certication

Les certicats utiliss par IPSec sont associs a la machine et non a une e e ` ` personne physique. Il est quasiment impossible de protger par un mot de passe e la cl prive. IPSec apporte une bonne garantie que lon dialogue avec la bonne e e machine mais nore rien en mati`re dauthentication de lindividu. Le risque e le plus banal est le vol de lordinateur portable. Il faut tre susamment ractif e e dans la gestion des listes de rvocation. La protection de la cl prive repose e e e enti`rement sur le syst`me dexploitation. e e

7
7.1

Failles des VPN


Introduction

Cette partie ne constituera pas une banale rcapitulation des failles relates e e dans des listes de diusion comme bugtrack sans intrt pdagogique mais e e e bel et bien les questions qui sont poses lors de la mise en ?uvre de rseaux e e virtuels privs. e Il est possible de dnir plusieurs axes de rexion pour plusieurs types de e e failles : Les problmatiques relatives a lessence mme, le principe fondamental du e ` e VPN. Les probl`mes soulevs par les protocoles utiliss suivant le type de VPN a e e e ` dirents niveaux OSI ou direntes tapes de phases critiques pralables e e e e ou lors du droulement de ltape du chirement. e e Les architectures rseaux inhrentes a ces solutions en fonction du besoin e e ` de lutilisateur. Les failles dimplmentation de cette solution cest-`-dire au sein mme e a e des programmes utiliss (clients ou serveurs). e 41

Dans le cas prsent mme si cette expression est tr`s populaire dans les e e e salons de scurit, elle illustre une partie des questions a se poser concernant e e ` les VPN. Le niveau dune cha de scurit est gal a celui de son maillon le plus ne e e e ` faible . Autrement dit, scuriser la plupart des aspects dune solution en en occule tant certains prtextant quils appartiennent a dautres domaines ne permet e ` pas de scuriser une architecture. Par cette notion de scuriser , il nest e e pas question de prtendre que la solution est inviolable mais bien de garantir e un niveau minimum de scurit dans le cadre dune classication des risques e e oprationnels selon des axes aujourdhui consensuels (Auditability, Availability, e Integrity, Condentiality). Nous allons maintenant voir plus en dtails les problmatiques qui mritent e e e dtre souleves. e e

7.2

VPN : Cesam ouvre toi

Voici le principe du VPN rduit a sa plus simple expression mais elle sut e ` a comprendre lide qui consiste a dire que comme dans le cadre de ce genre de ` e ` solution si une isolation (chirement, contrle de lintgrit etc. ?) est assure o e e e entre par exemple un client VPN a Lyon et le serveur qui se trouve a Grenoble, ` ` quiconque russit par un quelconque moyen a compromettre la scurit du e ` e e client souvre les portes du rseau distant. Cette ide si elle parait triviale est e e lourde de consquence car elle peut se traduire concr`tement par lacc`s a des e e e ` 42

partages NFS ou netBios, la modication dentres dans les annuaires Ldap, e lacc`s a la comptabilit de lagence de Grenoble, etc. e ` e En ralit cette situation fait immdiatement penser a une architecture e e e ` pare-feu de type Bastion. Il est important dexpliquer, et ceci rejoint lide que se fait W.R Bellovin(*) e des laboratoires Bell, que le terme de rewall est en ralit dans la plupart des e e cerveaux des administrateurs rduit a sa plus simple expression concr`te : le e ` e ltre de PDU(**) (Protocol Data Unit) suivant le niveau OSI o` lon se trouve. u

(*) Steven M Bellovin est chercheur pour les laboratoires Bell AT&T et est un pionnier des scientiques qui se sont penchs sur la question de la scurit e e e et du chirement, il est membre de la National Academy of Engineering . (**) lunit de donne de chaque couche OSI comme les N-PDU (N comme e e Network) peuvent tre des datagrammes IP ou les T-PDU (T comme e Transport) peuvent tre des segments dans le cas de TCP , les LPDU (L e comme Link) des trames dans le cas de la couche de liaison. On devrait en ralit parler d architectures pare feu , les deux plus courantes sont les e e suivantes :

Une seule DMZ (partie du rseau dans restriction dacc`s) : e e

Et larchitecture en bastion cite plus haut ou une seule et mme machine e e ddie constitue le rewall (ltre de paquets), ce peut tre un routeur (Cisco e e e 43

propose des ltres dans ses routeurs) ou une machine avec un syst`me rduit a e e ` sa plus simple expression. Cette solution nest pas moins scurise que lautre plus complexe cela dpend e e e enti`rement du contexte. e Revenons a notre situation du client VPN dans son rseau priv, la premi`re ` e e e solution qui vient a lesprit est de scuriser le client en faisant des mises a jour ` e ` rguli`res du noyau, du syst`me (dmons, softs) et de ltrer correctement via e e e e un pare feu comme iptables etc. En ralit, la porte dentre du rseau distant a t dport dans ce rseau e e e e ee e e e local et ncessite une architecture un minimum scurise et en loccurrence e e e centraliser la scurisation sur le client revient a en faire un bastion du point de e ` vue du rseau distant. e

7.2.1

Questions sur les protocoles utiliss e

Les protocoles utiliss dpendent bien sr au moins du type de VPN que e e u lon met en oeuvre Ici nous prendrons comme cas les VPN lgers du type PPP e over SSH. Dans ce paragraphe il est question des protocoles qui font lobjet de la scurisation (couche OSI >2) et non de ceux sous-jacents a un rseaux local. e ` e

Sur le papier le fait dutiliser par exemple RSA en algorithme de chirement symtrique pour rendre la cl de session secr`te pourrait laisser imaginer que e e e cette phase est sre or en passant par lattaque frontale par factorisation de la u cl publique RSA (n=pq et PGCD(p,q)=1) a celles bases sur le mauvais choix e ` e de lexposant publique (WIENER, DE WEGER) entre autres ou la simple faille dimplmentation ou de protocole il nest pas cens de faire conance en e e du chirement sans se poser de questions. Par ailleurs GnuPG propose par exemple en plus de leur outil un petit utilitaire dit gnrateur dentropie (` dcortiquer !) ce qui montre bien que leur seul outil e e a e ne peut tre en soi une solution a tous les probl`mes. e ` e

Si grer les trousseaux de cl de faon non automatique rduit les chances e e c e en apparence de voir lintgrit de ces donnes compromises il nen nest rien. e e e Ladministrateur qui envoie ces donnes par mail par exemple doit sassurer de e la scurit (condentialit, intgrit) des connexions gnres. En loccurrence, e e e e e e e e le fait que le message en clair (donnes qui suivent la commande DATA du e protocole SMTP termines par un . nal) circule sur parfois plusieurs e relais SMTP fait dors et dj` trembler . Quelquun pourrait rtorquer quil est ea e possible de chirer le message avec GnuPG par exemple. Oui mais comment se 44

communiquer les cls publiques ? Le poisson se mort la queue. e Lutilisation de certicats signs (digest) par une autorit de certication e e comme Verisign oblige dun part a dpenser de largent et dautre part a faire ` e ` conance a un tiers. ` En ralit le protocole dchange des cls dans le cas dune grosse infrase e e e tructure se doit dtre automatis car personne na le temps de grer cette e e e phase. Des protocoles comme IKE proposent une solution.

7.3
7.3.1

Les architectures Rseaux : Le prim`tre des VPN e e e


Passerelle mais pourquoi ?

Avant toute chose, considrons un cas tr`s prsent aujourdhui dun e e e rseau local Ethernet avec par exemple des Vlan taggus, des routeurs pour e e interconnecter les dirents rseaux et une passerelle dvoue pour permettre e e e e aux stations du rseau interne daccder au Net. e e Une des caractristiques de linter connecteur nomm passerelle est quil e e est capable dassurer la traduction dun protocole de niveau OSI Rseau (couche e 3). Concr`tement un routeur pourra interconnecter deux rseaux HDLC et e e CSMA/CD (Ethernet) alors que la passerelle elle pourra interconnecter deux rseaux IP et X25 respectivement. e La raison pour laquelle on appelle dans notre cas lacc`s au Net une passerelle e est quelle assure la traduction entre le monde OSI (CSMA/CD(IP(TCP par exemple) avec un monde non OSI (le net) bas sur TCP/IP. e Autrement dit les donnes de niveau 2 transmises par la station initialement e (adresse MAC sur 48 bits, donnes etc.) ne seront pas communiques au monde e e extrieur par la passerelle. e Cette explication est ncessaire car cest justement ce monde l` que les e a VPN proposent de scuriser. Le prim`tre des VPN est donc cens se limiter a e e e e ` scuriser linterconnexion via Internet de rseaux locaux pour donner lillusion e e dun rseau priv (adresse IP de type priv A, B, C) alors que tout passe par e e e Internet.

7.3.2

Attaque ARP (couche de liaison OSI)

Si les couches plus basses comme CSMA/CD sont utilises alors il est e possible dexploiter des failles de ces couches qui, plus elles sont de bas niveau (les failles et les couches), plus il est dicile de les contrer.

45

Parlons maintenant un peu de lattaque d ARP cache poisonning dans notre cas. Sans expliquer en dtail le fonctionnement dARP/RARP il est important e de savoir que ce protocole est du type cry for help cest-`-dire bas sur un a e requte de type who-is en broadcast (@mac de destination FF-FF-FF-FFe FF-FF) pour demander a qui de droit a quelle adresse MAC correspond telle ` ` adresse IP. Le propritaire habituel ou occasionnel (DHCP) de cette adresse IP e va recevoir cette trame comme tout le monde et rpondre cette fois en unicast e quil poss`de telle adresse MAC. e Cependant ce genre de conversations gn`re du trac rseau et un syst`me e e e e de cache ARP est utilis pour ne pas demander a chaque fois qui est qui. Cest e ` la raison pour laquelle le temps de rponse au premier ping (message ICMP e de type echo, type 8 code 0) sur une machine du rseau local est toujours plus e grand que les suivants. Excuter une requte ARP en unicast (autoris par la RFC) pour demander e e e une conversion en forgeant sa propre trame (arp-sk de frederic Raynal ou Nemesis pour win32) en usurpant lidentit IP dun hte mais avec sa propre e o adresse MAC occasionnera une mise a jour du cache ARP du destinataire avec ` de fausses donnes. Plus tard le destinataire enverra a lIP de lattaquant toutes e ` les trames destines a lhte dont lidentit rseau aura t usurpe. e ` o e e ee e Une solution qui nen est pas une est le cache statique (lourd a administrer) ` mais Sun propose sous Solaris daugmenter la frquence de rafra e chissement du cache ARP. Dans notre cas prcis du client VPN qui tente de joindre son serveur en e chirant ses donnes il mettra comme tout le monde une trame CSMA/CD e e vers la passerelle mais avec ladresse MAC de lattaquant qui pourra par exemple faire un drop de toutes les trames (option -mac de iptables) venant du client et crer ainsi un dnis de service. e e La conclusion de cette simulation est que mme un VPN est soumis aux e failles de couches OSI dont il na pas a soccuper. `

7.3.3

Les failles dimplmentation e

Les failles dimplmentation des VPN sont facilement accessibles pour qui e acc`de le rseau des rseaux via des sites comme securityfocus , secue e e riteam ou les listes de diusion spcialises (bugtrack). Certains articles de e e Phrack pourraient tre amens a en parler un jour donc il faut les lire (en e e ` anglais)

46

Nous citerons 3 failles a titre dexemple a savoir la vulnrabilit IPSEC ` ` e e CISCO du group password qui peut occasionner des dtournements de sese sions ou des attaques du type Man In the Middle Ref : http ://www.cisco.com/warp/public/707/cisco-sn-20040415-grppass.shtml Ou encore la faille SSL trouv par lcole polytechnique de Lausanne en e e Fvrier 2003 Ref : http ://lasecwww.ep.ch/memo ssl.shtml e Enn la plus rcente de Avril 2004 : e Cible : gentoo Soft : le package Racoon http ://www.linuxsecurity.com/advisories/gentoo advisory-4207.html Il en existe dautres comme des buers overows des clients VPN Cisco par exemple dans direntes zones (heap stack bss etc.) de la mmoire pour excuter e e e du code malveillant via un shellcode.

7.4
7.4.1

Avantages et inconvnients de la solution PPP e


TCP over TCP

Encapsul au sein du champ DATA dun segment TCP rien de moins quun e autre segment TCP peut tre lourd de consquence car il sagit ici dun mode e e de connexion connect synchrone. Sans entrer trop dans le dtail et les notions e e de piggybacking et dacquittement de trame, il faut savoir quapr`s la phase e dinitiation de connexion TCP appele TCP three way handshake qui a pour but e la synchronisation de part et dautre du rseau les segments TCP sont squencs e e e par un numro de squence initialement choisi alatoirement ISN (*). Ce numro e e e e incrment de la taille des donnes transmises (explicit data segment length) va e e e donner le numro dacquittement de ce segment. e (*) La commande Hping2 permet de visualiser les Numros de squence TCP. e e Source : man hping2 #hping2 win98 --seqnum -p 139 -S -i u1 -I eth0 HPING uaz (eth0 192.168.4.41): S set, 40 headers + 0 data bytes 2361294848 +2361294848 2411626496 +50331648 2545844224 +134217728 2713616384 +167772160 2881388544 +167772160 3049160704 +167772160 3216932864 +167772160 3384705024 +167772160 3552477184 +167772160 3720249344 +167772160 3888021504 +167772160 4055793664 +167772160 4223565824 +167772160

47

Dans le cas dun probl`me dordonnancement de segment, lmetteur rmet e e ee le segment dit perdu. Mais pour laisser une chance a son pair il est possible de ` spcier un taille de fentre de transmission (deuxi`me demi mot de 16 bits du e e e 4`me octet de lentte xe du segment TCP). Dans le cas prcdent, la fentre e e e e e sera dcrmente de la taille de la donne transmise. e e e e

Ce mcanisme est en plus appuy sur le biggybacking cest-`-dire que un e e a pair acquitte le segment prcdemment reu en mme temps quil en envoie un e e c e nouveau.

Il est simple dimaginer que ce time-out sil est dirent dans le segment e TCP p`re et dans son ls encapsul peut gnrer jusqu` la terminaison de la e e e e a connexion. Citons comme solution a ce probl`me, lexemple de CIPE (Olaf Titz), qui ` e lui fonctionne en UDP cest-`-dire en mode non connect ce qui ote les soucis a e de synchronisation en gnral. e e

Cependant la solution de PPPD comme il est dit dans la revue MISC n 10 ne ncessite pas dinstallation de logiciels supplmentaires et mme si SSH peut e e e sourir de certaines faiblesses, il reste un standard pour scuriser la connexion e entre un client et un serveur.

48

Rfrences ee
[1] MISC numro 10, http ://www.miscmag.com e [2] TooLinux, http ://www.toolinux.com/linutile/reseau/tunnel/index2.htm [3] Stunnel, http ://www.stunnel.org [4] Natecarlson.com, http ://www.natecarlson.com/linux/ipsec-x509.php [5] Jussieu.fr, https ://www-ext.lmcp.jussieu.fr/informatique/IPSec/IPSec.htm [6] Laboratoire-microsoft.org, http microsoft.org/articles/network/ipsec/#installation [7] Securiteinfo.com, http ://www.securiteinfo.com [8] Guill.net, http ://www.guill.net [9] 194.51.152.252 http ://194.51.152.252/documentation.htm. [10] FireWall et Scurit Internet S.M Bellovin & W.R Cheswick e e [11] Cours sur TCP de Berbard Cousin, Universit de Rennes I e [12] Projet Inside Networks http ://www.insidenetworks.net [13] Projet freeswan http ://www.freeswan.org [14] Projet openswan http ://www.openswan.org [15] Linux IPSec Overview http ://www.linux-tech.com/fswan.html ://www.laboratoire-

49

Вам также может понравиться