Mise en place OpenVpn sur Debian Sommaire I. Situation... 2 II. Configuration d'openvpn sur serveur Debian... 2 a. Installation d'openvpn... 2 b. Création du certificat de l'autorité de certification (CA)... 4 c. Création du certificat et de la clé pour le serveur... 5 d. Création du certificat et de la clé pour le client..5 e. Création du paramètre DIffie Hellman... 6 f. Mise en place des certificats et des clés... 7 g. Création d'un utilisateur pour openvpn... 8 h. Configuration d'openvpn... 9 III. Installation d'openvpn sur le client... 5 a. Configuration du client Windows... b. Lancement client Windows Erreur! Signet non défini.
I Situation : Nous voulons pour ce TP mettre en place le système OpenVPN sur un serveur Debian et sur un client Windows. OpenVPN est un système qui permet de relier des postes distants sur un réseau informatique en passant par internet (par tunnel VPN). II - Configuration d'openvpn sur serveur Debian : a- Installation d openvpn : Prérequis : installer serveur Debian Installer le paquet openvpn : apt-get install openvpn Il faut également installer le paquet OpenSSL (installé par défaut) qui permet de sécuriser le tunnel VPN avec des clés et des certificats : apt-get install openssl b- Création certificat de l autorité de certification : OpenVPN est livré avec divers scripts permettant de générer les clés et les certificats plus facilement, ces scripts sont enregistrés sur «easy-rsa» # cd /usr/share/doc/openvpn/examples/easy-rsa/ On veut éditer le fichier «vars» pour initialiser les variables par défaut de ce fichier qui se trouve dans : # cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/vars - Modifier tel quel : - Initialiser les variables pour les scripts : #../vars - Créer ou réinitialiser le sous-dossier «keys» : #./clean-all - Créer le certificat principal du serveur et la clé correspondante dans «keys» : #./build-ca Attention : Pour les questions, la plupart des champs sont renseigné par défaut sauf le «Common Name» qu on renseigne manuellement. Exemple : «MonServeur»
c- Création du certificat et de la clé pour le serveur OpenVPN Le script suivant permet de créer dans «Keys» le certificat «LeServeurVPN.crt» et la clé «LeServeurVPN.key» pour le serveur VPN nommé par exemple : «LeServeurVPN». #./build-key-server LeServeurVPN Suivre les étapes, les champs sont encore renseigné par défaut sauf pour le «Common Name» qu il faut renseigner. On n est pas obliger de changer le champ «Password» d- Création du certificat et de la clé pour un client OpenVPN Le script suivant permet de créer dans «Keys» le certificat «Client01.crt» et la clé «Client02.key» pour le client VPN nommé par exemple : «Client01». # cd /usr/share/doc/openvpn/exampes/easy-rsa/ #../vars #./build-key Client01 Attention : Il faut renouveller cette operation pour chaque client, tous les champs sont également renseigné par défaut sauf le «Common Name» ex : «Client01» pour le client 1, faire de même pour chaque client, mais avec un Common Name différent pour chaque. e- Création du paramètre Diffie Hellman Le protocole Diffie-Hellman est un protocole de cryptographie utilisé dans les échanges de clés. Ces paramètres sont générés par l exécution du script «build-dh» à partir du dossier /etc/openvpn/easy-rsa Entrez la commande :./build-dh Son exécution donne un résultat du style : «Generating DH parameters, 1024 bit long safe prime, generator 2 This is going to take a long time.+.+.+.+ +..+ +.+ +..+ Il en résultat la création du fichier dh1024.pem dans le dossier /etc/openvpn/easy-rsa/keys/2.0 f- Mise en place des certificats et des clés : Pour le serveur OpenVpn, il suffit de copier les 4 fichiers dans le dossier /etc/openvpn/ : Pour le(s) client(s), il faut copier «ses» deux fichiers une fois que celui-ci sera installé. g- Création d un utilisateur avec des droits limités pour OpenVpn :
Pour limiter les risques d attaques sur OpenVpn, il est préférable de créer un utilisateur «openvpn» pour que le processus d openvpn fonctionne sur cet utilisateur neutre. h- Configuration d OpenVpn Pour configurer le serveur, il faut partir du fichier d exemple «server.conf.gz» qui se trouve dans /usr/share/doc/openvpn/examples/sample-config-files/ Il faut ensuite le décompresser et le mettre dans «/etc/openvpn» Copier le fichier sur le client de /programmes/openvpn/sample-config dans /programmes/openvpn/config : Il suffit d adapter ce fichier en fonction des besoins. Pour ma part : Il faut décocher : #push «route 192.168.10.0 255.255.255.0» #push «route 192.168.20.0 255.255.255.0» #client-config-dir ccd #route 192.168.40.128 255.255.255.248 Remplacer par : User openvpn Group openvpn Après cela, nous allons redémarrer le serveur : #/etc/init.d/openvpn restart # tail -100 /var/log/syslog (à regarder si vous avez des erreurs) On va également vérifier que le processus tourne sous l utilisateur «openvpn» Ensuite, on va vérifier avec la commande «ifconfig» que l interface «tun0» est apparu, on doit réussir à le ping.
Les machines clientes vont pouvoir se connecter au serveur VPN. Mais il faut maintenant configurer le serveur pour qu il joue le rôle de routeur entre l interface VPN (tun0) et l interface physique (eth0). Autoriser le serveur à transmettre des paquets au reste du réseau : # echo 1 > /proc/sys/net/ipv4/ip_forward Verifier que le forwarding est active : # cat /proc/sys/net/ipv4/ip_forward «1» signifie qu activé. Il faut ensuite décommenter la ligne net.ipv4.ip_forward=1 dans le fichier /etc/sysctl.conf afin de rendre le routage permanant. III. Installation d'openvpn sur le client Télécharger et installer la dernière version d OpenVPN GUI sur le site Openvpn.net. La dernière version (2.3.4 ou supérieure) est requise pour un client sous Windows 7. Suivre les instructions lors de l installation. Pendant l installation, l installation d un logiciel de périphérique (TAP-WIN32 Adapter V8) est requise. C est une interface réseau virtuelle nécessaire sur le pc pour permettre la connexion VPN au serveur. a. Configuration du client Windows La première chose à faire est de copier sur le(s) client(s) dans le dossier c:\programfiles\openvpn\config les fichiers servant à l authentification du client via OpenSSL crées auparavant. Ca.crt, Client01.crt et client01.key On peut faire un exemple de fichier avec les informations relatives à la configuration des clients. C est-à-dire ce qu on avait dans server.conf.gz : Client Dev tun Proto udp Remote 192.0.1.2 1194 Resolv-retry infinite Nobind Persist-key
Persist-tun Ca ca.crt Cert Client01.crt Key Client01.key Comp-lzo Verb 1 Normalement, vous n aurez qu à changer l adresse ip à la ligne «remote» et le nom des fichiers ca.crt, Client01.crt et Client01.key Après cela, il ne vous reste plus qu à clic droit sur l icône OpenVpn situé en bas à droite de votre écran à côté de l heure, Puis Connect. Un message apparaît alors sur l icône «Client is now connected»