Deblan blog

Tag #Free

[Astuce] Contourner un bridage HTTP comme celui de Free

...et pas que d'ailleurs.

Si vous avez besoin de contourner un bridage quelconque sur un accès HTTP alors plusieurs dispositifs existent. Dans cet article, deux outils seront présentés et vous verrez qu'ils sont simples à mettre en place.

Avant toute chose, sachez que vous êtes responsable de vos actes, donc évitez de faire ça n'importe où, ça pourrait vous causer des ennuis :)

La première solution pourra être mise en place si vous possédez un serveur Linux. Il s'agit d'installer un proxy HTTP accessible uniquement en local et auquel vous serez connecté via une connexion SSH.

J'ai choisi de travailler avec privoxy et le serveur est sous Debian.

1. Installation de privoxy
$ su -
# aptitude update
# aptitude install privoxy
# aptitude clean

On va vérifier qu'il est en fonctionnement avec lsof. Sachez que privoxy écoute par défaut sur le port 8118.

# lsof -i :8118
COMMAND  PID    USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
privoxy 9064 privoxy    4u  IPv4 1544903      0t0  TCP localhost:8118 (LISTEN)

Si lsof ne retourne rien, vérifiez que le port est ouvert sur votre firewall et relancez le serveur :

# service privoxy restart
2. Ouverture de la connexion coté client

On va ouvrir une connexion SSH vers le serveur et créer un tunnel. Quand votre client effectuera une connexion TCP sur votre machine locale (port 8118), la requête sera transmise au serveur privoxy et ce dernier fonctionnera comme un relais.

2.1. Vous êtes sur Linux, BSD ou bien sur Mac

Dans un terminal :

$ ssh -NL 8118:localhost:8118 votre_serveur -l votre_login

Une fois la ligne de commande entrée, laissez le terminal ouvert.

2.2. Vous êtes sur Windows

Il faudra passer par un client comme Putty. Si vous utilisez Putty, suivez le tutorial suivant. Indiquez simplement "8118" à la place de "8887" et "6667".

3. Configuration du navigateur internet

La dernière étape consiste à configurer votre navigateur internet. Pour ce faire, rendez-vous dans la gestion du proxy et paramétrer le serveur localhost et le port 8118. Voici un exemple avec Firefox :

Proxy Firefox

Sachez qu'avec cette méthode, tout est chiffré entre vous et le serveur proxy. Elle est intéressante pour traverser un réseau susceptible de vous surveiller. L'ensemble des accès vers le web passera par ce proxy sauf si vous indiquez des exceptions (noms de domaines). Comme le trafic est chiffré, vous aurez nécessairement une perte de débit plus ou moins importante suivant votre machine, le serveur et le débit entre


La méthode suivante est intéressante dans le cas de Free. En effet, il n'est pas nécessaire de passer tout le temps dans le proxy mais seulement sur certaines pages. On va donc utilisez un service en ligne (autre type de proxy). J'ai choisi de travailler avec Proxfree car il a le mérite d'être gratuit et de faire le taf qu'on lui demande.

Vous avez maintenant deux solutions : vous rendre sur Proxfree et rentrer manuellement les informations ou bien automatiser tout cela.

De mon coté, je suis un flemmard et je n'ai pas envie de le faire manuellement. Mon objectif ici sera d'accéder à Youtube et contourner les restrictions de débit de Free (mon FAI).

1. Préparer votre navigateur

Pour continuer la manipulation, vous devrez installer le plugin Greasemonkey. Il est disponible pour Firefox, Chrome et un mec a même fait un plugin pour Internet Explorer. Pour rappel, Greasemonkey permet d'exécuter des scripts javascript sur les pages de son choix.

2. Configurer Greasemonkey

Note : Greasemonkey vous demandera quel éditeur de texte vous utilisez.

Une fois Greasemonkey installé, ajoutez-lui un nouveau script. Plusieurs paramètres vous seront demandés : indiquez "proxy_free" comme nom et comme namespace puis incluez les URL suivantes : http://www.proxfree.com/?proxy_it et http*://*youtube.*/watch*. Vous pourrez ajouter d'autres URL si vous le désirez. La seule obligatoire est http://www.proxfree.com/?proxy_it.

Une fois ces paramètres définis, il faudra placer le code suivant :

// ==UserScript==
// @name        proxy_free
// @namespace   proxy_free
// @include     http*://*youtube.*/watch*
// @include     http://www.proxfree.com/?proxy_it
// @version     1
// ==/UserScript==


if((document.location.href).toString().indexOf('proxy_it') === -1) 
{
	GM_setValue('get', document.location.href);
	GM_setValue('main_submission', 'PROXFREE');
	GM_setValue('pfserverDropdown', 'http://eu.proxfree.com/request.php?do=go');
	GM_setValue('allowCookies', 'on');
	GM_setValue('removeTitle', 'on');
	GM_setValue('pfipDropdown', 'FR-Rou');
	GM_setValue('removeScripts', 'on');
	GM_setValue('removeObjects', 'on');
	GM_setValue('noReferer', 'on');
	GM_setValue('noUseragent', 'on');

	var proxy = document.createElement('div');
	proxy.innerHTML = '<div style="position: fixed; top: 100px; left: 0; background: red; padding: 5px"><button id="proxy_it" onclick="document.location.href = \'http://www.proxfree.com/?proxy_it\'">PROXY</button></div>';
	document.body.appendChild(proxy);
}
else
{
	var form = document.getElementsByTagName('form')[0];
	var form_html = '';
	var fields = ['get', 'main_submission', 'pfserverDropdown', 'allowCookies', 'removeTitle', 'pfipDropdown', 'removeScripts', 'removeObjects', 'noReferer', 'noUseragent'];

	for(i in fields) {
		form_html += '<input type="hidden" name="'+fields[i]+'" value="'+GM_getValue(fields[i])+'" />';	
	}

	form.innerHTML = form_html;
	form.submit();
}
3. Tester que tout fonctionne

La dernière étape consiste à tester que Greasmonkey et le script fonctionnent bien. Pour ce faire, rendez-vous sur une page de visualisation de vidéo Youtube. Vous devriez voir une bouton rouge très moche tout à gauche de votre page. Cliquez dessus et attendez un instant. Ce script va automatiquement configurer Proxfree et vous rediriger (derrière le service) sur Youtube.

Enjoy :)


Free et Youtube, la preuve que c'est une question d'argent

Ce n'est pas nouveau : entre Free et Youtube (en autres) il y a des réductions de débit importantes. Pourquoi cela ? Rien d'officiel pour le moment et aucune communication n'est faite à ce sujet. Mais naïvement j'ai téléphoné au service technique car je pensais que mon routeur était défectueux, j'ai expliqué le problème et après 45 minutes de conversation, voila ce que mon interlocteur du service client Free m'a répondu :

« [...] Une panne de facturation entre Free et Youtube parce qu'il y a des droits [...] »

D'après le service client, cette panne est connue et remontée par le service technique, un ticket est d'ailleurs ouvert depuis le 26 octobre 2012. Les Freenautes subissent ça depuis des mois déjà.

Des stats de débit ont déjà été faits et je vais vous diriger vers le blog de bartounet avec cette article qui décrit très bien ce que je raconte.

Voici une illustration du bridage par Free contourné par l'utilisation d'un proxy. C'est mon ami Ohax qui est à l'origine de la vidéo.


A défaut de faire un long discours, voila les moments clés de l'entretien.

Télécharger le fichier.

Il m'en aura fallu du temps pour en arriver là mais c'est bien clair : c'est une histoire d'argent qui conduit Free à brider Youtube.

Je ne vais pas faire un énième discours sur la neutralité du net mais sachez que si personne ne réagit alors ces pratiques vont continuer et s'intensifier ! C'est tout bonnement dangereux et il faut lutter contre !

Note : si on me ressort que la vidéo prend trop de bande passante et que c'est légitime de brider Youtube alors je souhaite aussi que ma télévison par Internet en HD qui fonctionne à merveille soit elle aussi bridée. Après tout, ça devrait aussi les embêter...