VPN : installation et configuration d'un VPN routé avec OpenVPN par Mathieu And

VPN : installation et configuration d'un VPN routé avec OpenVPN par Mathieu Androz (Accueil) Date de publication : 05/04/2009 Dernière mise à jour : 03/12/2010 Cet article traite de l'installation et de la configuration d'un réseau privé virtuel ou VPN avec le logiciel Open Source OpenVPN. VPN : installation et configuration d'un VPN routé avec OpenVPN par Mathieu Androz (Accueil) - 2 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'authorisation de l'auteur. http://mathieu-androz.developpez.com/articles/linux/vpn/ Introduction...................................................................................................................................................................3 I - Qu'est-ce qu'un VPN ?............................................................................................................................................4 II - Installation d'OpenVPN.......................................................................................................................................... 5 III - Génération des certificats et clés d'authentification............................................................................................. 6 III-1 - Initialisation des variables de génération.....................................................................................................6 III-2 - Génération du certificat et de la clé d'autorité de certification..................................................................... 6 III-3 - Génération du certificat et de clé pour le serveur....................................................................................... 7 III-4 - Génération des certificats et clés pour les clients....................................................................................... 7 III-5 - Génération des paramètres de Diffie-Hellman.............................................................................................7 IV - Configuration.........................................................................................................................................................9 IV-1 - Prérequis...................................................................................................................................................... 9 IV-2 - Configuration du serveur............................................................................................................................10 IV-3 - Configuration des clients............................................................................................................................11 IV-3-a - Clients Linux......................................................................................................................................11 IV-3-b - Clients windows XP ou Vista............................................................................................................ 12 IV-3-c - Alternative clients windows Vista ou Seven......................................................................................14 V - Conclusion........................................................................................................................................................... 15 Remerciements.......................................................................................................................................................... 16 VPN : installation et configuration d'un VPN routé avec OpenVPN par Mathieu Androz (Accueil) - 3 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'authorisation de l'auteur. http://mathieu-androz.developpez.com/articles/linux/vpn/ Introduction OpenVPN est un logiciel libre permettant de créer facilement une liaison VPN site à site. OpenVPN permet à des pairs de s'authentifier entre eux à l'aide d'une clé privée partagée à l'avance ou de certificats. Il fonctionne sur un mode client/serveur, ce qui implique son installation sur les 2 sites distants, l'un côté client, l'autre côté serveur. VPN : installation et configuration d'un VPN routé avec OpenVPN par Mathieu Androz (Accueil) - 4 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'authorisation de l'auteur. http://mathieu-androz.developpez.com/articles/linux/vpn/ I - Qu'est-ce qu'un VPN ? Un VPN (Virtual Private Network) ou Réseau Privé Virtuel en français est connexion inter-réseau permettant de relier 2 réseaux locaux différents de façon sécurisé par un protocole de tunnelisation. La tunnelisation est un protocole permettant aux données passant d'une extrémité à l'autre du VPN d'être sécurisées par des algorithmes de cryptographie. Le terme tunnel est utilisé pour symboliser le fait qu'entre l'entrée et la sortie du VPN les données sont chiffrées et donc normalement incompréhensibles pour toute personne située entre les deux extrémités du VPN, comme si les données passaient dans un tunnel. De plus, créer un tunnel signifie aussi encapsuler un protocole dans un protocole de même niveau du modèle OSI (IP dans IPSec par exemple). Dans le cas d'un VPN établi entre deux machines, on appelle client VPN l'élément permettant de chiffrer les données à l'entrée et serveur VPN (ou plus généralement serveur d'accès distant) l'élément déchiffrant les données en sortie. (Wikipedia) VPN : installation et configuration d'un VPN routé avec OpenVPN par Mathieu Androz (Accueil) - 5 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'authorisation de l'auteur. http://mathieu-androz.developpez.com/articles/linux/vpn/ II - Installation d'OpenVPN Remarque : La méthode d'installation proposée dans cet article repose sur le fonctionnement de la distribution Debian et ses dérivés. Pour les autres distributions, veuillez vous reporter aux commandes de gestions des paquets implantées pour la distribution choisie. Installation d'OpenVPN proprement dit : Installation d'OpenVPN > apt-get install openvpn Installation d'OpenSSL pour la sécurisation des données : Remarque : Généralement, OpenSSL est installé par défaut sur les machines et ne nécessite donc pas d'être réinstallé. Installation d'OpenSSL > apt-get install openssl VPN : installation et configuration d'un VPN routé avec OpenVPN par Mathieu Androz (Accueil) - 6 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'authorisation de l'auteur. http://mathieu-androz.developpez.com/articles/linux/vpn/ III - Génération des certificats et clés d'authentification L'installation d'OpenVPN crée un dossier dans /usr/share/doc/openvpn/easy-rsa/ contenant tous les scripts permettant de générer facilement tous les certificats et clés d'authentification nécessaire au fonctionnement d'OpenVPN. Avant toute chose, créez un dossier easy-rsa dans le répertoire d'OpenVPN et copier les scripts originaux dedans afin de centraliser applications et scripts : Création du répertoire easy-rsa > mkdir /etc/openvpn/easy-rsa/ Copie des scripts > cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/ On crée ensuite un dossier keys destiné à contenir les différents certificats et clés générés : Création du répertoire destiné à contenir les clés et certificats > mkdir /etc/openvpn/easy-rsa/keys/ III-1 - Initialisation des variables de génération A partir du dossier /etc/openvpn/easy-rsa/, il faut dans un premier temps éditer le fichier vars afin d'initialiser différentes variables servant à la génération des certificats : Edition du fichier vars > nano /etc/openvpn/easy-rsa/vars On entre les informations personnelles comme suit : Informations à renseigner dans le fichier vars Export KEY_DIR=$D/keys Export KEY_COUNTRY=FR Export KEY_PROVINCE=FR Export KEY_CITY=Lyon Export KEY_ORG=example Export KEY_EMAIL=example@toto.org Enfin, on exécute enfin le script afin d'initialiser les variables : Exécution du script vars > . ./vars attention la commande est bien : point - espace - point/vars ! III-2 - Génération du certificat et de la clé d'autorité de certification OpenVPN fonctionne sous un mode PKI (Public Key Infrastructure). Selon ce mode, le serveur et chaque client possède un certificat (appelé également clé publique) et une clé privée qui leur sont propres. Un certificat d'autorité de certification (master CA) et une clé privée sont utilisés pour signer les certificats du serveur et de chaque client. Ce master CA permet une authentification bidirectionnelle : chacun des clients et serveur authentifient donc l'autre réciproquement en vérifiant dans un premier temps que le certificat qu'ils proposent a bien été signé par le master CA. VPN : installation et configuration d'un VPN routé avec OpenVPN par Mathieu Androz (Accueil) - 7 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'authorisation de l'auteur. http://mathieu-androz.developpez.com/articles/linux/vpn/ Pour générer ce master CA et la clé correspondante, il faut exécuter les scripts suivants à partir du dossier /etc/ openvpn/easy-rsa : Exécution du script clean-all > ./clean-all > ./build-ca L'exécution du script build-ca entraîne la création du certificat ca.crt et de la clé ca.key dans le répertoire /etc/ openvpn/easy-rsa/keys. III-3 - Génération du certificat et de clé pour le serveur La génération du certificat et de la clé du serveur VPN se fait simplement, par l'exécution du script build-key-server, toujours à partir du dossier /etc/openvpn/easy-rsa : Génération du certificat et de clé pour le serveur > ./build-key-server nom_choisi_pour_le_serveur Attention : La commande d'éxecution du script build-key-server doit être suivie d'un nom donné au serveur. Ce nom n'a pas d'importance en soit, il peut être ce que vous voulez. L'important est de toujours utiliser le même nom quand celui-ci est demandé ! Différentes informations sont demandées pendant l'exécution de ce script : « Commun-name » : Entrez le nom du serveur que vous avez pour lancer le script !!! « Sign the certificate ? » : tapez "yes" « 1 out of 1 certificate requests certificated, commit » : tapez "yes" Ce script conduit à la création des fichiers nom_choisi_du_serveur.crt et nom_choisi_du_serveur.key dans le dossier /etc/openvpn/easy-rsa/keys. III-4 - Génération des certificats et clés pour les clients De la même façon, ils sont générés par l'exécution du script build-key à partir du dossier /etc/openvpn/easy-rsa/ : Génération des certificats et clés pour le client1 > ./build-key nom_du_client1 Attention : Encore une fois, de même manière que pour le serveur, l'exécution du script build-key demande d'entrer le nom du client : Pour le paramètre « Commun-name », saisissez le même nom que nom_du_client1 que vous avez utilisé dans la commande ! Répétez cette opération autant de fois que vous voulez pour générer plusieurs certficats et clés si vous avez plusieurs clients. N'oubliez pas cependant de changer de nom_du_client à chaque fois !!! Ce script entraine la création des fichiers nom_du_client1.crt et nom_du_client1.key dans le dossier /etc/opnevpn/ easy-rsa/keys. III-5 - Génération des paramètres de Diffie-Hellman Le protocole Diffie-Hellman est un protocole de cryptographie utilisé dans les échanges de clés. VPN : installation et configuration d'un VPN routé avec OpenVPN par Mathieu Androz (Accueil) - 8 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'authorisation de l'auteur. http://mathieu-androz.developpez.com/articles/linux/vpn/ Pour plus d'information, je vous invite à vous rendre sur la page de Wikipedia traitant de ce sujet. uploads/s3/ vpn-tpb.pdf

  • 34
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager