nikosdemikonos

Préambule
Bonjour,
Ayant moi même bien profité de ce forum pour toute mes questions existentielles sur le Free, il me parait normal d'y contribuer aussi de temps en temps.

L'objet de ce Tuto est de réaliser une connexion à la FREEBOX REVOLUTION à distance, et de passer par la FREEBOX pour tout type de flux (Internet et autre). Je l'ai fait dans le but de bénéficier d'une IP Française depuis l'étranger et de pouvoir joindre les machines de mon réseau local. On trouve un peu de tout sur les forums, mais c'est un peu façon puzzle, je vais essayer de condenser cela.

Restrictions :
  • Le Firmware de la Freebox est 3.4.1 au moment ou j'écris le post. Comme il y a un certain nombre de bugs corrigés à chaque release, il se peut que mes remarques ne soient plus valables dans un firmware ultérieur
  • Le Client utilisé sera Windows 10, cela peut être différent pour un Mac , IOS, ou Android
  • Abonnés Fibre  ATTENTION : Nos amis de FREE par défaut partagent joyeusement notre IP publique avec d'autres Freenautes en partageant les ports par range suivant l'abonné ! Cela provoque une restriction sur les ports utilisables et notamment sur ceux qui sont configurés par défaut pour le VPN. Il faut demander une IPV4 privée via l'interface abonné de FREE ce qui est très rapide (30mn) puis rebooter la freebox. Ce petit détail m'a fait perdre un temps considérable car ce n'est précisé nulle part. La meilleure façon de le vérifier est d'aller dans l'interface FREEBOX OS >> OPTIONS >> GESTION DES PORTS >> CONNEXIONS ENTRANTES. Si des ports sont en rouge, c'est que vous avez une restrictions sur ceux ci et donc aucune chance que cela fonctionne  :(
Accès VPN en mode Bridge

Rappel
Le mode "Bridge" permet une liaison au niveau transport (niveau 2) entre le client et le réseau de destination. Concrètement, la machine va se comporter comme si elle était sur le réseau distant, sans restrictions. Cela est utile par exemple pour taper le NAS de la Freebox à distance depuis l'explorateur Windows, ou faire passer des protocoles exotiques (IPX ...) qui ne sont pas routables. L'inconvénient est que le broadcast passe également dans le tuyau ...

1/ Configuration FREEBOX
Dans l'interface du FreeboxOS :
Aller dans OPTIONS >> PARAMETRES >> VPN >> Utilisateurs.
  • Ajouter un utilisateur via le "+"
  • saisissez un login et mdp
  • laisser en IP Dynamique
Aller dans OPTIONS >> PARAMETRES >> VPN >> OpenVPN Bridgé
  • Cocher "activer"
  • Choisir le port
  • Choisir le protocole (perso j'ai mis TCP juste au cas d'une connexion internet de mauvaise qualité)
Vous notez au passage la possibilité de télécharger le fichier de configuration (.ovpn) lié à votre utilisateur créé précédemment. Téléchargez le et  mettez le de côté, il servira à configurer le client OPENVPN plus tard.

2/ Configuration Client sous Windows 10

Tout d'abord télécharger le client OpenVPN (pour cet exemple la version était 2.4.1) ici >> https://openvpn.net/index.php/open-source/downloads.html
Lancer l'installer en laissant les options par défaut mais en vérifiant bien qu'il va installer l'interface réseau virtuelle (TAP) et l'IHM (GUI).

Aller dans %USERPROFILE%\OpenVPN\Config et copier le fichier de configuration téléchargé depuis la freebox.

La configuration du client est terminée !

3/ On se connecte !

Connectez vous à un fournisseur internet autre (comme un partage internet d'un téléphone par exemple).

Lancer "OpenVPN GUI" en mode administrateur. Si vous ne le faites pas , la connexion ne se fera pas correctement car il y a modification des tables de routage et des configurations IP des interfaces.
Faire un clic droit sur l'icone OpenVPN dans la taskbar et choisir la connexion correspondant à votre fichier de configuration (config_openvpn_bridge_<user name>)

Si vous avez tout bien fait, l'icone va passer au vert et vous allez constater les choses suivantes :
  • l'IP de votre connexion sur la carte virtuelle TAP est une IP de votre sous réseau local de la FREEBOX
  • vous avez accès à l'ensemble des machines du réseau local de la Freebox
  • vous voyez le NAS de la Freebox dans l'explorateur
  • ... mais tout autre flux de destination passe par votre provider internet local !! Notamment on ne sort pas sur internet via la Freebox, mais par l'accès internet du PC
Cela peut être un choix intéressant en terme de performance mais dans mon cas , je souhaite justement depuis l'étranger ressortir par la Freebox pour surfer sur Internet

Voici donc une alternative pour lancer tout le flux dans le VPN :

Editer le fichier de configuration situé dans %USERPROFILE%\OpenVPN\Config. Il doit ressembler à cela :
client
remote <IP publique FREEBOX> <PORT>
proto tcp-client
nobind
dev-type tap

pull
dev tap0

auth-user-pass
auth-retry interact
etc... etc...

Modifiez le en rajoutant les 2 lignes suivantes :

client
remote <IP publique FREEBOX> <PORT>
proto tcp-client
nobind
dev-type tap

pull
dev tap0
#----------MODIF----------------------------------------
route-gateway 192.168.0.254
redirect-gateway def1
#----------/MODIF----------------------------------------
auth-user-pass
auth-retry interact
etc... etc...

"192.168.0.254" représente l'adresse IP de la Freebox sur votre réseau local. Adaptez si vous n'avez pas une conf standard.

Cela aura comme effet de mettre une route par défaut vers la Freebox pour tous les flux , au travers du VPN. Autre modification : une route entre votre ISP et l'IP publique Freebox afin de maintenir le tunnel malgré ce changement de route par défaut (faire un "Route print -4" pour le vérifier)

Voila ! Normalement vous savez tout faire en mode bridge ! Vérifiez bien via un site du style "www.mon-ip.fr" que lorsque vous surfez, vous passez bien par la freebox et non par le provider local.


Accès VPN en mode Routé

Rappel
Le mode "routé" permet d'atteindre le réseau de la freebox en IP (Niveau 3). Cela permet notamment de sortir sur Internet via la Freebox, ce qui correspond à mon cahier des charges ! En revanche tout autre protocole ne pourra pas passer dans le VPN, ce qui fait une différence notable avec le mode "bridgé". Ce mode est pour moi complètement buggé pour Windows 10 et si l'on lit les forum, ce n'est sois-disant pas possible de le faire marcher pour des raisons de topologie ... On va voir que c'est tout à fait possible de le faire marcher... moyennant quelques modifs.

Sur Android, en utilisant un bon client VPN à savoir "OpenVPN for Android", ça marche nativement par contre. On voit que nos amis développeurs n'aiment pas Microsoft, c'est mal. Moi je suis comme notre nouveau président j'aime tout le monde !!

Comme la configuration du serveur VPN poussée au client ne fonctionne pas sous Windows (erreur du style "inconfig adresses are not in the same /30 subnet (topology net30)"), j'ai tenté de deviner au travers des logs ce que pouvait être la conf IP de l'ensemble. Donc pour moi, ça devrait ressembler à ça (une fois le tunnel monté) en supposant que vous avez laissé la config par défaut de la freebox en 192.168.0.254 :

CLIENT WINDOWS (192.168.27.65) <=====> (192.168.27.94) SERVEUR VPN FREEBOX (192.168.0.xx) <=========> FREEBOX (192.168.0.254)

1/ Configuration de la FREEBOX

Réaliser les mêmes étapes que pour la configuration bridgé sauf que vous pourrez gardez l'utilisateur créé précédemment et bien sur cette fois ci il faut aller dans "OpenVPN Routé". Prendre un autre port TCP ou UDP et choisir IPV4 comme protocole supporté.

Récupérer le fichier de configuration lié à votre utilisateur qui va s'appeler maintenant config_openvpn_routed_<user_name>.ovpn et mettez le de côté (on va le modifier plus tard). Ce fichier marchera parfaitement sur un client Android par ailleurs.

2/ Configuration du client sous Windows 10

Installer le client OPENVPN comme expliqué dans le mode bridge et executez le en mode administrateur.
Copiez le fichier de config récupéré précédemment dans le répertoire %USERPROFILE%\OpenVPN\Config

3/ On se connecte !

Connectez vous à un fournisseur internet autre (comme un partage internet d'un téléphone par exemple).

Lancez la connexion (bien choisir le "routed" cette fois ci). Normalement , la connexion partira en erreur et la raison invoquée sera dans le log "inconfig adresses are not in the same /30 subnet (topology net30)". Si vous voulez en voir plus il faudra rajouter une directive dans le fichier de configuration "verb 4" qui rendra la log bavarde.

Cela provient si je lis bien les logs d'une config "pushée" par le serveur OpenVPN FREE qui semble poser problème. l'adresse IP du client est 192.168.27.65 et celle de la terminaison de tunnel 212.27.38.253 , qui ne sont pas vraiment sur le même subnet !
L'astuce est donc d'ignorer une partie des paramètres poussés par le serveur OPENVPN et de rajouter les bonnes valeurs côté fichier de conf client.

Editez le fichier "%USERPROFILE%\OpenVPN\Config\config_openvpn_routed_<user_name>.ovpn" . Avant modif, ça doit ressembler à cela :
client
remote <IP Publique FREEBOX> <PORT VPN>
proto tcp-client
nobind
dev-type tun

pull
dev tun0
redirect-gateway
auth-user-pass
auth-retry interact
etc... etc...

Modifiez le comme tel :

client
remote <IP Publique FREEBOX> <PORT VPN>
proto tcp-client
nobind
dev-type tun

pull
dev tun0
#----------MODIF----------------------------------------
topology subnet
ifconfig 192.168.27.65 255.255.255.224
pull-filter ignore "ifconfig"
route-gateway 192.168.27.94
#----------/MODIF---------------------------------------
redirect-gateway
auth-user-pass
auth-retry interact
etc... etc...

La directive pull-filter ignore "ifconfig" va empêcher le serveur OpenVPN de la FREEBOX de pousser une configuration IP sur l'interface de la carte réseau virtuelle.

On fixe également du coup son IP (192.168.27.65) et le masque (255.255.255.224), on change la topologie de "net30" à "subnet" (google est ton ami pour comprendre pourquoi) et on fixe la passerelle sur ce que je suppose être la terminaison du VPN côté Freebox (192.168.27.94).
Notez au passage que via la directive "redirect gateway", l'ensemble du flux part bien dans le VPN.

Vérifiez bien via un site du style "www.mon-ip.fr" que lorsque vous surfez, vous passez bien par la freebox et non par le provider local.

Et voila , tout marche comme sur des roulettes , donc c'était possible 8)

futal

Merci pour cet excellent tutoriel, indispensable vu le nombre de modifs nécessaires pour que ça marche !

J'ai quelques remarques après avoir suivi toutes les étapes :
  • Il faut demander une IPV4 privée fixe (et publique) via l'interface abonné de FREE, ça ne marcherait évidemment pas si l'adresse était privée comme c'est par exemple le cas avec la plupart des connexions 3G/4G.
  • Dans la partie OpenVPN en mode Routé, j'ai également dû changer le serveur DNS, à la fois pour l'interface virtuelle (qui utilisait encore 212.27.38.253 comme DNS) et pour l'interface physique (je ne sais pas pourquoi aussi celle-là pour laquelle j'ai dû utiliser le DNS de Google 8.8.8.8, du coup je ne sais pas si les requêtes DNS passent par le tunnel).
  • Pour le mode Bridgé, je sèche encore pour faire passer tous les flux par le tunnel.

mat0

Hello,
merci beaucoup nikos pour ce tuto !
Je voulais juste ajouter chez moi, pour le mode bridgé, la modif à faire était :

#----------MODIF----------------------------------------
route-gateway 192.168.1.254
redirect-gateway def1
#----------/MODIF----------------------------------------

et non pas 192.168.0.254 .
Peut-être est-ce le pb que futal a rencontré ?

En tout cas, grâce à cette modif, je ne vois pas de défaut au mode bridgé.
L'overhead n'est pas gênant pour un usage normal, et surtout _tout_ le réseau est accessible.

There's no place like home !
-m-

lenny878

Bonjour,

je dois être une buse mais à cette étape, je bug:

------------------------------------------------------------------
Dans l'interface du FreeboxOS :
Aller dans OPTIONS >> PARAMETRES >> VPN >> Utilisateurs. 

-Ajouter un utilisateur via le "+"
-------------------------------------------------------------------

Je ne retrouve pas cette option sur ma FB, je n'ai que l'option suivante:

"+ ajouter une connexion"

puis je sélectionne OPENVPN,
mais je ne sais pas quoi mettre dans le login utilisateur/MDP
(le fichier est un KEY.txt que j'ai généré en mode admin avec le logiciel téléchargé sur OPENVPN si j'ai pas fait d'erreur)

cordialement

Lenny878


acnielo

Citer
Le mode "Bridge" permet une liaison au niveau transport (niveau 2) entre le client et le réseau de destination.

Niveau 2 c'est liaison de données - raté  :'(
transport c'est dans les couches hautes ( niveau 4 )

rogerT

Merci beaucoup pour ce tutoriel clair et efficace.
Cela a réglé immédiatement mon problème avec OpenVPN sous WIn7 qui me tenait éveillé depuis quelques jours  :P .
(connexion à une FreeBox Revolution firmware 3.5.3).

1/ Amélioration à trouver
J'ai juste constaté le problème suivant avec la fonction "Reconnect" (soit via le menu, soit via le bouton de la fenêtre "Statut"):
elle échoue car, comme le montre la fenêtre des connexions du serveur OpenVPN, la machine est toujours "Etat : Authentifié" et on voit une connexion "Etat : En attente d'authentification".

La solution immédiate est de déconnecter manuellement la machine depuis le serveur (console FreeBox/Serveur VPN/Connexions). La machine se reconnecte assez vite au VPN.
La solution "par défaut" estad'ttendre que la reconnexion échoue (35 fois en un peu moins de 4 mn dans mon cas). C'est pénible pour l'utilisateur qui n'est plus connecté au VPN pendant ce temps (le ping vers ou depuis d'autres machines est négatif).
J'ai réussi à obtenir un état inconsistant en interrompant les tentatives de reconnexion du client : le client affichait "Connecter" dans son menu, suggérant qu'il était déconnecté. Tandis que le serveur le voyait connecté "Etat : Authentifié". Là encore point de ping.
J'ai réussi à sortir de cet état inconsistant en  faisant "Connecter" depuis le client : après 15 échecs (AUTH_FAILED), la machine apparaissait connectée pour le serveur et pour elle-même en tant que client. Et là :ping à gogo et IP de la Freebox :) .

Avez-vous une solution alternative propre ? (qui teste s'il y a connexion et se déconnecte avant de se reconnecter)
quelles seraient les directives à ajouter au fichier de configuration .ovpn ?
Merci


2/ ID et PWD
Pour info, comme sur une machine Linux, pour éviter de se voir demandé ID et PWD d'utilisateur OpenVPN, j'ai ajouté les directives suivantes dans le fichier .ovpn
(...)
redirect-gateway
auth-nocache                                                                           # élimine un Warning
auth-user-pass "D:\\path-to-ovpn-config-file\\login.txt"
# utilise ID et PWD renseigné dans login.txt (sur deux lignes)
etc...
La "protection" de cet accès au VPN existe par le fait qu'il faut se connecter au VPN en tant qu'administrateur.
C'est une protection à vérifier, car il existe des moyens de configurer l'accès au VPN sur une machine Windows pour des utilisateurs Windows non administrateurs.

jflycee

Merci pour ces informations très précises.
Je ne suis vraiment pas un spécialiste mais je suis obligé de m'intéresser au VPN pour utiliser un serveur domotique  (raspberry) derrière un routeur 4G (residence secondaire) qui ne possède pas de vrai IP publique (probleme connu). J'ai essayé de créer mon propre serveur open VPN avec un autre raspberry connecté à ma Freebox (vrai ip public dans ma résidence principale)… le client et le serveur se connectent mais je n'arrive pas à accéder au service web installé sur mon serveur domotique… sans doute un probléme de routage qui m'echappe.

Voyant qu'il y avait un serveur open vpn déjà installé sur la freebox, je voudrais essayer... je crois comprendre comment utiliser le systéme que tu exposes pour acceder du client au reseau qui est derrriére le serveur openvpn de la freebox mais comment, à l'inverse, accéder au client qui est connecté a mon routeur 4G à partir d'un client (windows ou linux) qui serait lui chez moi sur le reseau local de la frrebox?

Merci d'avance pour léventuelle 'aide apportée
Cordialement

Fr


rvs

Bonjour à tous,

Je suis en échec sur la configuration du server VPN sur la Freebox mini 4K (version 3.0.1)
J'ai un smartphone Android (samsung S7) et j'ai une erreur error: ifconfig addresses are not in the same /30 subnet (topology net30) --> mauvais mask sur ifconfig et mauvais serveur dns --> openvpn mode routé

Pourriez vous m'aider svp ?

Merci






alain166

Bonjour
Merci pour cet excellent tuto,
mais j'ai une problème:
J'ai installé OpenVPN pour Android avec succès sur mon smartphone Android 6.0. (en Accès VPN mode Routé)
Mais quand je l'installe sur ma box TV version Android 4.4.2, je reçois ce message d'erreur:
      L'ouverture de l'interface / dev / tun a échoué
    ERREUR: Impossible d'ouvrir tun
Que faire ?
merci par avance
PS: J'ai la Freebox révolution
« Modifié: 01 septembre 2018 09:53:57 par alain166 »

paullefebvre

Restez en sécurité et profitez de vitesses ultrarapides grâce à meilleur vpn pour mac qui soit PureVPN.

futal

@jflycee : pour accéder avec une machine (raspberry1) connectée en 4G avec une IP privée, vous pouvez essayer deux approches :

a) en "reverse ssh": installer un serveur ssh sur raspberry2, brancher raspberry2 sur la Freebox, rediriger 2 ports vers raspberry2 (par exemple le port 22->22 et 2222->2222, le second doit être >1024). Raspberry1 se (re)connecte automatiquement à raspberry2 en ouvrant un tunnel sur le port 2222 à l'arrivée. On peut alors se connecter à la Freebox sur le port 2222 et ainsi se retrouver sur raspberry1. J'ai déjà essayé, ça marche bien.

b) en connectant raspberry1 au VPN de la Freebox (en mode bridge je suppose) puis en redirigeant un port de la Freebox vers l'IP locale de raspberry1 (ex : 192.168.27.65). Je n'ai pas encore testé.

@rvs : j'ai eu le même problème. J'ai galéré pour trouver la  solution : dans OpenVPN for Android, il faut décocher l'option "OpenVPN 3 Core" (donc choisir "Use OpenVPN 2.x" et non pas "Use the C++ OpenVPN library (experimental)"). Le fichier .ovpn fourni par la Freebox marche alors sans modification pour moi.

paullefebvre

Un VPN rapide comme PureVPN comblera le fossé entre vous et le contenu auquel vous souhaitez accéder sans aucun retard.

jflycee

@jflycee : pour accéder avec une machine (raspberry1) connectée en 4G avec une IP privée, vous pouvez essayer deux approches :

a) en "reverse ssh": installer un serveur ssh sur raspberry2, brancher raspberry2 sur la Freebox, rediriger 2 ports vers raspberry2 (par exemple le port 22->22 et 2222->2222, le second doit être >1024). Raspberry1 se (re)connecte automatiquement à raspberry2 en ouvrant un tunnel sur le port 2222 à l'arrivée. On peut alors se connecter à la Freebox sur le port 2222 et ainsi se retrouver sur raspberry1. J'ai déjà essayé, ça marche bien.

b) en connectant raspberry1 au VPN de la Freebox (en mode bridge je suppose) puis en redirigeant un port de la Freebox vers l'IP locale de raspberry1 (ex : 192.168.27.65). Je n'ai pas encore testé.

@rvs : j'ai eu le même problème. J'ai galéré pour trouver la  solution : dans OpenVPN for Android, il faut décocher l'option "OpenVPN 3 Core" (donc choisir "Use OpenVPN 2.x" et non pas "Use the C++ OpenVPN library (experimental)"). Le fichier .ovpn fourni par la Freebox marche alors sans modification pour moi.

Merci Futal, la solution b) fonctionne (surement moins "fine" que la a) mais plus simple) mais le lien n'est pas super stable. Je vais essayer maintenant de connecter deux clients distants du serveur VPN de la freebox.

cdlt

FJ

paullefebvre

Télécharger VPN  et connectez-vous à n’importe quel endroit et laissez l’application faire des merveilles en arrière-plan. Rapide, simple et facile à utiliser.