LE RÉSEAU PRIVÉ VIRTUEL

Transcription

LE RÉSEAU PRIVÉ VIRTUEL
LE RPV DE NIVEAU RÉSEAU AVEC TINC
L’entreprise Ilog est une petite entreprise de services informatiques située à La Défense. Les chefs de
projet de l’entreprise sont souvent en déplacement à travers toute la France. Mais même en clientèle,
l’entreprise souhaite qu’ils puissent accéder de manière sécurisée au serveur de l’entreprise, car ils
sont tenus de rendre compte chaque semaine de l’avancement de leur travail.
Bien évidemment, seuls les chefs de projet doivent pouvoir se connecter depuis l’extérieur au serveur
de l’entreprise et tous les flux échangés doivent être chiffrés. Prenons l’exemple de M. Durand en
déplacement à Marseille depuis de longs mois.
Ce schéma représente la situation finale
Pour mettre en place ce VPN le logiciel retenu est le logiciel Tinc. Ce logiciel tourne aussi bien sous
Windows XP, 20003, Seven et sous différentes distributions Linux. Il joue à la fois le rôle de serveur
Vpn et de client Vpn
Les machines disponibles par élève étant limitées, vous allez travailler par groupe de 2. Il vous faut un
client XP et d’abord un puis deux serveurs Windows 2003 virtuels.
Voici la configuration réseau retenue pour simuler le schéma ci-dessus :
Serveur vpn La Défense (Windows 2003) : adresse réelle adresse de la salle masque 255.255.0.0 ;
Client vpn Durand : adresse réelle de la salle masque 255.255.0.0 ;
Serveur vpn La Défense (Windows 2003) : adresse sur le vpn 10.0.0.1 masque 255.0.0.0 nom sur le
vpn = laDefense ;
Client vpn Durand : adresse sur le vpn 10.0.0.2 masque 255.0.0.0. nom sur le vpn = durand ;
I
CONFIGURATION DU RÉSEAU
Vérifiez les adresses à vos machines ; Vérifiez que les machines se « pinguent »;
1
Marie-pascale Delamare
II
INSTALLATION ET CONFIGURATION DE TINC
Tinc est disponible sur le poste prof \\172.16.4.150\Gnupg_Tinc. Suivez simplement la procédure
d’installation.
Pour la configuration de Tinc nous devons créer quelques fichiers texte et donner des valeurs à des
variables prédéfinies.
Afin d’éviter des problèmes je vous demande, dans un premier temps, de respecter les
indications de paramétrage réseau, fournies. Vous pourrez faire dans un deuxième temps toutes
les modifications désirées.
II.1
CRÉATION DU RÉPERTOIRE DE CONFIGURATION DU VPN
Le programme Tinc a été installé dans le répertoire \program files\tinc. Positionnez-vous dans ce
répertoire et créez un répertoire dont le nom sera celui de votre connexion vpn, parce exemple vpn. Ce
travail est à faire sur les deux machines qui vont héberger Tinc. C’est dans ce répertoire que nous
allons créer les fichiers de configuration de cette liaison vpn.
II.2
LE FICHIER TINC.CONF
Ce fichier va contenir les principaux paramètres de la connexion vpn. Créer un fichier texte, mais
attention vous devez supprimer l’extension « .text » au moment de l’enregistrement. En effet Tinc
vient du monde Linux et les noms des fichiers donnés dans ce TP sont en général sans extension.
Dans ce fichier on doit trouver
trois paramètres :
Name : c’est le nom de votre
ordinateur sur le Vpn. Il n’est pas
nécessaire que cela soit le nom de
votre machine Windows.
ConnectTo : c’est le nom de la
machine à laquelle vous voulez
vous connecter dans le cadre du
Vpn. C’est donc le nom du
serveur vpn tinc de La Défense.
Interface : C’est le nom de
l’interface réseau que vous allez
utiliser pour joindre votre Vpn.
Nous créerons cette interface plus
tard.
Le fichier Tinc.conf sur la machine laDefense contient les mêmes informations, excepté la ligne
ConnectTo. En effet le client durand est ici considéré comme client du vpn et c’est donc lui qui va
tenter de se connecter à la machine serveur laDefense qui elle sera juste à l’écoute des connexions
entrantes.
II.3
LES FICHIERS HOSTS
Tinc a besoin de résoudre les noms des machines saisis dans le fichier tinc.conf, c’est à dire de trouver
leur adresse IP respective. Pour cela on utilise une résolution de noms en local et propre à Tinc. Cette
résolution de noms est très proche de celle obtenue par utilisation du fichier hosts sous Linux ou
Windows.
2
Marie-pascale Delamare
Créez un répertoire nommé hosts sous votre répertoire vpn. Dans ce répertoire, créez un fichier texte
(sans extension) du nom de votre machine. Dans l’exemple donné, on doit trouver un fichier durand
sur le client marseille et un fichier laDefense sur le serveur laDefense.
Subnet : C’est l’adresse IP de la machine sur le vpn (on met alors un masque /32) ou l’adresse réseau
du Vpn (on met alors le masque du sous-réseau). Attention dans le fichier correspondant au client
durand c’est bien l’adresse de la machine qu’il faut donner et non pas l’adresse du réseau (le serveur
vpn gère un réseau, mais le client vpn n’est qu’une machine de ce réseau privé virtuel).
Address : C’est l’adresse IP réelle de la machine. (Ce paramètre n’est nécessaire que sur la machine
laDefense, en effet le client doit trouver le serveur et pour cela il doit connaître son adresse IP réelle).
La Défense
II.4
durand
LES CLEFS DE CHIFFREMENT
Un Vpn est basé sur le chiffrement. En effet toutes les communications entre les deux machines vont
être chiffrées de façon à les rendre incompréhensibles à toutes machines extérieures au Vpn. Or pour
chiffrer les communications chaque machine doit posséder un jeu de clefs (une clef privée et une clef
publique). Pour générer le jeu de clefs qui sera utilisé par Tinc, vous devez lancer une fenêtre Dos,
puis aller dans le répertoire \program files\Tinc et tapez la commande suivante : tincd –n vpn –K.
tincd est le nom du démon Tinc qui va gérer le vpn, -n indique pour quelle liaison Vpn on va générer
les clefs (on peut avoir plusieurs liaisons Vpn sur une seule machine). Ici nous tapons vpn car c’est le
nom que nous avons donné à notre vpn. –K indique que l’on veut générer le jeu de clefs.
Vous gardez les noms de
fichiers proposés par
Tinc pour enregistrer les
clefs (tapez Entrée).
Le fichier durand qui
permettait de résoudre en
adresse IP le nom de la
machine de durand,
contient
aussi
maintenant
la
clef
publique de cette même
machine. La clef privée
est enregistrée dans un
fichier à part, qui doit faire l’objet de protections particulières. Dévoiler ce fichier c’est rendre votre
Vpn inutile (on pourra alors déchiffrer vos échanges).
3
Marie-pascale Delamare
Vous devez maintenant donner votre fichier durand à la machine laDefense et après avoir fait la
même opération sur la machine laDefense, donnez votre fichier laDefense à la machine durand. Vous
devez donc avoir deux fichiers dans chacun de vos répertoires hosts.
Attention si plus tard au cours du TP vous devez re-générer votre jeu de clefs vous devez au
préalable faire les opérations suivantes :

Retirer la clef publique du fichier, portant le nom de la machine pour laquelle on re-génère
le jeu de clef, et situé dans le répertoire hosts ;

Supprimer le fichier de nom « rsa_key.priv » situé dans le répertoire vpn
Une fois les clefs re-générées vous devez échanger de nouveau les fichiers situés dans le répertoire
hosts.
II.5
CRÉATION ET CONFIGURATION DE L’INTERFACE RÉSEAU POUR LE VPN
Il nous faut maintenant créer une interface réseau virtuelle pour notre Vpn. Pour cela aller dans le
répertoire \program files\tinc\Tap-Win32 et lancer le programme « addtap.bat ». Ce programme va
créer une nouvelle interface réseau dans la fenêtre des connexions réseau. Aller dans cette fenêtre et
renommer votre nouvelle interface réseau sous le nom que vous avez saisi dans le fichier Tinc.conf en
face du paramètre « Interface » ( dans notre exemple « vpn »).
Il reste maintenant à configurer cette interface en lui donnant une adresse IP sur le réseau Vpn, c’est à
dire dans notre cas une adresse sur le réseau 10.0.0.0/8. La configuration du Vpn est maintenant
terminée.
Effectuer le même paramétrage sur la machine laDefense.
III
LANCEMENT DU VPN
Pour lancer le vpn, ouvrez une fenêtre Dos et tapez la commande tincd –n vpn –D –d5. Il faut
commencer par lancer tinc sur le serveurVpn pour que celui soit déjà en écoute sur le réseau, lorsque
la machine durand tentera de se connecter au vpn. Cette commande permet aussi de suivre dans la
console DOS les échanges effectués entre les deux machines. La connexion de nom « vpn » devient
alors active.
4
Marie-pascale Delamare
IV
FONCTIONNEMENT DE TINC
Chaque démon Tinc est à la fois serveur et client. C’est le paramétrage qui différentie le rôle de la
machine et plus particulièrement le paramètre « ConnectTo » du fichier « tinc.conf ». Si ce paramètre
est présent alors la machine est plutôt considérée comme une machine cliente. Cependant si d’autres
clients veulent se connecter à cette machine alors elle sera aussi serveur.
Voici comment s’établit la communication entre les deux machines, on commence sur le protocole
TCP :
Phase d’échange des clefs :
client <attempts connection>
server <accepts connection>
client ID client 17
+---> version
+-------> name of tinc daemon
server ID server 17
5
Marie-pascale Delamare
+---> version
+-------> name of tinc daemon
client META_KEY 5f0823a93e35b69e...7086ec7866ce582b
\_________________________________/
+-> RSAKEYLEN bits totally random string S1,
encrypted with server's public RSA key
server META_KEY 6ab9c1640388f8f0...45d1a07f8a672630
\_________________________________/
+-> RSAKEYLEN bits totally random string S2,
encrypted with client's public RSA key
Le chiffrement asymétrique sert donc juste à échanger des clefs symétriques. En effet le chiffrement
symétrique est plus performant et plus difficile à craquer que le chiffrement asymétrique pour une
longueur de clef équivalente. C’est donc ce type de chiffrement qui est utilisé au sein d’un vpn, le
chiffrement asymétrique évitant le problème de l’échange en clair de la clef de chiffrement
symétrique.
Phase d’authentification :
A partir de maintenant le client chiffre toutes les communications émises avec sa clef S1.
A partir de maintenant le serveur chiffre toutes les communications émises avec sa clef S2.
client CHALLENGE da02add1817c1920989ba6ae2a49cecbda0
\_________________________________/
+-> CHALLEN bits totally random string H1
server CHALLENGE 57fb4b2ccd70d6bb35a64c142f47e61d57f
\_________________________________/
+-> CHALLEN bits totally random string H2
client CHAL_REPLY 816a86
+-> 160 bits SHA1 of H2
server CHAL_REPLY 928ffe
+-> 160 bits SHA1 of H1
Les deux parties vérifient à qui elles ont affaire. Par exemple le client génère une chaîne aléatoire qu’il
chiffre avec sa clef symétrique S1 avant envoi au serveur. Le serveur déchiffre le message avec la clef
symétrique S1 et renvoie alors au client sa signature électronique de ce message (ce qui consiste à faire
un condensé du message que le serveur chiffre avec sa clef privée). Lorsque le client reçoit la
signature électronique du serveur, il utilise immédiatement la clé publique du serveur pour déchiffrer
la signature électronique, révélant ainsi le condensé de message créé par le serveur. Le client crée
ensuite son propre condensé de message à partir du message original. Si les deux condensés de
messages sont identiques, le client est alors certain que la signature est authentique et vient bien du
serveur.
De son coté le serveur effectue les mêmes opérations. Les deux parties sont donc parfaitement
authentifiées.
Phase de démarrage du Vpn : .
client ACK 655 123 0
| | +-> options
| +----> estimated weight
6
Marie-pascale Delamare
+--------> listening port of client
server ACK 655 321 0
| | +-> options
| +----> estimated weight
+--------> listening port of server
Le Vpn est maintenant opérationnel et les échanges chiffrés, grâce aux clefs échangées, vont
s’effectuer maintenant en utilisant le protocole UDP qui est plus rapide. Le serveur vpn utilise le port
655.
V
VÉRIFICATION DU FONCTIONNEMENT
Vous pouvez normalement faire un ping sur les adresses virtuelles.
Arrêter votre Vpn.
Sur le client durand, vous allez installer WireShark, disponible sur le serveur de la section, pour
pouvoir faire de la capture de paquets et analyser les échanges dans le cadre du vpn.
Une fois ce programme installé, activez la capture de paquet sur l’interface réelle. Lancer maintenant
votre vpn. Qu’observez-vous ?
__________________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
Faire un ping sur l’interface virtuelle de l’autre machine. Qu’observez-vous ?
__________________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
Activez maintenant la capture de paquet sur l’interface fictive, et faire un ping de l’autre machine sur
son adresse virtuelle. Qu’observez-vous ?
__________________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
Activez le serveur Telnet sur votre machine (Outils d’administration, Services et démarrez si besoin
est le serveur Telnet). Vérifiez que le serveur Telnet écoute sur le réseau par la commande netstat –a.
En local effectuez une connexion sur le serveur telnet sur l’adresse virtuelle de la machine puis sur
l’adresse réelle.
7
Marie-pascale Delamare
Depuis l’autre machine, lancez la capture de trames sur l’interface réelle, puis effectuez une connexion
vers le serveur telnet précédemment installé, sur son interface réelle. En observant le contenu des
trames capturées, relevez le user et le mot de passe envoyés en clair sur le réseau.
User : ________
Mot de passe : ______
Lancez maintenant la capture de trames sur l’interface réelle, puis effectuez une connexion vers le
serveur telnet précédemment installé, sur son interface virtuelle. En observant le contenu des trames
capturées, pouvez-vous relever le user et le mot de passe envoyés sur le réseau ?
User : ________
Mot de passe : ______
Vous constatez que les communications entre les deux machines hébergeant tinc sont sécurisées.
VI
LE VPN ET LES ROUTEURS
Rajoutez entre votre client durand et votre serveur laDefense un routeur. Les adresses réelles de vos
machines sont donc modifiées, mais pas les adresses virtuelles. Une fois votre vpn lancé, effectuez une
commande tracert de votre client durand vers le serveur laDefense, d’abord sur les adresses virtuelles
puis sur les adresses réelles.
Que constatez-vous ? ________________________________________________________________
Pourquoi ? _________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
Vous pouvez installer Wireshark sur le nouveau routeur que vous venez de connecter. Que constatezvous à la capture de trames ?
__________________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
VI.1
LE VPN ET DHCP
Installez un serveur DHCP sur votre réseau et paramétrez l’interface réelle du client durand pour
qu’elle obtienne une adresse dynamique. Ce cas correspondant à la réalité, en effet lorsqu’un
utilisateur itinérant tente de se connecter au réseau vpn de son entreprise, il doit d’abord recevoir une
adresse dynamique de son fournisseur d’accès internet.
Cela modifie-t-il le fonctionnement du vpn ? ______________________________________________
Pourquoi ? _________________________________________________________________________
__________________________________________________________________________________
8
Marie-pascale Delamare