Projet « [VPN
Redondant] »
Etude finale
Version 1.3
10 janvier 2006
Historique des révisions
Date |
Version |
Description |
Auteur |
11 octobre 2005 |
1.0 |
Création du document |
Guillaume Coqueblin |
26 octobre 2005 |
1.1 |
Révision |
Guillaume Coqueblin |
21 décembre 2005 |
1.2 |
Etude finale |
Christophe CHARNAY |
10 janvier 2006 |
1.3 |
Etude finale |
Christophe CHARNAY |
Sommaire
1 Introduction........................................................................................................................
1.1 Contexte, objectifs et contraintes..................................................................................
1.2 Glossaire........................................................................................................................
1.3 Documents de référence...............................................................................................
2 L’existant............................................................................................................................
3 Recueil des besoins........................................................................................................
3.1 Utilisateurs.....................................................................................................................
3.2 Besoins fonctionnels......................................................................................................
3.3 Besoins non fonctionnels...............................................................................................
4 Orientations techniques.................................................................................................
4.1 Architecture
générale de la solution...............................................................................
4.2 Technologies
et outils....................................................................................................
5 Analyse
des risques........................................................................................................
6 Plan de travail....................................................................................................................
7 Livrable...................................................................................................................
L'objectif du projet est de faire l’étude et la réalisation d’un prototype montrant une interconnexion de deux réseaux privés (ou plus) via un VPN chiffré utilisant IPsec.
Les passerelles d’interconnexions (à In’tech INFO) seront en binôme et redondantes.
Les principaux intervenants du projet, sont :
Commanditaire : In’Tech Info
Contacts et références : Eric Lalitte
Aurélien Bordes
Membres du projet : Alexis Carle
Christophe Charnay (Chef De Projet)
Guillaume Coqueblin
Utilisateurs : Elèves In’Tech Info
Objectifs de la solution proposée
- Réalisation de la plate-forme
- Installation d’OpenBSD sur les passerelles
-
Une
solution VPN doit permettre aux utilisateurs distants de se connecter aux
ressources du réseau local.
- Configuration réseau (routage, filtrage avec pf)
-
- Configuration IPsec
- La
solution doit assurer la confidentialité et l'intégrité des données à travers
Internet.
- Mise en place de la redondance (CARP, pfsync, sasync)
- Pour l'utilisateur aucune différence ne doit
apparaître dans son utilisation des ressources du système d'information.
- Mise en place de l’authentification par certificats
- La solution doit générer et mettre à jour les clefs pour le chiffrement des données pour le client et le serveur.
- Analyse du trafic et des logs.
- Connaissance d’OpenBSD, configuration du système - Conception et réalisation de démonstration - Connaissance de pf - Utilisation de CARP et pfsync - Connaissance d’IPsec |
Bénéfices attendus
- Étude de sasyncd
- Acquérir des automatismes pour le débogage des systèmes et des réseaux.
Contraintes :
Utilisation
d’OpenBSD 3.8 car IPsec est implanté nativement dans
OpenBSD, entre autres, avec le service isakmpd basé sur le protocole IKE. Il intègre aussi nativement les services nécessaires a la
redondances : carp, sasync et pfsync.
Le projet est en développement sur un réseau, « a priori » de
confiance, et sur lequel nous n’avons ni contrôle, ni supervision.
Le basculement d’une machine à l’autre doit s’effectuer de manière
totalement transparente et sécurisée pour les clients.
Openbsd : distribution de
base Unix
VPN : Virtual
Private Network (Réseau Privé Virtuel) liaison entre 2 réseaux distants
Redondant : La redondance, d'une façon générale, se
rapporte à la qualité ou à l'état d'être en surnombre, par rapport à la normale
ou à la logique. Ce qui peut avoir la connotation négative de superflu, mais
aussi un sens positif quand cette redondance est voulue afin de prévenir un
dysfonctionnement.
IPsec : IPsec est un protocole permettant le
transport de données chiffrées sur un réseau IP pour établir un réseau privé
virtuel.
Sasync : Service de
synchronisation des règles de chiffrement d’IPsec lors d’un crash d’une passerelle.
Carp: Common Address Redundancy Protocol (Protocole de redondance d’adresse commune), ARP permet a plusieurs hôtes dans un même réseau local de partager un plage d’adresse IP. Son but premier est de s’assurer que les adresses sont toujours disponibles, mais dans certaines configurations, carp, permet aussi de fournir de la balance de charge.
Pf: Packet Filter, fichier de configuration des règles du firewall.
Routage: Dans le cas présent, le routage est le transfert de paquets d’un réseau à un autre
Filtrage: Règles établies par le firewall qui autorisent ou refusent le routage des paquets
NAT: Network Adress Translation, permet de rendre des adresses du réseau local routable sur internet.
Haute Disponibilité: Le cluster de haute disponibilité est un ensemble de serveurs physiques, au nombre minimum de deux, afin d'obtenir une activité de services par tous temps, en toutes conditions
· pages man d’Openbsd,
· Plan d’Assurance Qualité,
· planning.doc
Nous avons déjà à notre disposition 2 machines
sous Openbsd et le réseau Itinet.
Les élèves d’In’tech INFO, et par la suite, suivant le niveau de qualité de réalisation de ce projet et du projet « firewall redondant », la commercialisation d’une solution firewall-vpn redondants auprès des sociétés et SSII.
Le système à réaliser se doit de faire la liaison entre
2 réseaux distants de manière redondante et sécurisée, mais il doit passer
Nos besoins non fonctionnels sont de l’ordre du matériel. Le chiffrement des données circulant à travers les machines faisant office de serveur VPN pouvant être assez conséquent, la machine devra disposer d’un processeur d’au moins 1GHz, de 256Mo de mémoire vive, ainsi que la connectique liée à la redondance (au total 6 cartes réseau, 5 câbles torsadés, dont 1 croisé).
Schéma général de la solution VPN redondant
Le système d’exploitation qui est utilisé est Openbsd 3.8, ainsi que des outils n’existant que dans la version 3.8, comme par exemple :
·
Carp :
CARP veut
dire "Common Address Redundancy Protocol". L'objectif
premier de ce protocole est de permettre à un groupe d'hôtes sur un même
segment réseau de partager une même adresse IP. On appelle un groupe d'hôtes
utilisant CARP un "groupe de redondance". Le groupe de redondance se
voit attribuer une adresse IP partagée entre les membres du groupe. Au sein de
ce groupe, un hôte est désigné comme "maître". Les autres membres
sont appellés "esclaves". L'hôte maître est celui qui
"prend" l'adresse IP partagée. Il répond à tout trafic ou requête ARP
à l'attention de cette adresse. Chaque hôte peut appartenir à plusieurs groupes
de redondance.
Nous utilisons CARP pour créer un
groupe de VPN redondants. L'adresse IP virtuelle attribuée au groupe de
redondance est désignée comme l'adresse du routeur par défaut sur les machines
clientes. Dans le cas où le VPN maître rencontre une panne ou est déconnecté du
réseau, l'adresse IP virtuelle sera prise par un des VPN esclaves et le service
continuera à être rendu sans interruption.
CARP supporte IPv4 et IPv6.
L'hôte maître du groupe envoi des annonces
régulières sur le réseau local afin que les hôtes esclaves puissent savoir qu'il
est toujours disponible. Si les hôtes esclaves ne reçoivent plus d'annonce de
la part du maître durant une période de temps configurable, alors l'un d'eux
devient le nouveau maître. Ce dernier est celui dont les valeurs configurées
pour advbase et advskew sont
les plus faibles.
Afin d'empêcher un utilisateur malicieux sur le
segment réseau d'usurper les annonces CARP, chaque groupe peut être doté d'un
mot de passe. Ainsi chaque paquet CARP envoyé au groupe est protégé par SHA1
MAC.
·
Isakmpd :
Le rôle
d’ISAKMP est d'établir, de négocier, de modifier ou de supprimer des
Associations de Sécurité et leurs attributs.
Ce protocole
constitue un cadre générique indépendant des
mécanismes en
faveur desquels la négociation a lieu et de ceux par lesquels la sécurisation
est réalisée ; c'est pour cette dernière raison qu'un document appelé DOI
(Domain Of Interpretation - Document définissant les paramètres négociés et les
conventions relatives a l'utilisation de ISAKMP dans un cadre précis-) est
nécessaire.
ISAKMP se déroule en deux phases :
- Tout d'abord,
création de
- Ensuite,
négociation de paramètres de sécurité relatifs à une SA à établir pour un
mécanisme donne (par exemple AH ou ESP), via
Entête d’ISAKMP
Connexion d’un
client à Isakmpd
·
IKE :
IKE est le
protocole de gestion des clefs implémente par IPSec. Il comprend 4 modes, qui
gèrent les échanges de paramètres entre les entités souhaitant communiquer ; le
but est de créer
Echange
IKE classique
·
Ipsec :
A l'heure actuelle, plusieurs solutions VPN existent et sont utilisées
sur Internet : IPsec est celle que l'on retrouve le plus souvent, et de
nombreux facteurs indiquent que cette situation tend à se généraliser (supporte
nativement par de nombreux systèmes d'exploitation, protocole ouvert, etc.).
Notre étude suivante se limitera donc à IPsec et aux mécanismes qu'il
engendre; avant d'entrer dans les détails techniques, revenons aux principes de
base d'IPsec.
IPsec se présente sous la forme d'un ensemble de mécanismes permettant
d'initier, au niveau réseau, des connexions entre systèmes distants.
Le schéma suivant
rappelle les principes de son fonctionnement :
On note à la vue de ce schéma qu'IPsec repose sur le protocole IKE, qui
permet une connexion sécurisée entre les entités désirant communiquer, et les
protocoles AH et ESP, qui traitent les données utiles de la couche IP afin de
les protéger selon la politique choisie ; c'est donc ces protocoles que nous
allons étudier en détail.
Avant que les paquets puissent être sécurisés par IPsec, une SA
(Associations de Sécurité) doit exister. Elle peut être créée manuellement ou
dynamiquement.
Le protocole IKE
est utilisé pour la création dynamique de cette SA; il s'agit d'un protocole
hybride basé sur les protocoles ISAKMP, Oakley et SKEME : il utilise les bases
d’ISAKMP, les modes d’Oakley et les techniques de partage des clefs de SKEME.
·
Pf (Packet Filter) :
Packet Filter est
le système utilisé par OpenBSD pour filtrer le trafic TCP/IP et effectuer des
opérations de Traduction d'Adresses IP ("NAT"). PF est aussi capable
de normaliser, de conditionner le trafic TCP/IP, et de fournir des services de
contrôle de bande passante et gestion des priorités des paquets. PF fait partie
du noyau GENERIC d'OpenBSD depuis la version 3.0. Les précédentes versions
d'OpenBSD utilisaient un ensemble logiciel pare- feu/NAT différent qui n'est
plus supporté.
·
Pfsync :
Pfsync prend en charge la
réplication des tables de sessions entre les firewalls. En d’autres mots chaque
firewall possédant une interface pfsync activée émet des informations sur les
sessions qu’il prend en charge sur le réseau.
( Pfsync utilise des interfaces virtuelles pfsync0 )
Par exemple il envoie un paquet
multicast sur le réseau pour indiquer qu’une session tcp a été ouverte ou
fermée, avec toutes les informations sur la session. Ce qui permet aux
équipements configurés pour se synchroniser sur pfsync de se mettre à jour par
rapport aux changements des tables des autres firewalls.
Cette dernière fonctionnalité
couplée à CARP, permet de créer des backup du firewall maître. Avec la
synchronisation activée (pfsync), lorsqu’un équipement de backup prend la main,
il possède toutes les informations sur les tables de sessions et peu continuer
à filtrer le trafic réseau sans interruption. Dans nos tests il y a un temps de
latence très court lors du basculement d’un serveur à l’autre.
Au niveau des services et des
utilisateurs passant par ce firewall il n’y a pas de coupure de sessions
lorsque la ou les adresses ip des firewalls basculent d’un serveur à l’autre.
Note : Les adresses Ip prisent en charge par Carp, sont
appellées VIP (Virtual Ip).
Il est aussi important de noter que
lorsque le firewall maître ressuscite, il ne reprend la main que lorsque pfsync
à effectué sont travail de synchronisation par rapport au serveur maître en
cours, ceci grâce a la combinaison de carp et pfsync.
Résultat : pas de coupure de
session même lorsque le premier serveur réapparaît sur le réseau.
·
Sasyncd :
Le démon sasyncd synchronise les informations
des SA et SPD IPsec entre plusieurs passerelles IPsec. La méthode la plus
utilisé est de faire fonctionner sasyncd sur un serveur isakmpd et de
partager une même IP grâce à l’outil carp.
Le
démon fonctionne soit en mode maître soit en esclave, dans lequel le maître
récupère tous les paquets de changement d’SA IPsec et envoie les informations à
tous les clients afin qu’ils disposent des mêmes données.
Lorsqu’un
esclave se connecte ou se reconnecte, Le maître transmet instantanément toutes
les informations des SA et SPD IPsec en cours.
·
Certificat X509
Les certificats X509 permettent l'authentification entre le serveur et le client vpn. Pour cela nous devons générer la clef RSA, le certificat pour le CA et le CSR (Certificate Signing Request) en utilisant openssl.
Le risque majeur est que le fait de mettre en place une solution sur la base d'un systme d'exploitation encore en version « testing » ne soit pas tout à fait au point, et les outils fiables et sécurisés.
Suivant ce qui a été établi lors d'une réunion avec Aurélien Bordes et Eric Lalitte les étapes sont les suivantes :
- Etude et mise en place de la redondance, en utilisant carp
- Sécurisation de la connexion sortante grace à IPsec et isakmpd
- Configuration du firewall par les rgles pf
- Synchronisation des rgles de sécurité avec SAsyncd
- Synchronisation des rgles de filtrage entre les deux serveurs grace à pfsync
- Tests finaux et écoute du trafic
- Rédaction d’une documentation
- Démonstration en temps réel.
Nous restituons à l’école les 2 machines, installées et configurées, accompagnées d'une documentation décrivant notre étude.
La maintenance sera à la charge du client.