[Linux] Programmer un VPN perso pour passer tous les barrages

[Linux] Programmer un VPN perso pour passer tous les barrages

Le problème avec les VPN classiques (OpenVPN, …) est qu’ils sont souvent bloqués dans les hôtels ou les réseaux wifi publics. En effet, l’anonymat que ces outils procurent ne plaît pas forcément aux tenanciers. Le blocage des outils VPN connus est facile, il suffit de bloquer les ports TCP correspondant.

Au final vous êtes obligé de surfer en clair, avec tous les problèmes de sécurité que cela implique.

Par ailleurs, on sait très bien que, même si openvpn passe, il est fortement déconseillé d’acheter sur des sites de e-commerce via ces connexions qui aboutissent souvent chez des prestataires (sauf si le serveur openvpn est chez vous, mais c’est la mort à paramétrer).

Avec mon système, vous pouvez contourner l’empêchement des VPN dans les hôtels et même acheter sur des sites de e-commerce en toute sécurité, et la configuration de l’architecture est simplissime.

Je l’ai testé dans des hôtels un peu partout dans le monde, dont beaucoup bloquaient les VPN, et il a fonctionné partout.

Comment ça marche ?

Le plus beau c’est que c’est beaucoup plus simple à mettre en œuvre que n’importe quel autre système de VPN, y compris OpenVPN.

Le principe est simple : vous lancez un programme appelé proxy2 sur une machine que vous laissez allumée chez vous (idéalement un raspberry pi).

Ensuite vous partez en voyage et depuis l’hôtel dans lequel vous résidez, vous vous connectez au réseau de l’hôtel. Ensuite vous lancez sur votre machine à l’hôtel un programme appelé proxy1. Il suffit ensuite de paramétrer firefox de sorte qu’il utilise ce proxy1 local qui n’est rien d’autre qu’un proxy SOCKS4.

A ce moment là, tous les échanges web entre votre machine a l’hôtel et chez vous sont chiffrés. Tout votre trafic internet passe par votre connexion à la maison. Depuis votre hôtel vous surfez avec votre adresse IP de la maison.

Le chiffrement entre l’hôtel et la maison est effectué par l’algorithme de chiffrement de flux RC4 (après une petite initialisation en AES 256).

Une clé de chiffrement de 32 octets est incluse dans les 2 programmes proxy1 et proxy2 (qui doivent avoir la même clé pour des raisons évidentes), que vous pouvez changer avant de compiler.

De même, les ports de fonctionnement des programmes proxy1 et proxy2 sont paramétrables avant compilation. Par défaut, proxy1 écoute sur le port local 10000 et proxy2 écoute sur le port 20000 chez vous.

Evidemment, pour que cela marche il faut que votre raspberry pi à la maison ait une adresse IP accessible depuis internet et que votre livebox rende accessible depuis Internet le port utilisé sur votre PI. Ce paramétrage est hors scope du présent article.

Voilà, il n’y a plus qu’à. Le package logiciel est disponible ici.