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