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é: https://www.ffdn.org/wiki/doku.php?id=documentation:openvpn
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.
Openvpn vous demandera votre login et mot de passe, vous pouvez modifier la configuration pour ne pas avoir à le taper à chaque fois
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.
Avec Debian, Ubuntu, etc. :
sudo apt-get install openvpn
En cours de rédaction.
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.
sudo openvpn ~/vpn/fdn.ovpn(modifier le chemin d'accès si nécessaire) et entrer les identifiants de connexion.
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…)
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.
route 192.0.1.1 255.255.255.255 192.0.0.1
/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.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.
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.
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.
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.
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
Voici maintenant la procédure pour installer la configuration.
Voici une version pas à pas pour MATE:
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.
À écrire.
Version pas-à-pas avec captures d'écran.
Télécharger OpenVPN depuis le site officiel puis l'installer.
Version pas-à-pas avec captures d'écran pour Windows Vista.
Version pas-à-pas avec captures d'écran pour Windows 8.
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.
Version pas-à-pas avec captures d'écran pour Windows Vista.
Version pas-à-pas avec captures d'écran pour Windows 8.
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
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.
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.
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 :
# 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.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:
proto udp
dans le fichier de configuration, et en commentant proto tcp
. Il vaut mieux aussi décommenter explicit-exit-notify
.redirect-gateway def1
, et en décommentant et corrigeant la ligne route
.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.