Infobidouille

[MàJ] Tuto : accès à distance aux flux TV Freebox via un VPN

Contrairement aux offres mobiles classiques des opérateurs, les offres « low cost » B&You, Free Mobile, RED et Sosh n’incluent pas la TV dans le forfait de base, et ne la proposent pas toujours en option. Même si la TV sur mobile reste un peu un gadget, il peut tout de même être intéressant d’en profiter à l’occasion. La solution : récupérer les flux TV de votre abonnement fixe.

En effet, si vous êtes abonnés pour le fixe chez Free par exemple, vous avez la possibilité d’accéder à une partie des chaînes depuis un ordinateur raccordé au réseau local de votre box. Je vais donc vous expliquer comment monter rapidement un VPN entre un ordinateur branché au réseau local d’une Freebox et un smartphone Android pour accéder au flux sur ce dernier, même quand il n’est pas connecté en Wi-Fi sur le réseau local.

Cette solution permet alors d’accéder à vos flux Freebox depuis n’importe quelle connexion Internet, en Wi-Fi ou en 3G (à condition toutefois d’avoir un bon débit).

Pour faire simple, j’ai opté pour une solution basée sur OpenVPN Access Server Virtual Appliance, une machine virtuelle clé en main embarquant un petit système Linux et un serveur OpenVPN pré-installé, avec une interface web de configuration.

La première étape est donc de télécharger VMWare Player (pour exécuter la VM) et l’image de la VM, disponible ici.

Une fois VMWare Player installé et la VM décompressée, double cliquez simplement sur le fichier OpenVPN-AS-Appliance.vmx pour démarrer la VM. Si tout se passe bien, vous devriez arriver à ce magnifique écran bleu pas de la mort :

Dans le menu en bas, sélectionnez Login et validez. Le login est root et le mot de passe est openvpnas (attention, le clavier est en QWERTY).

Tapez les commandes suivantes pour modifier le mot de passe de l’utilisateur root, puis celui de l’utilisateur openvpn :

Une fois de retour à l’écran d’accueil, recopiez l’URL indiquée en haut à droite dans votre navigateur pour vous connecter à l’interface de configuration. Le login est openvpn et le mot de passe est le second mot de passe que vous avez saisi juste au dessus.

Dans l’interface, cliquez sur le lien AS Admin Login en haut à droite, puis identifiez-vous à nouveau. Vous voilà dans l’interface d’administration du serveur OpenVPN :

Il faut maintenant adapter quelques paramètres de base :

Il reste maintenant à configurer en détail l’utilisateur, en cliquant sur le lien Show dans la page User Permissions :

Une fois les paramètres sauvegardés, cliquez sur le bouton Update Running Server en haut de la fenêtre, puis déconnectez-vous de l’interface d’administration.

Rendez-vous ensuite dans l’interface d’administration de votre box ou de votre routeur et activez la redirection des ports TCP 4430 (ou toute autre valeur que vous aurez choisie) et UDP 1194 vers l’IP de la VM.

Rendez-vous ensuite sur votre terminal Android et installez l’application OpenVPN Connect.

Lancez ensuite votre navigateur et tapez l’adresse https://hostname:4430, en remplaçant hostname et 4430 par les valeurs configurées plus haut pour Hostname et TCP Port number. Vous devriez obtenir quelque chose comme ça :

Connectez-vous avec l’identifiant openvpn puis descendez en bas de page et cliquez sur le lien Yourself (autologin profile) pour télécharger le profil de connexion. Enregistrez-le dans la mémoire de l’appareil.

Lancez ensuite l’application OpenVPN Connect. Dans le menu en haut à droite, sélectionnez Import puis Import Profile from SD card et sélectionnez le profile que vous venez de télécharger.

De retour à l’écran d’accueil d’OpenVPN Connect, cliquez simplement sur Connect, et si tout s’est bien passé, vous devriez être connecté :

Une petite clé dans votre barre de notification sera affichée tant que vous serez connecté.

Vous pouvez maintenant lancer votre application favorite pour la lecture de vos flux TV Freebox.

[MàJ le 20/05/2013] Merci à Cédric, auteur de l’application TV Box Facile, qui a bien voulu mettre à jour son application pour qu’elle fonctionne en l’absence de connexion Wi-Fi. Pour ce faire, rendez-vous simplement dans les paramètres de l’application et activez l’option « Ne pas vérifier le Wifi ».

Attention toutefois à une (grosse !) limite de cette solution : il faut un débit en upload au moins égal au débit des flux TV fournis par Free, et il faut que votre connexion mobile soit suffisament rapide. En pratique, si vous n’avez pas de connexion fibre, vous serez limité aux flux radio… Attention aussi à votre quota de connexion cellulaire, qui peut exploser très vite : environ 900 Mo par heure avec les flux bas débit de Free… À utiliser donc de préférence uniquement lorsque vous êtes connecté à un point d’accès Wi-Fi.

Bonus

On va maintenant aller un peu plus loin… Si vous me lisez régulièrement, vous savez que je dispose en fait d’une double connexion Internet, avec une connexion ADSL Free et une connexion fibre Orange. Avec ses 50 Mbit/s en upload, cette dernière est largement suffisante pour assurer l’upload des flux TV, même en HD. Voici comment configurer OpenVPN pour profiter de deux connexions.

Tout d’abord, il faut doter la VM de deux cartes réseau virtuelles en mode Bridged, raccordées chacune à un des deux réseaux physiques. Malheureusement, ceci n’est pas possible avec VMWare Player, et il faudra donc passer par VMWare Workstation.

Une fois les cartes virtuelles configurées, redémarrez la VM et connectez vous dessus en root. Éditez le fichier /etc/network/interfaces et remplacez le par le suivant, pour définir une IP fixe sur chacune des interfaces, puis redémarrez la machine :

Elle dispose désormais d’une IP sur le réseau local de la Freebox et d’une IP sur celui de l’autre connexion. Rendez-vous dans l’interface d’administration d’OpenVPN AS et modifiez les paramètres de DMZ du client pour mentionner l’IP de la VM sur le réseau de la Freebox et le champ Hostname pour mettre l’IP publique ou le nom DNS de l’autre connexion.

Connectez vous ensuite en root sur la VM pour adapter les tables de routage. Le but est d’obtenir un routage ne faisant passer par la Freebox que le trafic des flux TV, en renvoyant tout le reste vers l’autre connexion.

Tout d’abord, il faut détruire les deux routes par défaut existantes, car elles ont la même métrique :

(oui, c’est deux fois la même commande, ce n’est pas une erreur)

Ensuite, on ajoute une route vers l’IP utilisée pour les requêtes vers les flux TV, en la forçant à passer par le réseau Freebox :

Ensuite, on recrée deux routes par défaut, une via la Freebox, l’autre via l’autre connexion, avec des métriques différentes pour donner priorité à l’autre connexion :

Vérifiez que tout fonctionne encore correctement, et en particulier l’accès à vos flux TV depuis votre mobile.

Si c’est le cas, il n’y a plus qu’à rendre ces routes persistantes en ajoutant les trois dernières commandes au fichier /etc/network/interfaces, en les précédant de up :

Et voilà !

[Publication originale le 04/05/2013 à 18h31]
[MàJ le 20/05/2013 à 21h45] : ajout du paragraphe TV Box Facile