Qu'est-ce qu'un VPN ? Quelle est son utilité ?

VPN est l'acronyme de Virtual Private Network, soit réseau privé virtuel.

Un VPN permet de réaliser une connexion sécurisée entre des ordinateurs distants au travers d'une connexion non sécurisée (Internet), comme s'ils étaient sur le même réseau local.

Voir wikipedia pour plus de détails.

Pour les personnes curieuses et à titre d'information, la doc du serveur: doc_serveur et la configuration du serveur est sur le wiki de la fédé: http://www.ffdn.org/wiki/doku.php?id=documentation:openvpn

Configurer sa machine pour utiliser l'offre VPN de FDN

La mise en place d'un VPN nécessite l'installation d'un serveur VPN d'un côté et d'un client VPN de l'autre. L'équipe VPN de FDN a choisi le serveur OpenVPN, il faut donc installer le client OpenVPN sur le poste à connecter.

Le fichier de configuration est identique pour GNU/Linux , Windows, android, iPhone, etc. Le certificat est intégré à la configuration, mais vous voudrez éventuellement le récupérer à part.

Préambule

Si vous avez un compte VPN

Openvpn vous demandera votre login et mot de passe, vous pouvez modifier la configuration pour ne pas avoir à le taper à chaque fois

Si vous n'avez pas de compte VPN

Vous pouvez utiliser le VPN openbar, qui vous donnera une IP publique dynamique. Attention: le débit sera limité selon les dons qui sont fait pour le VPN openbar. Actuellement ces dons ne sont pas encore mis en place, le débit est donc limité à 1Mbps.

Openvpn vous demandera un login et un mot de passe, vous pouvez mettre n'importe quoi, ça passera. Vous pouvez modifier le fichier de configuration pour ne pas avoir à le refaire à chaque fois.

GNU/Linux

En lignes de commande

Installation du client OpenVPN

Avec Debian, Ubuntu, etc. :

sudo apt-get install openvpn

Configuration du client OpenVPN

En cours de rédaction.

  • Créer le fichier de configuration sous le nom fdn.ovpn (par exemple dans ~/vpn/) avec ce contenu.

Note: pour éviter d'avoir à retaper le login et le mot de passe à chaque connexion, on peut ajouter à côté de auth-user-pass le nom d'un fichier contenant le login sur la première ligne, et le mot de passe sur la deuxième ligne.

Utilisation du VPN FDN

  • Utiliser la commande
    sudo openvpn ~/vpn/fdn.ovpn
    (modifier le chemin d'accès si nécessaire) et entrer les identifiants de connexion.
  • La connexion est initialisée. Après un certain temps, une ligne “Initialization Sequence Completed” doit apparaître dans la console.

Passage par un proxy HTTP

Il se peut que la connexion dont on a disposition ne donne en fait accès qu'à un proxy HTTP. Openvpn fournit une option pour passer par cela:

  http-proxy www.example.com 1234

Si ça ne fonctionne pas non plus, il est possible d'utiliser directement l'IP alternative, vpn-rw.fdn.fr, comme serveur vpn en udp ou tcp sur les ports généralement non filtrés (443…)

Configuration DNS

Si vous utilisez un VPN total (option redirect-gateway def1, activée par défaut), il faut faire attention à l'accès au serveur DNS.

  • Soit vous continuez à utiliser le DNS du Fournisseur d'Accès Internet local. Si son adresse IP est dans le préfixe de votre interface réseau, i.e. directement accessible sans passer par la passerelle, il n'y a rien à faire. Si son adresse IP n'est pas dans ce préfixe, i.e. il faut passer par la passerelle, il vous faut ajouter la route à la main, pour que la résolution ne passe pas dans le VPN. Par exemple si le serveur DNS est 192.0.1.1 et la passerelle 192.0.0.1, ajouter:
  route 192.0.1.1 255.255.255.255 192.0.0.1
  • Soit vous voulez utiliser les DNS de FDN (80.67.169.12 et 80.67.169.40), vous pouvez les mettre dans /etc/resolv.conf , un par ligne avec nameserver devant leur adresse. Il vous faudra par contre faire attention à la compétition entre cette modification manuelle (ou automatique par openvpn selon les scripts utilisés), et votre client dhcp usuel qui voudra remettre le DNS du Fournisseur d'Accès Internet local.

Configuration IPv6

Tout un préfixe /48 est routé sur votre tun, on peut le voir dans la partie “Abonnements VPN” de l'espace adhérent https://vador.fdn.fr/adherents . Par ailleurs, une IP est automatiquement configurée pour vous. Par exemple, pour un préfixe IPv6 2001:910:1314::/48, l'IP 2001:910:1314:ffff::1 est automatiquement configurée.

Configuration fine du routage

Si vous n'activez pas la route par défaut via le tunnel, vous voudrez sans doute router finement selon la source des paquets, sinon différents effets bizarres surviendront. Pour cela, utiliser:

  ip route add default dev tun0 table 200
  ip rule add from 80.67.160.0/18 table 200
  ip -6 route add default dev tun0 table 200
  ip -6 rule add from 2001:910:1000::/38 table 200
  ip -6 rule add from 2001:910:0802::/48 table 200

Ce qui va bien faire rentrer dans le tunnel tout ce qui utilise votre IP VPN.

Lancer le VPN pour certaines applications uniquement

Les noyaux récents supportent les Net Namespaces (CONFIG_NET_NS=Y). Cela permet de définir des interfaces et règles réseaux disponibles exclusivement pour un groupe de processus que l'on définit.

On peut décider, par exemple, de lancer un navigateur/client mail/client IRC passant par le VPN FDN.

Quelques commandes commentées ci-après, à exécuter dans cet ordre

  ip netns add vpnfdn # crée un net namespace vpnfdn
  ip link add veth0 type veth peer name veth1 # crée une paire veth (virtual ethernet) 
  ip link set veth0 netns vpnfdn # on assigne le côté veth0 de la paire au netns vpnfdn. L'autre côté reste dans le netns principal
  

Ici, on a créé un lien entre les deux netns : les paquets envoyés sur veth1 sortent sur veth0 et vice versa. Maintenant, comme on veut accéder aux internets pas-forcément-neutres de notre FAI historique pour pouvoir contacter le serveur VPN de FDN, on va permettre une connexion. Ceci se fait avec un bridge. On bridge ensemble veth1 et notre interface réseau physique. Ainsi, veth1 verra les paquets passant sur l'interface réseau physique et les transmettra. Comment cela est obtenu varie selon les distributions GNU/Linux. Je le laisse en exercice au lecteur (debian: brctl addbr br0; brctl addif br0 eth0; brctl addif br0 veth0; ifconfig eth0 0.0.0.0; dhclient br0;)

Une fois le bridge établi, on va pouvoir avoir du réseau dans le netns vpnfdn… quand il aura des routes. On va ouvrir un shell dedans

  ip netns exec vpnfdn bash
  

On peut lancer un multiplexeur de terminaux pour permettre de récupérer ce contexte réseau ensuite.

Les commandes suivantes se lancent dans le shell qu'on vient de lancer. On va monter l'interface lo qui est par défaut éteinte dans les netns puis faire une requête DHCP sur la veth0.

  ifconfig lo up
  dhclient veth0
  

Une fois cela fait, on peut lancer openvpn avec notre fichier de configuration pour FDN

  openvpn fdn.conf

On peut ensuite vérifier sa configuration réseau

  ip ro ls
  wget -qO - http://ifconfig.me/ip

…et lancer un navigateur ou toute autre application.

Lancer un multiplexeur de terminal type tmux ou screen permet de récupérer la session rapidement et de lancer plusieurs processus sans avoir à jongler avec fg, bg et les redirections de sortie.

En mode graphique : avec Network Manager

Network Manager est le logiciel de gestion de connexion (réseaux filaires, wifi) par défaut sous gnome et peut être utilisé sous d'autres environnements de bureau. Il gère aussi le montage d'un tunnel VPN. C'est l'un des clients les plus populaires.

Installation du client OpenVPN

Le greffon pour openvpn de Network Manager n'est peut être pas installé, cherchez les paquets “network-manager-openvpn” et “network-manager-openvpn-gnome” ou ayant un nom similaire, et installez-le. Ensuite, redémarrer le démon pour charger le greffon.

Par exemple, avec Debian ou ubuntu :

sudo apt-get install network-manager-openvpn network-manager-openvpn-gnome
sudo systemctl restart NetworkManager

Configuration du client OpenVPN via Network Manager

Voici maintenant la procédure pour installer la configuration.

  • Enregistrer sur votre disque le fichier de configuration fdn.ovpn (abonnement) ou le fichier de configuration fdn-open.ovpn (openbar) selon ce que vous souhaitez utiliser.
  • Clic droit sur l'icône Network Manager → “Modifications des connexions”, puis onglet “VPN” → “Importer une configuration VPN enregistrée” et retrouver le chemin du fichier.
  • En haut de la fenêtre, vous pouvez renommer la connexion (au hasard : “Connexion VPN FDN”).
  • Insérer les identifiants comme suit :
    • le nom d'utilisateur : de la forme xxx@vpn.fdn.fr si vous avez un abonnement, ce que vous voulez si vous utilisez le VPN openbar
    • le mot de passe, à mémoriser parfaitement et ne pas écrire sur un post-it en dessous du clavier, ce que vous voulez si vous utilisez le VPN openbar, le serveur ne vérifie rien.
  • Une fois l'ordinateur connecté à son réseau physique classique et habituel (en Ethernet filaire sur le réseau de la fac, en wifi, en fibre optique, en mobile via une clé 3G, via n'importe quel réseau habituel en fait), il n'y a plus qu'à activer le VPN d'un simple clic sur “Connexions VPN” → “Connexion VPN FDN”.
  • Network Manager établit alors le tunnel sécurisé entre la machine et le réseau de FDN. Au niveau visuel l'apparition d'un cadenas au-dessus de l'icône habituelle de Network Manager indique que la connexion débouche sur un VPN.
  • Il est possible de le vérifier en ligne de commande également : la commande “ifconfig” (nécessite d'être root) montre une nouvelle interface réseau “tun0” (pour tunnel 0) ayant pour adresse attribuée une IP du bloc 80.67.179.xxx, qui est le bloc d'adresses réservées pour le service VPN de FDN :

Voici une version pas à pas pour MATE:

* ODT PDF

Voici des versions pas à pas qui semblent être obsolètes :

* Version pas-à-pas kde avec captures d'écran. * Version pas-à-pas gnome avec captures d'écran.

Windows XP

À écrire.

Windows Vista et Windows 8

Installation du client OpenVPN

Version pas-à-pas avec captures d'écran.

Télécharger OpenVPN depuis le site officiel puis l'installer.

Configuration du client OpenVPN pour accéder au VPN de FDN

Version pas-à-pas avec captures d'écran pour Windows Vista.

Version pas-à-pas avec captures d'écran pour Windows 8.

  • Créer le fichier de configuration fdn.ovpn dans le dossier config d'OpenVPN (C:\Program Files\OpenVPN\config\ par défaut ; la version pas-à-pas avec captures d'écran propose une manière graphique de récupérer cette information), avec ce contenu.

Note : il faut lancer Notepad avec les droits administrateur pour écrire dans les dossiers système de Windows (ouvrir le menu “Démarrer” (touche “Windows”), taper “notepad” et effectuer la combinaison Ctrl+Maj+Entrée (Ctrl+Shift+Enter)).

La configuration est terminée.

Utilisation du VPN FDN

Version pas-à-pas avec captures d'écran pour Windows Vista.

Version pas-à-pas avec captures d'écran pour Windows 8.

  • Lancer l'interface graphique d'OpenVPN en faisant un clic droit sur l'icône “OpenVPN GUI” puis en sélectionnant “Exécuter en tant qu'administrateur” (“Run as administrator”). Une icône doit apparaître dans la barre des tâches (à coté de l'horloge). Effectuer un clic droit sur celle-ci, puis sélectionner “Connecter” (“Connect”). Entrer les identifiants de connexion et cliquer sur “OK”.
  • La connexion est initialisée. Après un certain temps, une ligne “Initialization Sequence Completed” doit apparaître. Peu après, la fenêtre de connexion disparaît et plusieurs indices montrent que l'on est correctement connecté.
    • Premier indice : une infobulle apparaît au dessus de l'icône de OpenVPN dans la barre des tâches.
    • Second indice : l'icône de OpenVPN passe à la couleur verte.
    • Troisième indice : en lançant un terminal (avec le programme “cmd”) et en tapant “ipconfig”, on doit retrouver l'IP affectée à l'interface créée par OpenVPN.

Téléphone

Votre téléphone peut éventuellement prendre un fichier .ovpn, vous pouvez utiliser ce fichier fdn-open.ovpn pour le VPN open-bar, ou ce fichier fdn.ovpn pour votre VPN abonné.

TODO: tester avec différents OS

Android

Sur le dépôt fdroid, vous pourrez trouver comme client VPN l'application Openvpn for android. figv2 Une fois installée, il suffit de l'ouvrir et d'y importer le fichier fdn-open.ovpn pour le VPN open-bar, ou le fichier fdn.ovpn pour votre VPN abonné. Le VPN de FDN est alors configuré.

En cliquant sur ce VPN, vos identifiant et mot de passe sont demandés : le VPN s'active une fois qu'ils sont renseignés.

Lire la FAQ et la documentation pour plus d'informations.

iOS

Testé et Validé sur iOS 8.1

On peut utiliser l'application OpenVPN pour configurer openvpn. Pour la télécharger: https://itunes.apple.com/fr/app/openvpn-connect/id590379981?mt=8 ou via App Store

Il suffit de récupérer le fichier de configuration sur votre ordinateur fdn-open.ovpn pour le VPN openbar ou fdn.ovpn pour le VPN abonné, d'ouvrir l'éditeur de texte (TextEdit) et de bien penser à sélectionner “Convertir au Format Texte” dans le menu Format. Puis de copier les lignes de configuration (attention de bien copier jusqu'au ”# 8←———————” sinon le fichier sera coupé au niveau du certificat et la configuration échouera.

Puis enregistrer le fichier avec l'extention .ovpn Ouvrir iTunes, naviguer dans votre téléphone puis dans App et en sélectionnant OpenVPN il est possible d'importer un fichier, il suffit de sélectionner le fichier .ovpn fraichement créé.

Il n'est pas nécessaire de copier le certificat car celui-ci est déjà inclus dans le fichier de configuration.

Il ne reste plus qu'à lancer l'application OpenVPN, il trouvera le fichier de configuration.

MacOS X

Tutoriel pas à pas avec captures.

Testé et Validé sur MacOS 10.9.5, 10.10.4, 10.11.

On peut utiliser Tunnelblick pour configurer openvpn, son téléchargement s’effectue depuis le site officiel.

La configuration prendra moins de 3 minutes, cependant voici quelques petits pièges à éviter :

  • Il suffit de récupérer le fichier de configuration fdn-open.ovpn pour le VPN openbar, ou fdn.ovpn pour le VPN abonnés, d'ouvrir l'éditeur de texte (TextEdit) et de bien penser à sélectionner “Convertir au Format Texte” dans le menu Format avant de coller le contenu du presse-papier. Puis de copier les lignes de configuration (attention de bien copier jusqu'au # 8←——————— sinon le fichier sera coupé au niveau du certificat et la configuration échouera), et d’enregistrer le fichier avec l'extention .ovpn. Il ne reste plus qu'à double-cliquer sur le fichier .ovpn fraîchement créé et celui-ci sera ajouté automatiquement dans les configurations de Tunnelblick.
  • Il n'est pas nécessaire de copier le certificat car celui-ci est déjà inclus dans le fichier de configuration.

Amélioration de la configuration

La configuration fournie ici contient un paramétrage par défaut qui devrait fonctionner dans la grande majorité des situations. Il y a notamment deux choses qu'un utilisateur pourrait vouloir changer:

  • Par défaut TCP est utilisé pour se connecter. C'est le plus “passe-partout”, mais c'est aussi le moins efficace, surtout si l'on a une connexion à Internet qui ne fonctionne pas très bien. On peut basculer en UDP en décommentant proto udp dans le fichier de configuration, et en commentant proto tcp. Il vaut mieux aussi décommenter explicit-exit-notify .
  • Par défaut, une fois le tunnel lancé tout le trafic Internet passe par le VPN. On peut vouloir ne faire passer que certaines destinations, en commentant redirect-gateway def1, et en décommentant et corrigeant la ligne route.

Un souci ?

En cas de souci, n'hésitez pas à envoyer un mail à support@fdn.fr, en incluant dans votre mail la sortie des commandes

route -n
ifconfig

Si dans le log d'openvpn vous voyez à répétition

SENT CONTROL [_.fdn.fr]: 'PUSH_REQUEST' (status=1)

peut-être que vous venez d'être déconnecté violemment de la précédente session, et il faut attendre quelques minutes, pour que la précédente meure vraiment avant de pouvoir en établir une nouvelle. Si le problème persiste, contacter support@fdn.fr pour que l'on voie à tuer la session fantôme.

 
travaux/vpn_misc/doc.txt · Dernière modification: 25/11/2018 13:44 par adhacc-772
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante:CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki