Réseau

OpenVPN : Point to Point

Incontestablement, à l’heure actuelle, on doit sécuriser les accès à un réseau distant. En effet, les risques sont trop grands de publier par exemple le bureau à distance directement, sans aucune restriction. Dans le cadre de maintenance pour un client, il est très pratique d’avoir accès à son serveur à distance par exemple. Nous allons donc voir comment sécuriser cet accès.Pour sécuriser cet accès, nous allons mettre en place un VPN de type Point to Point. Ici, donc, uniquement deux communicants : Le serveur et le client. La sécurité sera assurée uniquement par une clé privée. Cette configuration sera présentée sur client/serveur sous Windows. Mais elle est facilement transposable aux plateformes Linux.

VPN PTP Clé privée

Inconvénients

Cette configuration est de loin la plus simple à mettre en place. Elle permet de créer un tunnel point to point en quelques minutes. Cependant, elle présente des inconvénients certains :

  • La clé doit être partagée sur les deux équipements.
  • Ne pas bénéficier d’authentification des passerelles.
  • Seulement un client et un serveur dans cette configuration.

Recommandations

Afin d’assurer un minimum de sécurité, il est important de respecter certaines règles :

  • Partager la clé sur chaque équipement par un moyen sécurisé.
  • Lors de la perte de la clé, immédiatement la changer. Le VPN est corrompu.

En effet, la clé est un simple fichier texte, non crypté. Il est donc important, une fois la génération de cette clé faite sur le serveur, d’utiliser un canal sécurisé tel qu’un VPN préexistant, ou un moyen de transport physique (clé usb) pour partager cette clé.

La seule sécurité étant cette clé, si par exemple l’ordinateur client sur lequel la clé est stockée est volé ou perdu, il faut alors immédiatement changer la clé sur le serveur afin d’éviter que quelqu’un ne s’introduise sur votre réseau en utilisant l’accès VPN.

Je rappel que cette configuration ne doit pas être maintenue perpétuellement. Je recommande d’utiliser cette configuration pour un besoin de mise en place très rapide et temporaire, ou pour tests. Par exemple, quand je mets en place une architecture VPN basée sur OpenVPN, je commence par mettre en place cette simple configuration. Ainsi, on peut  s’assurer que le VPN est fonctionnel, et que les équipements réseaux sont bien paramétrer. Ensuite, on modifiera la configuration pour ajouter de la sécurité, par exemple par une infrastructure à clés publiques (PKI) qui utilise des certificats.

Mise en place d’OpenVPN

Installation d’OpenVPN

Il vous faut télécharger le package d’installation d’OpenVPN ICI.

Le package est le même sur le serveur ou le client. Lancez l’installation. Il n’y a qu’à cliquer sur suivant. Seules deux options sont importantes :

OpenSSL Utilities

Cette option doit être cochée. Elle permet de générer des clés.

1 - OpenVPN options

Vous devez aussi cocher (ce qui n’est pas le cas sur cette capture) OpenVPN RSA, juste en dessous. Cette option permet d’installer des outils permettant de générer des certificats pour une infrastructure PKI. Je vous conseille de le faire systématiquement, car j’insiste sur le fait qu’il ne faut pas laisser en production la configuration que nous allons mettre en place. C’est important d’utiliser cette méthode sécurité ensuite (qui fera l’objet d’un autre article d’ici peu, je mettrais le lien).

Carté réseau virtuelle

2 - OpenVPN TAP

Il faut accepter l’installation de cette carte réseau. C’est une carte réseau virtuelle, qui sert à gérer la connexion VPN.

Clé statique

Génération de la clé

Une fois le package OpenVPN installé sur le serveur, il va falloir le configurer.

Lancez une invite de commande sur le serveur.

Déplacez vous dans le répertoire de configuration d’OpenVPN (C:\Program Files\OpenVPN\config)

Là, lancez cette commande :

openvpn --genkey --secret NomDeVotreCLE.key

 Personnalisez le nom de la clé, afin de vous y retrouver lors de configurations complexes.

 Copie de la clé

Maintenant, déplacez cette clé dans le même répertoire, sur le client.

Pour celà, utilisez un moyen de transport sécurisé (physiquement sur une clé), ou par un canal sécurisé existant (VPN).

La seule sécurité de connexion est basée sur cet échange de clé. Dès lors qu’on soupsonne une corruption de celle ci, si on pense qu’elle n’est plus confidentielle, alors il faut la changer! De toutes façons, je le redis, cette configuration ne peut en aucun cas être mis en production, car la sécurité n’est pas suffisante.

Configuration du VPN

Nous allons maintenant paramétrer le serveur et le client VPN afin qu’on puisse monter le tunnel à la demande.

Coté serveur

Rendez vous dans le répertoire de configuration. Nous allons créer le fichier de configuration.

Créez un fichier texte, puis mettez dedans :

dev tun
ifconfig 10.8.0.1 10.8.0.2
secret OVPNTech2Tech.key
  • dev tun : Mode du tunnel VPN. On définit ici le type de pilote. Gardons pour notre cas le mode tun (IP)
  • ifconfig 10.8.0.1 10.8.0.2 : Adressage ip statique. On définit ici l’adresse 10.8.0.1 au serveur, et on lui indique que le client aura l’adresse 10.8.0.2
  • secret OVPNTech2Tech.key : C’est la clé statique que j’ai choisi de générer.

Modifiez ensuite le fichier pour changer l’extension .txt en .ovpn

Lancez OpenVPN GUI (l’interface graphique). Dans le systray, faites un clic droit sur l’icône d’OpenVPN (un écran de PC). Puis choisissez « Connecter ».

OpenVPNserver

L’icône du systray devient jaune. Le serveur est en ligne, en attente de connexion.

Côté client

Même chose, créez le fichier de configuration .ovpn

Personnellement, j’utilise la convention de nommage du fichier client « clientSOCIETE.ovpn ». Ceci, afin de m’y retrouver parmi les fichiers des clients chez lesquels j’accède au réseau par le VPN.

Mettez en configuration :

remote TestServer.tech2tech.fr
dev tun
ifconfig 10.8.0.2 10.8.0.1
secret OVPNTech2Tech.key

 On a donc le même fichier avec deux différence :

  • remote TestServer.tech2tech.fr : Là, vous indiquez l’adresse de votre hôte distant. Nottez aussi que selon vos paramètres NAT, vous pouvez utiliser simplement l’adresse IP publique du site distant.
  • ifconfig 10.8.0.2 10.8.0.1 : C’est en fait l’inverse de tout à l’heure, et c’est logique! Vous indiquez d’abord l’adresse IP du client, puis celle du serveur qu’il va joindre.

Configuration firewall

Il reste à paramétrer le (ou les) firewall, afin de laisser passer le flux réseau d’OpenVPN.

Pour cela, deux choses à faire :

  1. Laisser passer les connexions sur le port 1194 (UDP), port qui est utilisé par défaut par OpenVPN.
  2. Autoriser sur les parefeu des machines les communications de la carte réseau virtuelle installée par OpenVPN.

Dans la majorité des cas, les problèmes de mise en place d’OpenVPN sont en fait un problème de réseau, et souvent un manque de maitrise des autorisations des flux réseaux. Par pitié, si vous maitrisez mal cette partie, ne la mettez pas en œuvre, ou demandez conseil. J’ai vu des sites sur lesquels le firewall est carrément en Pass-all configuration. Ok, ca fonctionne, mais on appel ca un putain de problème de sécurité!!!! (excusez l’emportement!)

Connexion

Afin de se connecter, il faut lancer OpenVPN GUI sur le client.

Ensuite, pareil, sur le systray, clic droit sur l’icône OpenVPN, puis connecter (si vous avez plusieurs fichiers clients, il vous les proposent).

Au bout d’un moment, si tout est ok (ca peut durer une minute ou deux parfois), la connexion s’établit (le tunnel VPN est monté entre les deux nœuds).

OpenVPN_connectionOK

OpenVPN_connected

Afin de vérifier, vous pouvez pinger les machines (je vous rappel que là, vous aurez 10.8.0.2 pour le client par exemple).

Et voilà, vous pourrez utiliser le VPN pour vous connecter à distance!

Paramètres supplémentaires

Vous pouvez améliorer la connexion en ajoutant des paramètres à vos configs :

  • comp-lzo : Permet d’utiliser la compression LZO. Les trames sont compressées dans le tunnel VPN.
  • keepalive 10 60  &  ping-timer-rem : Permet de tester et relancer la connexion automatiquement.
  • persist-tun  &  persist-key : Ne pas relancer le périphérique Tun ni relire la clé sur perte de connexion.

J’espère que cet article vous permettra de faire vos premiers pas avec OpenVPN.

Rendez-vous sur le prochain article pour apprendre à sécuriser votre VPN.

Article suivant : Open VPN : PKI

Samuel Monier

Informaticien indépendant Réseaux et systèmes - Infrastructure - Serveurs. J'interviens sur les départements 42 - 63 - 69 - 43 - 71, et à échelle nationale à distance. N'hésitez pas à me demander conseil!

Articles similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page