mercredi 19 décembre 2018

OpenVPN - Comment configurer votre VPN ?

Vous venez d'installer Open VPN et vous cherchez à configurer rapidement votre VPN (Virtual Private Network) entre la machine server sur Internet et votre post de travail.

C'est quoi un VPN
C'est quoi un VPN ?
Après l'installation, on remarque la commande installée : "Generate a static OpenVPN key".

Pour générer une Clef (une key) dans le répertoire : C:\Program Files\OpenVPN\config
Utilisez l'exécutable : Generate a static OpenVPN key
Cliquez dessus et voilà le fichier key.txt créé dans le répertoire "config".

Open VPN generate a key
Maintenant, il va falloir temporiser, la compréhension de tout le système OpenVPN va prendre du temps. Ce que l'on comprend assez vite c'est que la configuration du VPN va se faire "à la mano" en modifiant des fichiers de samples du répertoire "sample-config" et en allant les placer dans le répertoire "config".
 
sample-config -> config

Le client c'est votre machine hôte et le server la machine virtuelle sur laquelle vous cherchez à vous connecter en VPN.

J'ai un exemple de VPN configuré avec OpenVPN et dans cet exemple il y a trois fichiers dans le répertoire "config"
  • .p12
  • .ovpn
  • .key
Il s'agit d'un VPN sous Windows. Pour ma part j'ai beau lire les fichiers du répertoire "sample-config", je sens que je vais avoir besoin d'un peu plus de documentation.

Alors il y a bien cette documentation sur le site OpenVPN :


OpenVPN 2x HOW TO - Introduction
OpenVPN 2x HOW TO - Introduction
Il y a pourtant marqué introduction malgré tout c'est un peu costaud comme doc ... d'ailleurs si vous prenez le temps de lire l'Intended Audience :

INTENDED AUDIENCE
This HOWTO assumes that readers possess a prior understanding of basic networking concepts such as IP addresses, DNS names, netmasks, subnets, IP routing, routers, network interfaces, LANs, gateways, and firewall rules.

Bon, en gros vous devez être administrateur réseaux.

Connexion VPN en mode Static Key

Si on n'est pas administrateur réseau comment se dépatouiller ?
Il y a bien le chapitre :

Static Key Mini-HOWTO

C'est tentant, d'autant que l'on a vu comment générer une clef static, ça parait facile. Les restrictions de ce mode de configuration "Limited scalability — one client, one server" ne me posent pas de problème pour l'instant.

1 - Copier la clef statique dans le client et dans le server (en utilisant un canal sécurisé) bon ...
2 - Modifier les machines pour qu'elles soient dans le même domaine.

J'ai beau chercher :

disabling NCP mode (--ncp disable) because not in P2PM client or server mode
There is a problem in your selection of --ifconfig endpoints [local=40.89.154.136, remote=192.168.1.28].  The local and remote VPN endpoints must exist within the same 255.255.255.252 subnet.  This is a limitation of --dev tun when used with the TAP-WIN32 driver.  Try 'openvpn --show-valid-subnets' option for more info.

Il me semble que dans ce cas, c'est l'instruction OpenVPN :

>dev tun

qui est remise en cause et je ne pourrais pas l'utiliser car mes deux machine ne sont pas dans le même subnet ...

Quand je pense que cela fonctionnait tout seul sur mon ancienne machine ...
Allons voir comment sont configurés le "Centre réseau et partage".

Windows - Réseau et Internet
Windows - Réseau et Internet
Il y a une nouvelle "Connexion au réseau" installée par l'install d'Open VPN comme un driver souvenez vous, on nous a demandé d'acquiescer l'installation d'un Driver TAP. C'est peut être en allant regarder la configuration de cette connexion que l'on va comprendre comment configurer notre VPN.

https://github.com/OpenVPN/openvpn/
OpenVPN tap-windows
OpenVPN tap-windows

TAP-Windows pas de doc !? Snif

OpenVPN HowTo Install

Voici la quintessence de la doc ...

VPN avec connexion par pont ou connexion par routage ?

Le routage est probablement le meilleur choix, plus efficace, plus facile à configurer, meilleur contrôle sélectif des droits d'accès.

Voici les fonctionnalités qui nécessitent un Pontage :
  •  le VPN doit pouvoir gérer des protocoles non IP tels que IPX,
  • vous exécutez des applications sur le VPN qui reposent sur des diffusions réseau (telles que des jeux en réseau local), ou
  • vous souhaitez autoriser la navigation sur les partages de fichiers Windows sur le VPN sans configurer de serveur Samba ou WINS.

Numérotation des sous réseaux privés

La configuration d’un VPN implique souvent la mise en réseau de sous-réseaux privés situés à des emplacements différents.

L'IANA (Internet Assigned Numbers Authority) a réservé les trois blocs suivants de l'espace d'adressage IP pour les internets privés (codifiés dans la RFC 1918):

10.0.0.0
10.255.255.255
(10/8 prefix)
172.16.0.0
172.31.255.255
(172.16/12 prefix)
192.168.0.0
192.168.255.255
(192.168/16 prefix)

Il faut sélectionner des adresses minimisant la probabilité de conflit d'adresses IP ou de sous-réseau. Les conflits à éviter sont les suivants :
  • des conflits provenant de différents sites sur le VPN utilisant la même numérotation de sous-réseau LAN, ou
  • connexions d'accès à distance depuis des sites utilisant des sous-réseaux privés en conflit avec vos sous-réseaux VPN.
Par exemple, supposons que vous utilisiez le sous-réseau populaire 192.168.0.0/24 en tant que votre sous-réseau LAN privé. Vous essayez maintenant de vous connecter au VPN depuis un cybercafé qui utilise le même sous-réseau pour son réseau WiFi. Vous aurez un conflit de routage car votre machine ne saura pas si 192.168.0.1 fait référence à la passerelle WiFi locale ou à la même adresse sur le VPN.

Le VPN doit pouvoir identifier les sous-réseaux de manière unique. Il faut éviter les adresses 10.0.0.0/24 ou 192.168.0.0/24 comme adresse de réseau local privé. Les meilleurs candidats sont les sous-réseaux au milieu du vaste réseau 10.0.0.0/8 netblock (par exemple, 10.66.77.0/24).

Et pour éviter les conflits de numérotation IP entre sites, utilisez toujours une numérotation unique pour vos sous-réseaux LAN.

Try 'openvpn --show-valid-subnets' option for more info.

Encore quelques infos afin de pouvoir configurer les sous-réseaux que l'on va mettre en connexion grâce au VPN.
openvpn --show-valid-subnets
OpenVPN - openvpn --show-valid-subnets
Sous forme texte plus pratique :

C:\Program Files\OpenVPN\bin>openvpn --show-valid-subnets
On Windows, point-to-point IP support (i.e. --dev tun) is emulated by the TAP-Windows driver.  The major limitation imposed by this approach is that the --ifconfig local and remote endpoints must be part of the same 255.255.255.252 subnet. 
 
The following list shows examples of endpoint pairs which satisfy this requirement.  Only the final
component of the IP address pairs is at issue. As an example, the following option would be correct:
    --ifconfig 10.7.0.5 10.7.0.6 (on host A)
    --ifconfig 10.7.0.6 10.7.0.5 (on host B)
because [5,6] is part of the below list.
[  1,  2] [  5,  6] [  9, 10] [ 13, 14] [ 17, 18]
[ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38]
[ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58]
[ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78]
[ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98]
[101,102] [105,106] [109,110] [113,114] [117,118]
[121,122] [125,126] [129,130] [133,134] [137,138]
[141,142] [145,146] [149,150] [153,154] [157,158]
[161,162] [165,166] [169,170] [173,174] [177,178]
[181,182] [185,186] [189,190] [193,194] [197,198]
[201,202] [205,206] [209,210] [213,214] [217,218]
[221,222] [225,226] [229,230] [233,234] [237,238]
[241,242] [245,246] [249,250] [253,254]
 
La solution va passer par le configuration du driver réseau TAP-Windows
OpenVPN - TAP-Windows Adapter V9
OpenVPN - TAP-Windows Adapter V9
Considéré ce driver comme une carte réseau donc :


Driver TAP- Windows
Configuration du Driver TAP- Windows
Pour le DNS, j'ai choisi :

208.67.222.222
208.67.222.220

Grâce à l'utilitaire DNSBench


https://www.grc.com/dns/benchmark.htm
Utilitaire DNS Benchmark

OpenVPN Troubles

Sur le Server, je n'ai pas réussi à obtenir une connexion avant de la renommer comme dans à la page suivante :

Windows: issue: netsh command failed: returned error code 1

Etonnant non ?

NETSH: command failed - now OK
NETSH: command failed - now OK
Remarquez le nouveau nom : Ethernet VPN et la connexion est OK !

Attention : Il faut lancer OpenVPN GUI en mode Administrateur

Don’t forget to enable IP Forwarding on the OpenVPN server machine - On Windows

Your computer appears to be correctly configured, but the device or resource (DNS server) is not responding

Method 3: Use the Ipconfig command-line tool. To do this, follow these steps:

1 - Select Start, type command prompt in the Search Programs and files box, press and hold (or right-click) Command Prompt, and then select Run as administrator.
2 - At the command prompt, type the following commands. Press Enter after each command.
>ipconfig /flushdns
>ipconfig /registerdns
>ipconfig /release
>ipconfig /renew

Configuration d'un réseau virtuel dans l'Azure

Configurer des clients OpenVPN sur la passerelle VPN Azure (préversion)
C'est le terme préversion qui fait peur, cela fonctionne t-il ?

Configurer une connexion point à site sur un réseau virtuel à l’aide d’une authentification par certificat Azure native : Portail Azure
Ca se complique ...

Heureusement, il y a un petit dessin :

Configurer une connexion point à site à l'aide d'une authentification par certificat (classique)
Configurer une connexion point à site à l'aide d'une authentification par certificat (classique)
Documentation sur la passerelle VPN Azure
Je crois qu'il faut commencer par là ...

Seulement on s'éloigne de la connexion en mode "Static Key".

On vient de mettre le doigt dans un gros truc, je reviendrai pour finir, c'est promis !

Aucun commentaire:

Publier un commentaire