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 :
Tapez les commandes suivantes pour modifier le mot de passe de l’utilisateur root, puis celui de l’utilisateur openvpn :
1 2 3 4 5 6 7 8 9 |
root@openvpnas:~# passwd Enter new UNIX password: Retype new UNIX password: passwd: password update successfully root@openvpnas:~# passwd openvpn Enter new UNIX password: Retype new UNIX password: passwd: password update successfully root@openvpnas:~# exit |
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 :
- sur la page Server Network Settings, remplacez le Hostname par votre adresse IP publique (si votre IP n’est pas fixe, vous pouvez utiliser un service type DynDNS et saisir votre nom DNS),
- sur la même page, changez le TCP Port number, par exemple, 4430 (il semblerait que le 443 pose problème avec certaines box, car il est utilisé pour l’accès distant à l’interface d’administration de la box),
- sur la page VPN Settings, assurez vous que l’option Should client Internet traffic be routed through the VPN est bien à Yes,
- sur la page User Permissions, cochez la case Allow Auto-login pour l’utilisateur openvpn.
Il reste maintenant à configurer en détail l’utilisateur, en cliquant sur le lien Show dans la page User Permissions :
- activez les options Use Dynamic, Use NAT et Configure DMZ IP address,
- dans le champ DMZ IP Address, recopiez l’adresse IP de la VM.
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é :
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 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp address <IP de la VM sur le réseau Freebox> netmask 255.255.255.0 network <IP du réseau de la Freebox (.0)> broadcast <IP broadcast du réseau de la Freebox (.255)> gateway <IP locale de la Freebox> auto eth1 iface eth1 inet static address <IP de la VM sur l'autre réseau> netmask 255.255.255.0 network <IP de l'autre réseau (.0)> broadcast <IP broadcast de l'autre réseau (.255)> gateway <IP locale de l'autre routeur> |
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 :
1 2 |
root@openvpnas:~# route del default root@openvpnas:~# route del default |
(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 :
1 |
root@openvpnas:~# route add 212.27.38.253 metric 0 gw <IP locale de la 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 :
1 2 |
root@openvpnas:~# route add default metric 10 gw <IP locale de l'autre routeur> root@openvpnas:~# route add default metric 20 gw <IP locale de la Freebox> |
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 :
1 2 3 4 5 |
up route del default up route del default up route add 212.27.38.253 metric 0 gw <IP locale de la Freebox> up route add default metric 10 gw <IP locale de l'autre routeur> up route add default metric 20 gw <IP locale de la Freebox> |
Et voilà !
[Publication originale le 04/05/2013 à 18h31]
[MàJ le 20/05/2013 à 21h45] : ajout du paragraphe TV Box Facile