Free - Services du compte Freebox > Internet : paramétrage connexion, accès et options Freebox

[TUTO] Connexion à la Freebox en OpenVPN (Bridgé et Routé) depuis Windows 10

(1/4) > >>

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 DynamiqueAller 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 PCCela 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 :

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

pull
dev tap0

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

--- Fin du code ---

Modifiez le en rajoutant les 2 lignes suivantes :


--- Code: ---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...

--- Fin du code ---

"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 :

--- Code: ---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...

--- Fin du code ---

Modifiez le comme tel :


--- Code: ---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...

--- Fin du code ---

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.
--- Fin de citation ---

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

Navigation

[0] Index des messages

[#] Page suivante

Utiliser la version classique