Rapport du Projet IPv6
Astruc Benoit, Silohian Christophe
3 mars 2005
Table des mati` eres
Introduction . . . 3
1 Polytech’Lille 4 1.1 Pr´esentation de l’´ecole . . . 4
1.2 Pr´esentation du service Informatique . . . 5
2 IPv6 6 2.1 IPv6, c’est quoi ? . . . 6
2.1.1 Syst`eme d’adressage . . . 6
2.1.2 Mobilit´e . . . 9
2.1.3 S´ecurit´e . . . 9
2.2 Les atouts d’IPv6 . . . 10
2.3 Le r´eseau IPv6 `a Polytech’Lille . . . 12
3 La s´ecurit´e sur le r´eseau 13 3.1 Principes de la s´ecurit´e . . . 13
3.1.1 Algorithmes de chiffrement . . . 13
3.1.2 Les diff´erents services de s´ecurit´e . . . 13
3.1.3 Les attaques classiques . . . 14
3.2 La s´ecurit´e appliqu´ee pour IPv6 . . . 15
3.2.1 Les extensions de s´ecurit´e . . . 15
3.2.2 Associations et polices de s´ecurit´e . . . 15
4 D´eroulement du Projet 17 4.1 Chronologie . . . 17
4.2 Travaux pr´eliminaires . . . 18
4.2.1 Mise en place du mat´eriel . . . 18
4.2.2 Prise de contact IPv6 . . . 19
4.3 Travaux r´ealis´es . . . 22
4.3.1 D´efinition des besoins . . . 22
4.3.2 Setkey . . . 22
4.3.3 Racoon . . . 23 1
TABLE DES MATI `ERES 2
4.3.4 Isakmpd . . . 23
4.3.5 FreeS/WAN . . . 24
4.3.6 IPsec en noyau 2.4.24 . . . 24
4.4 Protocole de d´eploiement . . . 24
4.4.1 Installer le dernier noyau . . . 24
4.4.2 Installer les outils g´erant IPsec . . . 25
Conclusion 26 R´ef´erences 28 Glossaire 29 Annexes 32 Script d’installation . . . 32
Fichier de configuration automatique de setkey (ipsec.policy) . 34 Fichier de configuration de racoon (racoon.conf) . . . 35
Fichier de lancement de racoon (/etc/init.d/racoon) . . . 36
Fichier de configuration manuelle de setkey . . . 37
isakmpd.conf . . . 38
RFC3513 : Inversion du ”u” bit . . . 40
Liste de site accessibles en IPv6 . . . 41
Introduction
Depuis sa cr´eation en 1973, le protocole IP(Internet Protocol) est de- venu le protocole standard en mati`ere de communication r´eseau. Aujourd’hui, toutes les machines connect´ees `a Internet utilisent IP. Mais au vu de l’accrois- sement de plus en plus important du nombre de machines reli´e `a Internet, le nombre d’adresses IP disponibles a diminu´e de fa¸con consid´erable.
C’est pour palier `a ce probl`eme qu’est n´e en 1992 l’IPv6 (l’actuelle g´en´e- ration est appel´e IPv4). En effet, grˆace `a un syst`eme d’adressage sur 128 bits, le nombre d’adresse disponible est multipli´e par 296. C’est l’IETF(Internet Engineering Task Force), l’un des organismes de standardisation de l’Internet qui est charg´e de d´efinir le nouveau protocole. En plus d’y apporter l’aug- mentation du nombre d’adresses disponibles, l’IETF a d´ecid´e d’apporter un certain nombre d’am´eliorations au protocole comme par exemple, la mobi- lit´e ou la s´ecurit´e, inexistantes en IPv4. A l’heure actuelle, IPv6 n’est qu’en phase de d´eploiement. Mˆeme si le protocole est d´ej`a en place, l’instauration des adresses priv´ees en IPv4 a ralentit l’essor d’IPv6. Ce sont essentiellement les asiatiques et les europ´eens qui d´eveloppent le plus de r´eseaux IPv6, ´etant donn´e que les am´ericains sont loin d’avoir ´epuis´e toutes leurs adresses IPv4.
Parmi les organismes qui ont jug´e indispensable de d´eployer ce protocole, on retrouve l’´ecole Polytech’Lille.
Si IPv6 est implant´e et fonctionnel, il n’est pas encore s´ecuris´e. Et c’est dans cette optique de s´ecurisation des communications que Xavier Redon nous a demand´e de travailler. Le but du projet est de pouvoir ´etablir des communications authentifi´ees et chiffr´ees sur tout le r´eseau de l’´ecole, entre serveurs, entre machines clientes et serveurs et entre machines clientes.
Dans ce d´eveloppement, apr`es avoir pr´esent´e l’´ecole et son service infor- matique, nous allons expliquer ce qu’est IPv6, ses atouts et ce qui existe d´ej`a
`
a Polytech’Lille. Nous d´etaillerons ensuite tout ce qui concerne la s´ecurit´e sur le r´eseau. Et pour finir, nous commenterons nos travaux.
En esp´erant que la lecture de ce document vous inspire en vue de s´ecuriser vos propre r´eseaux.
3
Chapitre 1
Polytech’Lille
1.1 Pr´ esentation de l’´ ecole
L’´ecole Polytechnique Universitaire de Lille (Polytech’Lille) est une ´ecole d’ing´enieur implant´ee sur le centre universitaire scientifique de Villeneuve d’Ascq. Autrefois appel´ee EUDIL (´Ecole Universitaire D’Ing´enieur de Lille), l’´ecole a ´et´e fond´e en 1969.
Aujourd’hui, Polytech’Lille poss`ede 8 d´epartements d’enseignements, tous touchant `a des domaines diff´erents :
– IMA : Informatique, Mesure, Automatique.
– ITEC : Instrumentation Technique Et Commerciale.
– GIS : G´enie Informatique et Statistique.
– GTGC : G´enie Thermique, G´enie Civile.
– CM : Construction M´ecanique.
– SM : Sciences des mat´eriaux.
– IAAL : Institut Agro-Alimentaire de Lille qui avant, ´etait une ´ecole ind´ependante et qui a fusionn´e avec l’EUDIL pour donner Polyte- ch’Lille.
– IESP : Ing´enieur d’Exploitation des Syst`emes de Production. Unique- ment reserv´e aux formations continues ayant une exp´erience profession- nel d’au moins 3 ans.
Chaque d´epartement `a la possibilit´e de d´elivrer le diplome d’Ing´enieur par la voie de la formation continue. A ces 8 d´epartements s’ajoute ´egalement 3 Masters :
– Cost Engineering.
– Design Strat´egique.
– G´enie de l’eau.
4
CHAPITRE 1. POLYTECH’LILLE 5 Polytech’Lille fait partie de deux r´eseaux d’´ecoles d’ing´enieur. Le premier, cr´e´e en 1991-92 est le r´eseau Eiffel. Ce r´eseau regroupait `a sa cr´eation trois
´
ecoles d’ing´enieurs : en plus de l’EUDIL, on y trouvait l’ISIM Montpellier (aujourd’hui devenu Polytech’Montpellier) et le CUST de Clermont-Ferrand.
Puis par la suite, l’ISTG de Grenoble (devenu depuis Polytech’Grenoble) est venu s’y adjoindre. Le second r´eseau est le r´eseau Polytech qui se d´eveloppe de plus en plus dans toute la France. En plus de Lille, Nantes, Marseille, Montpellier, Grenoble, Orl´ean et Tours en font partie.
1.2 Pr´ esentation du service Informatique
L’´ecole poss´ede un parc informatique de grande ampleur. Plus de 600 postes sont connect´es en r´eseau. Pour maintenir ce parc, l’´ecole poss`ede un service informatique compos´e de six personnes :
– Jean-Michel Duthilleul : enseignant et co-responsable du service – Xavier Redon (notre tuteur) : enseignant et co-responsable du service – Patrick Menager : ing´enieur
– Juliette Loiseleux : ing´enieur (80%) – Dominique Fran¸cois : technicien – Dominique Golpart : technicien (50%) Le service informatique a pour but :
– D’installer syst`emes d’exploitation et logiciels sur chaque machine.
– D’effectuer la maintenance du mat´eriel.
– De g´erer les comptes des ´etudiants et du personnel.
– De controler le bon fonctionnement d’un r´eseau qui comprend plus de 10 serveurs, environ 150 kilom`etres de cˆables, 2 routeurs, 60 commuta- teurs.
– De g´erer le service de messagerie (cr´eation des listes de diffusion, controle anti-virus des pi`eces jointes, etc).
– De g´erer tous ce qui concerne l’acc`es `a Internet.
C’est ce mˆeme service informatique qui a d´ecid´e de mettre en place le pro- tocole IPv6 sur le r´eseau de l’´etablissement. Aujourd’hui, c’est dans le cadre du d´eveloppement du r´eseau que avons ´et´e charg´e de s´ecuriser ce protocole.
Chapitre 2 IPv6
2.1 IPv6, c’est quoi ?
Ce chapitre n’a pas pour but de tout expliquer sur IPv6. Il existe des livres [2] qui font cela tr`es bien... en 430 pages. Nous irons donc `a l’essentiel en expliquant les changements les plus visibles et les plus important.
Le protocole IPv6 a ´et´e mis en place dans le but de remplacer le protocole IPv4 dont le nombre d’adresse disponible commence `a s’essoufler. C’est ce changement qui est le plus visible aux yeux des utilisateurs. Donc, pour bien comprendre IPv6, faut d’abord comprendre son syst`eme d’adressage. Nous poursuivrons par la mobilit´e et la s´ecurit´e qui n’existait pas sur IPv4.
2.1.1 Syst` eme d’adressage
Si l’adresse IPv4 est cod´ee sur 32 bits, exprim´ee en d´ecimal et subdivis´ee en 4, chaque subdivision ´etant s´epar´e par un ’.’, l’adresse IPv6 est elle cod´ee sur 128 bits, exprim´ee en hexad´ecimal et subdivis´ee en 8, chaque subdivision
´
etant s´epar´e par un ’ :’.
Adresse IPv4 : 192.168.0.13
Adresse IPv6 : 2001:660:4401:6004:74ff:fe14:e2
A la diff´erence d’IPv4 o`u toutes les valeurs de l’adresse doivent ˆetre saisies, IPv6 accepte de raccourcir l’adresse en cas de ’0’ successifs. Ainsi, l’adresse fe80:0:0:0:208:74ff:fe14:e2 pourra s’´ecrire fe80::208:74ff:fe14:e2.
Cette abr´eviation ’::’ ne peut se retrouver qu’une fois dans toute l’adresse.
Ceci afin d’´eviter toute confusion. L’adresse fe80:0:0:20:0:0:ff18:82ab ne pourra pas s’´ecrirefe80::20::ff18:82abcar on ne sait pas dans ce cas-l`a
6
CHAPITRE 2. IPV6 7 combien de ’0’ successifs se trouvent `a chaque abr´eviation. Une telle adresse pourra donc s’´ecrire de deux mani`eres diff´erentes :
– fe80::20:0:0:ff18:82ab ou – fe80:0:0:20::ff18:82ab.
L’´ecriture du pr´efixe est par contre identique `a IPv4. En IPv4, pour ´eviter d’´ecrire tout le masque r´eseau, ce qui est souvent fastidieux (255.255.255.0), l’abr´eviation /24 a fait son apparition. Cette abr´eviation signifie que les 24 premiers bits du masque sont `a 1 et les autres `a 0. Vu la taille importante des adresses IPv6, cette abr´eviation s’est vite montr´e indispensable car au lieu de taperffff:ffff:ffff:ffff:0:0:0:0, mettre /64 `a la fin de l’adresse se r´ev`ele bien plus pratique. Pour ´eviter l’ambigu¨ıt´ee du symbole ’ :’ qui est aussi utilis´e pour sp´ecifier le num´ero du port dans une URL, les symboles ’[
]’ devront entourer l’adresse afin de bien distinguer adresse et port ; – http://2001:1234:5678::1:8000 :ambigu¨ıt´e
– http://[2001:1234:5678::1]:8000 :ici, on comprend parfaitement que l’on souhaite acc´eder `a l’adresse 2001:1234:5678::1 par le port 8000.
Il n’existe pas un mais trois types d’adresses. Les types d’adresses sont : – Adresse unicast
– Adresse multicast – Adresse anycast
L’adresse unicast est l’adresse la plus simple car elle d´esigne une machine unique. Un paquet envoy´e `a cette adresse n’arrivera qu’`a une seule interface.
A cette adresse unicast existe deux type d’adresses :
– Adresse lien local (adresse r´eseau priv´e, non routable sur Internet) – Adresse lien global (adresse routable sur Internet)
Une machine poss`ede donc deux adresses IPv6 : une locale au r´eseau qui a pour pr´efixefe80::/10(c’est `a dire toutes les adresses comprise entre fe80 : : et fe8c : : non inclu) et qui a une dur´ee de vie illimit´ee, et une adresse globale routable sur Internet qui a pour prefixe 2000::/3 (c’est `a dire toutes les adresses comprises entre 2000:: et4000:: non inclu).
A ces deux types d’adresses que toutes les machines poss`edent (sauf celles non connect´ees `a Internet qui n’ont que l’adresse locale), il existe d’autres types d’adresses unicast :
– Adresse indetermin´ee (::) qui est utilis´ee uniquement pendant l’initia- lisation du protocole.
– Adresse de bouclage (::1) ´equivalente `a l’adresse 127.0.0.1 en IPv4 (adresse localhost)
– Adresse IPv4 mapp´ee de la forme ::ffff:a:b:c:d o`u a:b:c:d est
CHAPITRE 2. IPV6 8 l’adresse IPv4 de la machine. Ce type d’adresse peut ´egalement s’´ecrire sous la forme ::ffff:XXXX:YYYY o`u XXXX:YYYY est la version hexad´e- cimale dea:b:c:d. Cette adresse sert `a communiquer en IPv4 avec une machine IPv4 tout en restant dans une famille d’adresse IPv6.
– Adresse IPv4 compatible sous la forme ::a:b:c:d ou ::XXXX:YYYY avec a:b:c:d, l’adresse IPv4 de la machine etXXXX:YYYY son ´ecriture hexad´ecimale. Cette adresse sert `a communiquer avec une machine IPv6 par le biais d’un tunnel IPv6/IPv4.
Le deuxi`eme type d’adresse est l’adresse multicast. Elle est ´equivalente `a une adresse broadcast en IPv4, c’est `a dire une adresse qui d´efinit un groupe d’interface. Envoyer un paquet `a une adresse multicast revient `a envoyer un paquet `a toutes les machines du r´eseau. Ce type d’adresse a pour pr´efixe ff00::/8.
Enfin, la derni`ere, l’adresse anycast d´efinit aussi un groupe d’interface.
Mais `a la diff´erence de l’adresse multicast, le paquet envoy´e n’arrivera qu’`a une machine du r´eseau.
Il est vrai que les adresses IPv6 sont beaucoup plus longues que les adresses IPv4 et donc, plus fastidieuses `a taper. Mais le syst`eme d’autoconfiguraton des machines simplifie grandement la tache. Le m´ecanisme est tr`es simple.
Prenons le cas d’une configuration pour une adresse locale. L’autoconfigu- ration de l’adresse se fait `a partir de l’adresse MAC de la carte (autre- ment dit, son adresse physique) et en y rajoutant un pr´efixe. Illustrons ceci par un exemple : prenons une machine qui poss`ede comme adresse MAC 00-0c-29-c2-52-ffnot´ee sur 48 bits. Le m´ecanisme d’autoconfiguration va d’abord ajouter les bits 0xfffe `a partir du 24e bit de l’adresse MAC. On obtient un mot de 64 bits 00-0c-29-ff-fe-c2-52-ff. La seconde mani- pulation consiste `a inverser le 7e bit du premier octet afin de respecter la RFC3513[7] d´ecrivant le m´ecanisme EUI-641. On obtient donc un nouveau mot de 64 bits 02-0c-29-ff-fe-c2-52-ff. R´e´ecrivons ce mot `a la mani`ere IPv6 : 020c:29ff:fec2:52ff. Pour finir, il est ajout´e `a ce mot de 64 bits, un autre mot de 64 bits qui est le prefixe des adresses locales (fe80 : :/64).
R´esultat : sans que l’utilisateur n’ait `a configurer quoi que ce soit, sa machine a d´ej`a une adresse locale qui estfe80::20c:29ff:fec2:52ff. Le m´ecanisme est `a peu pr`es similaire pour les adresses globales, en ce qui concerne les 64 derniers bits.
1Pour plus de d´etails consulter l’annexe : 4.4.2
CHAPITRE 2. IPV6 9
2.1.2 Mobilit´ e
Une avance importante de l’IPv6 est le concept de mobilit´e. En IPv4 lors- qu’on d´epla¸ce un ´equipement dot´e d’une adresse IP2que nous nommerons par la suitemobile, il est n´ecessaire de reconfigurer son adresse IP manuellement et il n’existe alors plus aucun lien entre son ancienne adresse et la nouvelle.
La seule fa¸con pour le mobile de communiquer avec son r´eseau d’origine est alors de cr´eer un r´eseau priv´e virtuel (VPN :Virtual Private Network). Une solution qui est loin d’ˆetre facile `a mettre en oeuvre.
En IPv6 un mobile aura un r´eseau m`ere et une adresse m`ere. L’objectif de la mobilit´e est de faire en sorte que le mobile soit toujours joignable `a son adresse m`ere quel que soit le r´eseau auquel il est connect´e.
Cela est r´ealis´e de la fa¸con suivante : lorsque le mobile est connect´e `a un sous- r´eseau ´etranger il obtient, avec les m´ecanismes d’autoconfiguration d’IPv6, une adresse temporaire. Il contacte alors un routeur situ´e sur son sous-r´eseau m`ere et lui indique l’association de son adresse m`ere et de son adresse tem- poraire. A partir de ce moment-l`a le routeur devient l’agent m`ere du mobile et fera office de proxy, il interceptera tous les paquets destin´es `a l’adresse m`ere du mobile et les tunnellera `a son adresse temporaire.
2.1.3 S´ ecurit´ e
Ce chapitre ne d´etaillera pas toute la partie s´ecurit´e. Nous parlerons uni- quement de la couche IPsec d’IPv6. Tout ce qui touche `a la s´ecurit´e dans un r´eseau sera d´etaill´e dans la seconde partie.
Lors de la mise en place de ce protocole, l’IAB (Internet Architecture Board) a demand´e `a ce qu’IPv6 poss`ede une couche s´ecurit´e, non pr´esente en IPv4. Cette couche de s´ecurit´e (IPsec) doit permettre de s´ecuriser plus facilement les r´eseaux de mani`ere plus l´eg`ere alors que sur IPv4, la plupart des syst`emes courants n’impl´ementent rien `a ce niveau-l`a.
L’IETF a d´ecid´e d’inclure dans les fonctionnalit´es d’IPsec trois services indispensables pour prot´eger les donn´ees contre des attaques telles que l’usur- pation d’identit´e (IP spoofing) et l’´ecoute du traffic sur un r´eseau (IP snif- fing) :
– La confidentialit´e des donn´ees.
– L’int´egrit´e des donn´ees.
2tel qu’un ordinateur portable, mais cela pourrait aussi ˆetre un t´el´ephone portable ou n’importe quel ´equipement r´eseau embarqu´e `a bord d’un avion, d’un bateau, d’une voiture...
CHAPITRE 2. IPV6 10 – L’authentification de l’origine des donn´ees.
Pour mettre en place ces services, l’IETF a d´efini deux nouvelles extensions IP de s´ecurit´e dans la RFC1752[9] qui sont les extensions AH (Authentication Header ou en-tˆete d’authentification) et ESP (Encapsulation Security Pay- load ou extension de confidentialit´e). Les deux extensions offrent les services d’authentification, d’int´egrit´e ainsi que la detection de rejeu. L’AH offre en plus le service de non r´epudiation (non dissimulation d’identit´e). L’ESP offre quand `a lui la confidentialit´e des donn´ees et du flux.
La protection des communications grˆace `a ces deux extensions permet de communiquer :
– Directement d’une machine `a l’autre.
– Entre deux machines passant par des passerelles tels qu’un routeur ou un pare-feu.
– Entre une machine et une ou plusieurs passerelles.
Deux modes permettent d’´etablir ces communications :
– Le mode transport qui prot`ege la charge utile des paquets. Ce mode n’est utilisable que sur des ´equipements terminaux.
– Le mode tunnel qui prot`ege tous les paquets en les faisant passer par un tunnel IP.
Malgr`es tout ce qui a ´et´e mis en place dans le but de s´ecuriser les r´eseaux, IPsec n’est pas exempt de critiques. La principale ´etant la diminution des performances du r´eseau en terme de d´ebit `a cause notamment des op´erations de chiffrements et d´echiffrements des communications mais ´egalement des op´erations de g´en´erations et de v´erifications d’identit´e lourdes en temps de calcul. Il existe d’autres lacunes mais qui seront expliqu´ees dans la partie II consacr´ee enti`erement `a la s´ecurit´e.
2.2 Les atouts d’IPv6
IPv6 n’a pas ´et´e mis en place dans le seul but de proposer un protocole suppl´ementaire. Il doit, `a terme, remplacer le protocole actuel IPv4. l’IETF, ne souhaitant pas faire une photocopie de l’actuel protocole, a cr´e´e l’IPv6 dans le but de combler les lacunes d’IPv4.
La principale lacune ´etant le nombre d’adresses routables sur Internet. Comme
`
a la base, IPv4 n’avait pour but d’interconnecter qu’une petite centaine de machines, les 232adresses ´etaient largement suffisantes. Avec le d´eveloppement d’Internet, ce n’est plus le cas. IPv6 r´esout le probl`eme en proposant 2128 adresses possible soit environ 1500 machines connect´ees au m`etre carr´e de planete, oc´eans inclut.
CHAPITRE 2. IPV6 11 La seconde am´elioration porte sur la taille des tables de routage qui, en IPv4, sont vite devenues disproportionn´ees `a cause du d´eveloppement du nombre de r´eseaux sur l’Internet. Ce d´eveloppement rend la maintenance des tables de plus en plus complexe. Pour r´esoudre ce probl`eme des tables de routage, une solution d’agr´egation de r´eseaux contigus en un seul pr´efixe a ´et´e mis en place. C’est le CIDR (Classless Inter Domain Routing). Le CIDR permet d’´etablir une structuration hi´erarchique de l’adressage. Cette solution a ´et´e int´egr´ee dans les protocoles de routage ce qui permet de router des ensemble de r´eseaux de mani`ere plus ais´ee. Le CIDR devait, dans un premier temps, ˆetre mis en place pour IPv4. Mais la petite taille des adresses ne permettait pas une bonne structuration, sans compter que de nombreuses adresses sont allou´ees depuis plusieurs ann´ees. En IPv6, ces probl`emes sont r´esolu car :
– D`es le d´ebut le plan d’adressage est hi´erarchique, ´eliminant les longs pr´efixes.
– Les sites multi-domicili´es poss´ederont autant d’adresses que de fournis- seurs, permettant ainsi de garantir une agr´egation.
– Des m´ecanismes de renum´erotation automatique permettent aux sites de changer facilement de pr´efixe quand cela est n´ecessaire.
Si pour l’instant le plan d’adressage le plus adapt´e est le plan hi´erachique, d’autres r`egles pourrait voir le jour (par exemple coordonn´ees g´eographiques).
L’IETF veut en fait imposer une certaine rigueur concernant l’allocation des adresses IPv6 afin d’´eviter le probl`eme que connait actuellement IPv4 : des tables de routage beaucoup trop volumineuses.
Grˆace `a l’IPv6, l’IETF a r´eussi `a r´esoudre les deux probl`emes majeurs de l’IPv4 : le manque d’adresse et l’explosion des tables de routage. Mais aussi
`
a am´eliorer le protocole en y rajoutant les fonctions d’autoconfiguration des terminaux (rien de concret `a l’heure actuelle pour l’autoconfiguration des routeurs), de mobilit´e et de s´ecurit´e. L’autoconfiguration des machines est un formidable atout pour tout les r´eseaux non administr´es tels que dans les PME/PMI ou chez les particuliers.
D’apr`es le cahier des charges qui a ´et´e fix´e par l’IESG (Internet Engineering Steering Group) lors de la cr´eation de l’IPng (IP new generation), IPv6 est capable :
– D’adresser au moins un milliard de r´eseaux.
– De proposer un plan de transition ”sans jour J”.
– De prendre en compte `a terme la mobilit´e, la r´eservation de ressources, les hauts d´ebits, etc.
CHAPITRE 2. IPV6 12
2.3 Le r´ eseau IPv6 ` a Polytech’Lille
Mˆeme si IPv6 est loin d’ˆetre finalis´e, l’´ecole Polytech’Lille a d´ecid´e d’an- ticiper en d´eployant ce protocole au sein de son r´eseau. Le pr´efixe IPv6 du r´eseau de l’´ecole est2001:660:4401:60/56. Le r´eseau est subdivis´e en sous r´eseaux dont les adresses sont de la forme 2001:660:4401:600x/60o`u x est le num´ero du vlan.
Il est possible pour n’importe quel ´etudiant de se connecter, en IPv6, sur une autre machine de l’´ecole en ex´ecutant la commande :
ssh -6 nom de la machine.escaut.net
D’autres services sont accessibles en IPv6 :
– Acc`es `a Internet (service HTTP : HyperText Transfert Protocol), uni- quement bien sˆur aux sites accessibles en IPv6 (Ex : www.kame.net, www.usagi.net, www.polytech-lille.fr, etc).
– Acc`es au service d’envoi de mail (service SMTPSimple Mail Transfert Protocol) par le biais du serveur de messagerie douaisis. Connexion `a celui-ci en IPv6 et envoi du mail en IPv6.
– Acc`es au service FTP (File Transfert Protocol) par l’adresse ftp.polytech- lille.fr.
– Etablissement de communication TCP (Transmission Control Proto- col), UDP (User Datagram Protocol) et ICMP6 (Internet Control Mes- sage Protocol).
Tous les services disponibles en IPv4 ne sont pas encore disponible en IPv6.
Certains n’y passerons jamais (Ex : Telnet). D’autres pourraient ˆetre amen´es
`
a y passer, dans la mesure du possible (Ex : Le service d’impression).
Si les administrateurs r´eseaux ont mis en place IPv6, ils n’ont pas encore touch´e `a la couche de s´ecurit´e IPsec. C’est `a dire que tout ce qui circule en IPv6 sur le r´eseau est en clair. Nous afficherons dans le chapitre quatre de ce rapport les tests que nous avons effectu´e, notamment sur le service SMTP o`u, grˆace au logiciel Ethereal disponible sur tous les syst`emes d’exploitations, nous avons pu visualiser en clair le message que nous avons envoy´e.
Chapitre 3
La s´ ecurit´ e sur le r´ eseau
3.1 Principes de la s´ ecurit´ e
3.1.1 Algorithmes de chiffrement
Chiffrement sym´etrique
L’une des deux familles d’algorithmes de chiffrement. Dans cette cat´egorie les deux entit´es connaissent et utilisent le mˆeme secret comme cl´e de chif- frement et de d´echiffrement. L’avantage de ces algorithmes est la rapidit´e
`
a laquelle s’effectue le chiffrement et le d´echiffrement. La phase d´elicate est celle de l’´echange de la cl´e de chiffrement.
Chiffrement asym´etrique
Dans cette deuxi`eme famille d’algorithmes de chiffrement, chaque cor- respondant utilise une paire de cl´e. Une cl´e publique servant `a chiffrer les messages que l’on veut lui envoyer et une cl´e priv´ee qui lui sert `a d´echiffrer les messages que l’on lui envoie. Il n’y a alors plus besoin d’´echanger de cl´e. L’inconv´enient de ces algorithmes est que leur temps de calcul est plus important que celui des algorithmes sym´etriques.
3.1.2 Les diff´ erents services de s´ ecurit´ e
En mati`ere de r´eseau lorsqu’on parle de s´ecurit´e il faut distinguer un grand nombre de services diff´erents :
– La confidentialit´e des donn´ees, sans doute la premi`ere `a laquelle on pense. R´ealis´ee par chiffrement `a cl´e sym´etrique pour des raisons de performances. Cette cl´e, appel´ee cl´e de session, est alors fr´equemment
13
CHAPITRE 3. LA S ´ECURIT ´E SUR LE R ´ESEAU 14 utilis´ee et doit donc avoir une faible dur´ee de vie, une deuxi`eme cl´e
´
etant utilis´ee pour n´egocier les nouvelles cl´es.
– La confidentialit´e du flux de donn´ees, qui vise non plus seulement `a garantir la confidentialit´e des donn´ees mais ´egalement `a interdire l’acc`es
`
a toute information sur ces donn´ees (quantit´e d’informations ´echang´ees, fr´equences, etc.) qui pourrait ˆetre d´eduites par analyse du trafic.
– L’authentification de l’origine des donn´ees, qui doit garantir que les donn´ees re¸cues proviennent bien de l’emetteur d´eclar´e.
– L’int´egrit´e des donn´ees, qui garantit que les donn´ees re¸cues n’ont pas
´
et´e modifi´ees durant leur transport.
– La non r´epudiation, qui doit ˆetre capable de prouver que des donn´ees ont bien ´et´e re¸cues ou envoy´ees en cas de litige.
– La pr´evention contre le rejeu de donn´ees, qui doit d´etecter si les donn´ees re¸cues ne l’ont pas d´ej`a ´et´e par le pass´e.
Afin d’assurer ces services de s´ecurit´e on utilise des m´ecanismes qui sont g´en´eralement bas´es sur le partage de cl´es secr`etes. Ce qui implique de mettre en oeuvre un protocole d’´echange de cl´es.
Ces protocoles d’´echange de cl´e v´erifient g´en´eralement tout ou partie des propri´et´es suivantes :
– Celle dite dePerfect Forward Secrecy garantit que la d´ecouverte d’une des cl´es de longue dur´ee (celles utilis´ees pour ´echanger les cl´es de ses- sions) ne permet pas `a un assaillant de d´echiffrer les messages chiffr´es par les cl´es de session g´en´er´ees auparavant.
– La protection de l’identit´e (Identity Protection), assure qu’aucune in- formation sur les partenaires en communication ne pourra ˆetre d´eduite par observation de leurs ´echanges sur le r´eseau.
3.1.3 Les attaques classiques
Au niveau IP, trois attaques classiques sont r´ealisables :
– l’IP sniffing, qui consiste pour un intrus `a ´ecouter le trafic passant sur le r´eseau afin d’obtenir des informations int´eressantes (mots de passe, contenu de courriels, etc.).
– l’IP spoofing, qui consiste `a usurper l’identit´e d’un ´equipement.
– l’IP flooding, qui consiste `a inonder un ´equipement de paquets IP, le rendant incapable de r´epondre aux requˆetes l´egitimes (et laissant le champ libre `a un intrus pour une attaque par IP spoofing).
CHAPITRE 3. LA S ´ECURIT ´E SUR LE R ´ESEAU 15 L’IP flooding´etant tr´es difficile `a contrer, l’IETF s’est concentr´e sur les deux autres attaques. C’est ce que nous allons voir dans la section 3.2
3.2 La s´ ecurit´ e appliqu´ ee pour IPv6
3.2.1 Les extensions de s´ ecurit´ e
Afin de lutter contre l’IP sniffing et l’IP spoofing, l’IETF, a d´efini deux nouvelles extensions IP de s´ecurit´e [RFC1752] :
– L’extension d’authentification (Authentication Headerou AH), qui rend les services d’authentification, int´egrit´e et optionnellement de d´etection de rejeux, voire de non-r´epudiation.
– L’extension de confidentialit´e (Encapsulating Security Payloadou ESP), qui peut rendre les services de confidentialit´e, int´egrit´e, authentification et d´etection de rejeux. Elle garantit de plus de fa¸con limit´ee la confi- dentialit´ee du flux.
Chacune de ses deux extensions peut ˆetre utilis´ee selon deux modes de protection :
– Le mode transport prot`ege la charge utile du paquet et certains champs de son en-tˆete.
– Le mode tunnel prot`ege tous les champs du paquet initial, qui est en- capsul´e dans un nouveau paquet donc certains champs sont prot´eg´es.
On peut alors assurer trois types de protection :
– de bout en bout, entre les deux stations communicantes, auquel cas ce sont les stations qui g`erent les extensions de s´ecurit´e.
– sur des segments de r´eseaux seulement, auquel cas un ´equipement de chaque cot´e du tunnel (le mode transport ne peut pas ˆetre utilis´e dans ce cas) est charg´e de g´erer les extensions de s´ecurit´e : c’est la ”passerelle de s´ecurit´e”.
– entre une station et une passerelle de s´ecurit´e.
3.2.2 Associations et polices de s´ ecurit´ e
La base des communications s´ecuris´ees en IPv6 est l’association de s´ecurit´e (Security Associationou SA). Elle contient l’ensemble des informations n´eces- saires `a l’´etablissement de ces communications. Une SA est identifi´ee de fa¸con unique par un triplet comprenant un indice de param`etre de s´ecurit´e (Secu- rity Parameters Index ou SPI), l’adresse du destinataire et le protocole de s´ecurit´e (AH ou ESP). Elle est unidirectionnelle, il faut donc deux SA pour
CHAPITRE 3. LA S ´ECURIT ´E SUR LE R ´ESEAU 16 qu’une communication bidirectionnelle soit ´etablie.
Une association de s´ecurit´e contient entre autre les param`etres suivants : – l’algorithme d’authentification, les cl´es de chiffrement,les param`etres
de synchronisation... utilis´es pour g´en´erer l’extension choisie.
– la dur´ee de vie de la SA, qui doit ˆetre r´eguli`erement renouvel´ee afin d’´eviter que des cl´es de chiffrement ne soient utilis´ees trop longtemps.
– le mode du protocole IPsec : tunnel ou transport.
L’ensemble des SA est contenu dans une base de donn´ee appel´ee le SAD (Security Association Database).
Le choix de la SA `a appliquer s’effectue en fonction des polices de s´ecurit´e d´efinies sur la machine. L’ensemble de ces polices de s´ecurit´e est regroup´e dans un SPD(Security Policy Database). Lorsqu’un paquet IP doit ˆetre ´emis, la pile IP va v´erifier dans le SPD si une politique de s´ecurit´e doit s’appli- quer `a ce paquet. Le cas ´ech´eant la pile IP ira chercher dans le SAD la SA correspondante.
Chapitre 4
D´ eroulement du Projet
4.1 Chronologie
– semaine 46 : R´eunion avec M. Redon pour sp´ecifier le travail `a fournir.
D´ecouverte du mat´eriel de maquette, recherche de documentation sur IPv6 et lecture des RFCs.
– semaine 47 : Installation d’une Debian et passage des deux postes `a un noyau 2.6-9.
– semaine 48 : Tests sur IPv6, capture de trames.
– semaine 49 : Pas d’avancement dans le projet du fait du travail `a fournir pour le dossier technique.
– semaine 50 : Documentation sur IPsec, premiers essais infructueux de chiffrement
– semaine 51 : Premiers tests r´eussis de chiffrement entre les deux ma- chines de maquette, en configuration manuelle.
– semaine 52 : Vacances de No¨el.
– semaine 01 : Vacances de No¨el.
– semaine 02 : D´em´enagement pour cause de changement de vlan dans la salle Titenka (le nouveau vlan ne permettant pas l’acc`es au r´eseau IPv6 de l’´ecole). Installation en Titus.
– semaine 03 : D´ecouverte de racoon
– semaine 04 : Multiples tests avec racoon sur noyau 2.6.0 et 2.6.1.
– semaine 05 : Passage au noyau 2.6.2, premiers essais r´eussis de commu- nication avec racoon.
– semaine 06 : Test de isakmpd.
– semaine 07 : Test de FreeSwan. R´ealisation du script de d´eploiement de racoon.
– semaine 08 : R´edaction du rapport. Test du noyau 2.6.3.
17
CHAPITRE 4. D ´EROULEMENT DU PROJET 18 – semaine 09 : Soutenance.
4.2 Travaux pr´ eliminaires
4.2.1 Mise en place du mat´ eriel
Dans le cadre de ce projet, nous avons dans un premier temps utilis´e deux ordinateurs, reli´es au r´eseau de l’´ecole, sur lesquels nous avons install´e une distribution de GNU/Linux Debian[8] Sid1. Cette distribution poss´edait un noyau 2.2. Or, pour pouvoir travailler en IPv6, il ´etait n´ecessaire d’utiliser un noyau plus r´ecent. Nous avons donc t´el´echarg´e, d´ecompress´e, configur´e et compil´e le dernier noyau Linux en date. Pendant la premi`ere moiti´ee du projet, il s’agissait d’une version de test du noyau 2.6 (2.6-test9) en attendant qu’arrive la version d´efinitive (2.6.0). Notre choix s’est port´e sur le noyau 2.6 et non le 2.4 car le noyau 2.6 int`egre en natif l’IPsec alors que pour le 2.4, qui est le noyau qui est install´e sur toutes les machines de TP de l’´ecole, il faut appliquer un patch pour avoir IPsec.
En plus de ces deux ordinateurs, nous avons utilis´e nos ordinateurs por- tables personnels : un iBook d’Apple avec le syst`eme d’exploitation Mac OS X 10.2 et une autre machine sous Windows XP afin de voir si il est possible, avec des machines ext´erieures, d’´etablir des communications chiffr´ees.
Par la suite, notre configuration a ´evolu´e apr`es la mi-projet. Au point de vue mat´eriel, nous avons r´ecup´er´e une troisi`eme machine, sur laquelle nous avons ´egalement install´e une distribution Debian et le noyau 2.6. Nous avons reli´e nos trois machines de test `a un concentrateur(hub) 10 Mbits afin d’avoir une configuration similaire aux salles de TP (o`u toutes les machines d’une mˆeme salle sont reli´ees `a un concentrateur). Nous avons continu´e d’utiliser l’iBook sur lequel nous avons install´e la version de Mac OS X 10.3, plus adapt´ee que la 10.2 `a la gestion de l’IPv6. Quand `a l’autre ordinateur por- table, un probl`eme mat´eriel nous a contraint `a cesser nos tests avec.
Au point de vue logiciel, nous avons fait ´evoluer le noyau `a chaque fois qu’une nouvelle version ´etait disponible sur Internet et nous avons upgrader nos modules afin que ces derniers soient le plus `a jour possible.
1Il existe en permanence trois versions de Debian :stable,testingetunstable. Sid est le nom de code de l’actuelle version unstable
CHAPITRE 4. D ´EROULEMENT DU PROJET 19
4.2.2 Prise de contact IPv6
Fig. 4.1 – Capture d’une trame RIPng
Au commencement de notre projet, nous n’avions aucune connaissances sur le protocole IPv6. Nous connaissions son existence, nous savions qu’IPv6 poss´ede un espace d’adressage plus important qu’IPv4 et c’est tout. Il nous a donc fallu une phase d’apprentissage du protocole. Cette phase a tout d’abord commenc´e par une recherche de documentation sur le protocole. Mˆeme si Internet fut notre principale source, nous avons ´egalement trouv´e notre bon- heur dans la presse sp´ecialis´ee[3]. Lors de notre premier entretien avec notre tuteur, celui-ci nous a conseill´e de r´ealiser tous les tests possibles permis `a l’´ecole (voir Chapitre I/C sur l’impl´ementation d’IPv6 `a Polytech’Lille).
Le premier des tests r´ealis´es ´etait de capturer quelques trames IPv6 cir- culant sur le r´eseau. Des trames RIPng (Routing Information Protocol New Generation) sont envoy´ees p´eriodiquement par le routeur afin que celui-ci mette `a jour sa table de routage. Grˆace au logiciel Ethereal, nous avons pu d´ecortiquer ces trames et en visualiser le contenu sur la figure 4.1, page 19
Nous avons ensuite g´en´er´e nos propre trames grˆace aux outils ping6 et traceroute6, les ´equivalents de ping et traceroute pour IPv6. Ces outils per- mettent notamment de d´etecter si une machine est bien pr´esente sur le r´eseau.
La machine qui envoie le ping envoie une trame du type ICMP6 (Internet Control Message Protocol 6) vers la machine recherch´ee. Si celle-ci existe, elle renverra un autre message ICMP6, comme un accus´e de reception. Toujours
CHAPITRE 4. D ´EROULEMENT DU PROJET 20
Fig. 4.2 – Capture d’une trame ICMPv6
grˆace `a Ethereal, nous avons pu analyser la structure des messages ICMP en protocole IPv6 (figure 4.2, page 20)
Notre troisi`eme tache a ´et´e d’essayer de naviguer sur Internet en IPv6.
Notre tuteur nous a conseill´e le site www.kame.net. Ce site `a la particula- rit´e d’avoir une image de tortue qui danse si ce site est visualis´e en IPv6.
Nous avons eu ´egalement la mission de chercher d’autres sites qui seraient accessibles en IPv6.
D’autres services ont ´egalement ´et´e test´e en IPv6 :
– la connexion ssh (connexion s´ecuris´e vers une machine distante).
– le FTP (voir figure 4.3, page 21)
– Le mail : par une connexion en IPv6 au serveur de messagerie douaisis, nous avons pu envoyer un mail en IPv6. On voit clairement sur la figure 4.4, page 21, dans les en-tˆetes, que le courriel a ´et´e envoy´e en IPv6. Sur la figure 4.5, page 21 on peut voir circuler en clair le message r´edig´e.
Ces captures montrent bien la n´ecessit´e de chiffrer toutes les communica- tions qui circule en IPv6.
CHAPITRE 4. D ´EROULEMENT DU PROJET 21
Fig. 4.3 – Capture d’une trame FTP circulant en IPv6
Fig. 4.4 – Courriel envoy´e par IPv6
Fig. 4.5 – Capture du paquet contenant le corps du courriel
CHAPITRE 4. D ´EROULEMENT DU PROJET 22
4.3 Travaux r´ ealis´ es
4.3.1 D´ efinition des besoins
L’objectif du projet est de pouvoir chiffrer la totalit´e des communications
´
echang´ees en interne sur le r´eseau IPv6 de l’´ecole. Nous allons donc utili- ser l’extension de confidentialit´e ESP. Nous recherchons des communications bout `a bout, c’est donc le mode transport qu’il nous faudra employer. De plus dans la d´efinition des polices de s´ecurit´e il faudra faire bien attention `a conserver la possibilit´e de communiquer en clair avec l’ext´erieur, ainsi qu’avec les machines en interne qui ne seraient pas ´equip´ees pour le chiffrement.
4.3.2 Setkey
Dans un premier temps nous avons test´e l’utilisation des en-tˆetes AH et ESP avec des associations de s´ecurit´e d´efinies statiquement `a l’aide desetkey, un outil du paquet ipsec-tools. Ces tests r´ealis´es entre deux machines furent concluants.
Mais cette fa¸con de proc´eder n’est absolument pas adapt´ee `a ce qui nous a ´et´e demand´e. Il faut en effet pr´eciser viasetkey les associations de s´ecurit´e (Secu- rity Associations) et les polices de s´ecurit´e (Security Policies) . Le probl`eme est que la d´efinition de l’association de s´ecurit´e est ici compl`etement statique, ce qui pr´esente deux d´efauts majeurs :
– le premier d´efaut est qu’ainsi l’association de s´ecurit´e (qui d´efinit les cl´es de chiffrement employ´ees) va rester la mˆeme en permanence, `a moins que l’on vienne manuellement la modifier, chose impossible `a l’´echelle d’un r´eseau comme celui de l’´ecole. L’association de s´ecurit´e restant la mˆeme il devient possible de collecter un nombre suffisant de trames, de les analyser et d’en d´eduire la cl´e de chiffrement. A partir de l`a l’int´egralit´e des communications pass´ees et futures sont connues de l’attaquant.
– le deuxi`eme d´efaut est que dans le fichier de configuration de set- key (disponible en annexe,page 37), l’association de s´ecurit´e doit ˆetre d´efinie entre deux hˆotes connus. Pour d´eployer cette m´ethode `a l’´echelle de l’´ecole il faudrait donc ´ecrire dans ce fichier une association de s´ecurit´e par combinaison de deux machines ! Et ce alors qu’il est en permanence ajouter et retirer des machines sur le r´eseau, changements qui n´ecessiterait `a chaque fois la modification des fichiers de configura- tion de la totalit´e des machines.
C’est pourquoi nous n’avons pas retenu l’utilisation de setkey seul comme solution `a ce projet.
CHAPITRE 4. D ´EROULEMENT DU PROJET 23
4.3.3 Racoon
Afin de r´esoudre les probl`emes rencontr´es avec l’utilisation desetkey seul nous nous sommes tourn´es vers le deuxi`eme utilitaire pr´esent dans le paquet ipsec-tools.
Ce paquet est un portage sur GNU/Linux d’un utilitaire tournant `a l’origine sur FreeBSD[10].racoon se contentant de n´egocier les associations de s´ecurit´e il doit ˆetre utilis´e en conjonction avecsetkey pour g´erer les polices de s´ecurit´e.
Il est `a noter que la version que nous avons employ´e n’est que la 2.2-8 alors que la derni`ere en date est la 2.4, la 2.2-8 ´etait fournie sous forme de packet Debian au contraire de la 2.4 disponible uniquement sous forme de sources que nous n’avons pas r´eussis `a compiler (probl`eme de d´ependance avec une autre librairie).
Nous avons commenc´e `a tester racoon sur le noyau 2.6.0, sans aucun r´esultat probant. Apr`es avoir essay´e sans succ´es `a peu pr`es toutes les op- tions propos´ees par cet utilitaire, nous l’avons abandonn´e pour passer `a isakmpd. Cependant `a chaque fois que nous avons changer de version du noyau nous avons retest´eracoon. Avec le 2.6.1 nous obtenions deskernel pa- nic, ce n’est qu’avec le noyau 2.6.2 que cela a commenc´e `a fonctionner. A l’heure actuelle, les gels de la pile IP lors de l’´etablissement des associations de s´ecurit´e existent toujours et rendent impensable le d´eploiement d’une telle solution. N´eammoins, apr`es avoir test´e isakmp(section 4.3.4, page 23) c’est cette solution qui nous parait la plus prometteuse. Nous avons donc bas´e notre protocole de d´eploiement (section 4.4, page 24) sur celle-ci, en esp´erant qu’une future version d’ipsec-tools ou du noyau apportent enfin la stabilit´e attendue.
Les fichiers de configuration de cette solution se trouvent en annexe : (racoon.conf, page 35 et ipsec.policy, page 34).
4.3.4 Isakmpd
Devant les probl`emes rencontr´es lors de l’utilisation deracoon nous avons d´ecid´e de tester un deuxi`eme IKE : isakmpd.
Issu du monde OpenBSD[13], isakmpd est un d´emon impl´ementant le protocole ISAKMP. Il est capable de n´egocier `a la fois les associations de s´ecurit´e et les polices de s´ecurit´e. Il a ´et´e port´e sur Linux et nous avons utilis´e le paquet Debian du mˆeme nom.
Du fait qu’il g`ere `a la fois les SA et les SPD sa configuration est plus complexe que celle de racoon. Cependant il est r´eput´e plus rapide et efficace
CHAPITRE 4. D ´EROULEMENT DU PROJET 24 que celui-ci.
Le probl`eme principal que nous avons rencontr´e avec ce d´emon est qu’il a
´
et´e pens´e dans le but de r´ealiser une protection en mode tunnel dans le cadre d’un r´eseau priv´e virtuel (Virtual Private Network) et absolument pas dans le but de chiffrer l’ensemble des communications d’un r´eseau local (Local Arena Network) par le biais de communications bout-`a-bout en mode transport.
De fait, si nous avons r´eussi `a le configurer pour qu’il encapsule les paquets en mode transport et non en mode tunnel (voir le fichier de configuration d’isakmpd en annexe, page 38)), nous n’avons pas r´eussi pour autant `a
´
etablir d’associations de s´ecurit´e avec.
4.3.5 FreeS/WAN
Devant les probl`emes rencontr´es avec le noyau 2.6 nous sommes durant un temps repass´e sur un noyau 2.4 pour tester les impl´ementations d’IPsec sur celui-ci. La plus r´epandue est FreeS/WAN[11]. Cette impl´ementation n’´etant pas native au noyau Linux elle n´ecessite l’application d’un patch sur le noyau.
Tout comme sur le noyau 2.6, le support d’IPv6 dans le noyau 2.4 est encore exp´erimental, il a donc fallu recompiler un noyau avec les options ad´equates.
Une fois tout install´e, nous nous sommes plong´es dans la documentation pour nous apercevoir que FreeS/WAN ne supporte pas le mode transport et qu’il est donc inutilisable dans le cadre de ce projet.
4.3.6 IPsec en noyau 2.4.24
Suite au passage sur le noyau 2.4, nous nous sommes aper¸cus que les derni`eres versions de celui-ci int´egrent nativement une couche IPsec (c’est en fait un backport du 2.6 sur le 2.4). Nous avons donc d´ecid´e de tester son utilisation, mais ce n’est pas encore tr´es au point et lors du d´emarrage de la machine la couche IPsec refuse de se charger. Par cons´equent il s’av`ere impossible d’aller plus loin.
4.4 Protocole de d´ eploiement
4.4.1 Installer le dernier noyau
Suivre la proc´edure donn´ee en travaux pratiques d’Administration Syst`eme[6]
(t´el´echarger, d´ecompresser le noyau). Compiler le noyau pour le support d’IPv6 et d’IPsec. Il faut en particulier s´electionner les options suivantes2 :
2Information valable pour le noyau 2.6.2
CHAPITRE 4. D ´EROULEMENT DU PROJET 25 – ”Code maturity level options”:”Prompt for development and/or in-
complete code/drivers”
– ”Device Drivers”:”Networking support”:”Networking options”:”The IPv6 Protocol” ainsi que les 5 options qui en d´ecoulent.
– ”Device Drivers”:”Networking support”:”Networking options”:”PF KEY sockets”
– ”Device Drivers”:”Networking support”:”Networking options”:”IPsec user configuration interface”
– ”Cryptographic options” :tout les algorithmes propos´es
4.4.2 Installer les outils g´ erant IPsec
Nous avons pour cela r´ealiser un script (disponible en annexe page 32) qui installe les paquets openssl et ipsec-tools, configure setkey et racoon et enfin d´emarre racoon.
Conclusion
Au vu de nos tests on peut dire que le support d’IPsec dans IPv6 est en- core balbutiant et ce quelque soit le syst`eme d’exploitation consid´er´e. Comme souvent dans le domaine du r´eseau, ce sont les syst`emes BSD qui sont les plus avanc´es mais la lecture des listes de diffusion des diff´erents projets montre que tout cela est encore en plein d´eveloppement.
Bilan En ce qui concerne Linux et le r´eseau de notre ´ecole, il est claire- ment trop tˆot pour envisager de d´eployer IPsec sur les serveurs critiques. En revanche il devrait ˆetre possible de tenter la chose sur les postes clients d’une salle de TP. Nous aurions souhait´e r´ealiser une telle exp´erience en grandeur nature, mais nos propres tests de stabilit´e sur nos machines de TP ne l’ont pas permis : ils sont devenus acceptables uniquement cette derni`ere semaine.
L`a encore tout bouge tr´es vite, depuis la premi`ere version du noyau 2.6 fin d´ecembre, trois autres versions stables sont sorties. De mˆeme le package ipsec-tools devrait ˆetre disponible bientˆot en version 2.4, apportant sans au- cun doute un grand nombre d’am´eliorations `a racoon etsetkey.
Perspectives Une fois qu’IPsec sera d´eploy´e sur l’ensemble des postes Li- nux de l’´ecole il restera encore `a mettre en place les moyens de faire la mˆeme chose avec les autres syst`emes d’exploitation. A l’heure actuelle Windows n’est pas capable de r´ealiser de l’IPsec au dessus d’IPv6, MacOS X en est capable, en utilisant actuellement racoon 1.18, solution que nous avons test´e et qui a fonctionn´e `a merveille avec nos postes de tests sous Linux.
La question de la compatibilit´e des diff´erents programmes commandant l’IP- sec est d’ailleurs une question centrale dans le d´eploiement `a grande ´echelle de celui-ci. Cette compatibilit´e est tr´es loin d’ˆetre assur´ee, mˆeme entre outils pr´esents sur une mˆeme plateforme.
Apport personnel Ce projet s’est r´ev´el´e tr´es int´eressant pour nous car il nous a fait d´ecouvrir en profondeur deux nouveaux protocoles : IPv6 et IPsec.
Comblant ainsi un manque dans notre formation, ni l’un ni l’autre n’´etant 26
CHAPITRE 4. D ´EROULEMENT DU PROJET 27 malheureusement `a notre programme alors que ce sont deux protocoles qui sont amen´es `a prendre ´enorm´ement d’importance `a l’avenir. D’un point de vue syst`eme, la r´ealisation du banc de test et par la suite les nombreuses com- pilations du noyau nous ont ind´eniablement apport´e une meilleure connais- sance des fondations d’un syst`eme GNU/Linux.
Remerciements Nous tenons `a remercier l’ensemble du service informa- tique pour avoir r´epondu `a nos nombreuses questions. Et tout particuli`erement Xavier Redon notre tuteur.
Bibliographie
[1] Dossier vpn. MISC 10, 2003.
[2] Gis`ele Cizault. IPv6, Th´eorie et pratique. O’REILLY, 3 edition, 2002.
[3] Francois Donze. Autoconfiguration des adresses ipv6. Linux Magazine France 55, 2003.
[4] Nicolas Fischbach. Ipv6 et ip anycast. MISC 6, 2003.
[5] http ://fr.wikipedia.org/wiki/Accueil. Wikipedia, l’encyclop´edie libre.
[6] http ://www.eudil.fr/ rex/Enseignement/Systeme/TP.Systeme.IMA3i/systeme003.html.
TP d’AS IMA3i de Xavier Redon.
[7] http ://www.faqs.org/rfcs/rfc3513.html. Internet Protocol Version 6 (IPv6) Addressing Architecture.
[8] www.debian.org. Site officiel de la distribution Debian.
[9] www.faqs.org/rfcs/rfc1752.html. The Recommendation for the IP Next Generation Protocol.
[10] www.freebsd.org. Site officiel du projet FreeBSD.
[11] www.freeswan.org. Site officiel du projet FreeS/WAN.
[12] www.kernel.org. The Linux Kernel Archives.
[13] www.openbsd.com. Site officiel du projet OpenBSD.
28
Glossaire
FTP File Transfer Protocol (protocole de transfert de fichiers) est d´edi´e `a l’´echange informatique de fichiers sur un r´eseau TCP/IP. Il permet, depuis un ordinateur, de copier des fichiers depuis ou vers un autre ordinateur du r´eseau, ou encore de supprimer ou modifier des fichiers sur cet ordinateur.
ICMP Internet Control Message Protocol (protocole de contrˆole des mes- sages sur Internet) est un protocole de niveau 3 sur le mod`ele OSI, qui permet le contrˆole des erreurs de transmission. C’est grˆace `a ce protocole qu’une ma- chine ´emettrice peut savoir qu’il y a eu un incident de r´eseau.
IPsec IP Security Protocol, d´esigne `a la fois le groupe de l’IETF travaillant sur les m´ecanismes de protection des protocoles clients IP, et le protocole de s´ecurit´e en lui-mˆeme.
OSI Open Systems Interconnectionest un mod`ele cr´e´e par l’ISO (Organisa- tion internationale de normalisation) dans le but d’offrir une base commune
`
a la description de tout r´eseau informatique. Dans ce mod`ele, l’ensemble des protocoles d’un r´eseau est d´ecompos´e en 7 parties appel´ees couches OSI, num´erot´ees de 1 `a 7.
Proxy Un serveur proxy (ou serveur mandataire) a pour but de relayer des requˆetes sur un r´eseau informatique et d’entretenir un cache des r´eponses.
RFC Request For Comment (litt´eralement demande de commentaires). Ce sont une s´erie de documents et normes concernant l’internet, commenc´ee en 1969. Peu de RFCs sont des standards, mais tout les standards de l’internet sont enregistr´es en tant que RFCs. Les RFCs sont r´edig´ees sur l’initiative d’experts techniques, puis sont revues par la communaut´e internet dans son ensemble. Cela diff´ere d’une publication d’institution tel que l’ANSI. Pour cette raison, elles continuent `a ˆetre appel´ees RFCs une fois devenues des standards.
29
Routeur C’est un mat´eriel de communication de r´eseau informatique. Son travail est de d´eterminer le prochain noeud du r´eseau auquel un paquet de donn´ees devrait ˆetre envoy´e afin que ce dernier atteigne sa destination finale le plus rapidement possible. Ce processus se nomme routage. Le routeur intervient `a la couche 3 (couche r´eseau) du mod`ele OSI.
SMTP Simple Mail Transfer Protocol est un des protocoles utilis´es pour transf´erer du courrier ´electronique sur des r´eseaux Internet.
SSH Secure SHellest un protocole de communication s´ecuris´e. Le protocole de connexion impose une ´echange de cl´e de cryptage en d´ebut de connexion.
Par la suite toutes les trames sont cod´ees. Il devient donc impossible d’utiliser un sniffer pour voir ce que fait l’utilisateur.
TCP Transmission Control Protocol est un protocole de transport fiable, en mode connect´e, document´e dans le RFC 793 de l’IETF. Dans le mod`ele TCP/IP, TCP est situ´e entre la couche de r´eseau (g´en´eralement le protocole IP), et la couche application. Les applications transmettent des flux d’octets sur le r´eseau. TCP d´ecoupe le flux d’octets en segments, dont la taille d´epend de la MTU (Maximum Transmission Unit) du r´eseau sous-jacent (couche liaison de donn´ees).
UDP User Datagram Protocolest un protocole de remise de paquets simple, non-fiable, sans connexion, appartenant `a la couche 4 du mod`ele OSI. Il est utilis´e quand il est n´ecessaire soit de transmettre des donn´ees tr`es rapide- ment, et o`u la perte d’une partie de ces donn´ees n’a pas grande importance, soit de transmettre des petites quantit´es de donn´ees, l`a o`u la connexion ”3- WAY” TCP serait trop lourde. Tout comme TCP, il utilise un syst`eme de ports.
VLAN Virtual Lan Arena Network c’est un r´eseau local virtuel. Un seul routeur peut ainsi suffire `a cr´eer plusieurs sous-r´eseaux.
VPN Virtual Private Network Un r´eseau VPN est un r´eseau priv´e virtuel construit au sein d ?une infrastructure informatique publique, telle qu’Inter- net.
30
Index
AH, 15 CIDR, 11 ESP, 15 FreeBSD, 23 FTP, 12 HTTP, 12 IAB, 9
ICMP6, 12, 19 IESG, 11
IETF, 3, 9–11, 15 IKE, 23
IPsec, 9 ipsec-tools, 23 ISAKMP, 23 isakmpd, 23 OpenBSD, 23 SAD, 16
Security Associations, 22 Security Policies, 22 setkey, 22
SMTP, 12 SPD, 16 TCP, 12 UDP, 12 VPN, 9, 24
31
Annexes
Script d’installation
#!/bin/sh
#Attention il faut etre root pour que ce script marche!
killall racoon
#Installation de racoon et de openssl
echo -e "\vInstallation d’openssl via apt-get."
apt-get install openssl
echo -e "\vInstallation de racoon via apt-get."
apt-get install racoon
echo -e "\vCopie des fichiers de configuration :"
echo -n "racoon.conf"
cp racoon.conf /etc/racoon/racoon.conf echo -e "\t\tDone."
echo -n "psk.txt"
cp psk.txt /etc/racoon/psk.txt echo -e "\t\t\tDone."
echo -n "ipsec.policy"
cp ipsec.policy /etc/ipsec.policy echo -e "\t\tDone."
echo -n "racoon"
cp racoon /etc/init.d/racoon echo -e "\t\t\tDone.\v"
32
#On lance tout ca
echo "Chargement des politiques de securite"
setkey -f /etc/ipsec.policy echo "Lancement de racoon"
racoon
echo -e "Installation terminee.\v"
exit 0
33
Fichier de configuration automatique de set- key (ipsec.policy)
flush;
spdflush;
spdadd -6 2001:660:4401:6000::/56 2001:660:4401:6000::/56 any -P in ipsec esp/transport//use;
spdadd -6 2001:660:4401:6000::/56 2001:660:4401:6000::/56 any -P out ipsec esp/transport//use;
34
Fichier de configuration de racoon (racoon.conf )
# $KAME: racoon.conf.in,v 1.18 2001/08/16 06:33:40 itojun Exp $ remote anonymous
{
exchange_mode aggressive,main;
doi ipsec_doi;
situation identity_only;
my_identifier fqdn "polytech";
peers_identifier fqdn "polytech";
nonce_size 16;
lifetime time 1 min; # sec,min,hour initial_contact on;
support_mip6 on;
proposal_check obey; # obey, strict or claim proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key ; dh_group 2 ;
} }
sainfo anonymous {
pfs_group 2;
lifetime time 30 sec;
encryption_algorithm 3des ;
authentication_algorithm hmac_sha1;
compression_algorithm deflate ; }
35
Fichier de lancement de racoon (/etc/init.d/racoon)
#!/bin/sh set -e
test -x /usr/sbin/racoon || exit 0 case "$1" in
start)
echo -n "Setting up SPD for racoon"
/usr/sbin/setkey -f /etc/ipsec.policy echo "."
echo -n "Starting IKE (ISAKMP/Oakley) server: racoon"
start-stop-daemon --start --quiet --exec /usr/sbin/racoon echo "."
;;
stop)
echo -n "Stopping IKE (ISAKMP/Oakley) server: racoon"
start-stop-daemon --stop --quiet --oknodo \
--pidfile /var/run/racoon.pid --exec /usr/sbin/racoon echo "."
;;
reload|force_reload|restart)
$0 start
$0 stop
;;
*)
echo "Usage: $0 (start|stop|reload|force-reload|restart)" >&2 exit 1
esac exit 0
36
Fichier de configuration manuelle de setkey
flush;
spdflush;
add -6 titenka07 titenka08 ah 24500 -A hmac-md5 "1234567890123456";
add -6 titenka07 titenka08 esp 24501 -E 3des-cbc "123456789012123456789012";
add -6 titenka08 titenka07 ah 24502 -A hmac-md5 "1234567890123456";
add -6 titenka08 titenka07 esp 24503 -E 3des-cbc "123456789012123456789012";
spdadd -6 titenka07 titenka08 any -P out ipsec esp/transport//require
ah/transport//require;
spdadd -6 titenka08 titenka07 any -P in ipsec esp/transport//require
ah/transport//require;
37
isakmpd.conf
[General]
#Listen-on= 2001:660:4401:6004:208:74ff:fe13:ff31 Shared-SADB= Defined
Default-phase-1-ID= Phase1-ID-name
Default-phase-2-suites= QM-ESP-TRP-3DES-SHA-PFS-SUITE [Phase1-ID-name]
ID-type= USER_FQDN Name= polytech [Phase 1]
Default= ISAKMP-peer-Titenka08 [Phase 2]
Passive-connections= IPsec-east-west [ISAKMP-peer-Titenka08]
Phase= 1 Transport= udp
Local-address= 2001:660:4401:6004:208:74ff:fe13:ff31 Adress= 2001:660:4401:6004:208:74ff:fe14:e2
Netmask= ffff:ffff:ffff:ffff::
Configuration= Default-quick-mode Authentication= mekmitasdigoat ID= Phase1-ID-name
[IPsec-east-west]
Phase= 2
ISAKMP-peer= ISAKMP-peer-Titenka08 Configuration= Default-quick-mode Local-ID= Titenka06
Remote-ID= Titenka08 [Titenka06]
ID-type= IPV6_ADDR
Address= 2001:660:4401:6004:208:74ff:fe13:ff31 [Titenka06]
ID-type= IPV6_ADDR
Address= 2001:660:4401:6004:208:74ff:fe14:e2 [Default-main-mode]
DOI= IPSEC
EXCHANGE_TYPE= ID_PROT Transforms= 3DES-SHA [Default-quick-mode]
38
DOI= IPSEC
EXCHANGE_TYPE= QUICK_MODE
Suites= QM-ESP-TRP-3DES-SHA-PFS-SUITE
39
EUI-64
3La RFC3513 d´ecrivant l’architecture de l’adressage IPv6 de l’adressage IPv6 requiert l’inversion du bit num´ero 6 des identifiants d’interface r´eseau de type IEEE 802 ”allong´es” `a 64 bits suivant le standard EUI-64.
Dans le cas d’interfaces s´eries, par essence sans adresse IEEE 802, les identifiants peuvent ˆetre attribu´es manuellement par un technicien. La seule contrainte `a respecter ´etant l’unicit´e desdits identifiants sur le lien. Cette contrainte n’est pas insurmontable puisqu’il n’y a que deux interfaces pos- sibles, une `a chaque extr´emit´e du lien. Toutefois, puisque cette attribution n’est pas effectu´ee par l’organisme IEEE, la garantie d’unicit´e globale uni- verselle, n’est pas assur´ee. En cons´equence, les ”u” bits des identifiants des interfaces s´erie doivent ˆetre positionn´es `a 0.
Ce n’est pas une contrainte. Au contraire, la g´en´eration manuelle d’iden- tifiants en est simplifi´ee. 0:0:0:1 et 0:0:0:2 que l’on pourra noter tout simplement 1 et 2, sont alors des identifants d’interface r´eseau conformes au standard 3513. Les adresses lien-local finales apr`es accolement du pr´efixe lien-local fe80::/10 sont doncfe80::1 etfe80::2.
Si le standard n’imposait pas l’inversion du ”u” bit, le responsable de ce lien s´erie serait oblig´e d’affecter les identifants beaucoup plus complexes 200:0:0:1 et 200:0:0:2, au lieu de1 et2.
Les adresses finales seraient donc fe80::200:0:0:1 et fe80::200:0:0:2.
Ce qui ne faciliterait pas les op´erations de gestion courante ou de recherche de panne.
3Source GNU/Linux Magazine France n◦55
40
Liste de sites accessibles en IPv6
Sur www.prik.net/list.html, on trouve une liste d’adresses accessibles en IPv6. Toutes ne sont pas valides aussi en voici certains que nous avons v´erifi´ees :
– www.freedomtophotograph.com : un site sur la photographie.
– www.ipsec.ca, un site canadien sur IPsec.
– http://aa.gg, un site de services sur l’ADSL – www.ajeux.com, un site sur les jeux vid´eos.
– http://aspirine.info.unicaen.fr site de l’universit´e de Caen.
– www.charliewolf.net, site d’une radio britannique.
– saturne.ipv6.rennes.enst-bretagnes.fr, site de l’ENST, non accessible en IPv4.
Un grand nombre de distributions Linux ou *BSB proposent ´egalement des serveurs de fichiers en IPv6.
41