Configuration d’un proxy via ssh

Parfois on est confronté à un fournisseur d’accès qui prend des libertés avec la neutralité du net, sous couvert de contraintes techniques, en mettant en place du blocage de port ou du filtrage sur certains port. Certain fournisseurs dégradent aussi la connexion comme le cas de free/orange et un gain de temps de réponse sera probablement à la clé avec l’utilisation d’un VPN.

Heureusement il existe une alternative autre qu’un fournisseur VPN qui se gave avec nos données personnelles.

Devenons nous même fournisseur VPN avec … SSH !

[cyklodev_summary]

Matériel:

  • Un linux dans un réseau différent avec un SSH accessible publiquement
  • Un linux sous le réseau du fournisseur filtrant

En route vers la liberté:

Cette liberté n’est qu’à une commande :

ssh -D 1234 user@monserveurlibre

Rien de bien différent à une connexion standard à la différence du -D 1234. Pourtant, regardons les ports en écoutes sur notre machine bridée :

[root@i5 network-scripts]# netstat -tnlpv | grep 1234
tcp        0      0 127.0.0.1:1234          0.0.0.0:*               LISTEN      4633/ssh            
tcp6       0      0 ::1:1234                :::*                    LISTEN      4633/ssh 

On a un port en écoute sur le localhost, voilà le VPN qu’on cherchait. Pour l’explication plus technique, le ssh autorise de base le tunneling et il gère les proxy de type socks. Précisément un proxy de type socks5 qui permet de forward les paquets TCP mais aussi les paquets UDP à la différence du socks4.

En fonction du filtrage que vous subissez le port 22 n’est peut etre pas accessible … mais le 443 (https) l’est forcement !

Le jeu va être de mettre le ssh en écoute sur le 443 mais si vous faites du webhosting ça va coincer. Il existe un paquet qui va vous sauver la mise sslh qui permet le multiplexage SSH/Https sur le même port.

Suivez la lumière:

Pour les navigateurs rien de plus simple, configurons le proxy dans les paramètres en choisissant socks5 et comme valeurs 127.0.0.1 et 1234. L’utilisation d’un extension comme FoxyProxy pour Firefox permettra de switcher de connexion en un clic.

Pour la configuration du terminal un peu de configuration est nécessaire. Parlons des outils comme wget, curl et consort: s’il existe des paramètres à ses commandes pour utiliser un proxy on peut aussi les mettre en variables d’environnement:

export http_proxy=http://127.0.0.1:1234/
export https_proxy=http://127.0.0.1:1234/
export rsync_proxy=http://127.0.0.1:1234/

Pour fixer les choses un fichier de configuration est possible :

vi .wgetrc
http_proxy = http://127.0.0.1:1234/
use_proxy = on
wait = 15

Pour notre yum il va falloir lui spécifié dans le fichier de configuration :

vi /etc/yum.conf
proxy=socks5://127.0.0.1:8888

Et voilà vous êtes libre !

Zephilou

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Post comment