Un proxy personnel chiffrant

Dans un monde parfait, personne n'a besoin d'un proxy personnel

Tu as de la chance. Tu travailles dans une société parfaite. Tu n'as jamais remarqué le moindre problème dans ton entreprise. Par exemple, il n'y a pas de proxy sortant. Et par exemple, il n'y a aucun logiciel de statistiques qui trace, par utilisateur, par adresse IP, le volume de données échangées, les sites web que tu visites le plus souvent, enfin, en gros, tout ce que tu fais sur l'internet, bien trié. Par site. Par utilisateur. Par période de temps. Tout bien archivé.

Ce n'est pas que tu passes ton temps à naviguer sur des sites de pornographie chevaline, mais si un tel système était installé à ton insu, cela, évidemment, t'exaspérerais un peu. Quelle chance de ne pas avoir cette inquiétude dans l'âme.

Comme tu es serein, tu ne te dis pas que tu vas pouvoir profiter de ta machine sur l'internet comme relai http, encapsulé dans le protocole ssh. Cette machine sur l'internet ne sera donc pas ton serveur personnel ou plus simplement ta box reliée à ta freebox ou ce que tu veux. Cette machine ne s'appellerait donc pas, par exemple, 'extproxy' dans cet exemple.

Ce que tu n'as donc pas à faire

Tu n'installes donc pas un logiciel de proxy sur ta machine distante, 'extproxy', par exemple, tinyproxy:

 apt-get install tinyproxy

Tu n'édites pas le fichier de configuration /etc/tinyproxy/tinyproxy.conf, afin qu'il ne ressemble pas du tout à cette configuration, pour un besoin personnel:

 User nobody
 Group nogroup
 Port 8080
 Listen 127.0.0.1
 Timeout 600
 Logfile "/var/log/tinyproxy.log"
 LogLevel Connect
 PidFile "/var/run/tinyproxy.pid"
 MaxClients 100
 MinSpareServers 5
 MaxSpareServers 10
 StartServers 5
 MaxRequestsPerChild 0
 Allow 127.0.0.1
 ViaProxyName "tinyproxy"

Ainsi, ton proxy, que tu ne configures pas, n'accepte les connexions que de 127.0.0.1.

L'inutile configuration de ton poste local

Dans ta merveilleuse entreprise respectueuse de ta vie privée, tu n'as donc pas besoin de faire un tunnel SSH entre ta machine locale et ta machine extérieure 'extproxy'. Tu ne tapes donc pas:

  ssh -L 8080:127.0.0.1:8080 extproxy.mondomaine.tld

avant de naviguer sur l'internet.

Tu n'as pas non plus à configurer ton navigateur pour utiliser comme proxy local, sur ton navigateur, comme adresse de proxy 127.0.0.1 et comme port 8080. Par ailleurs, pour cette configuration inutile, tu peux utiliser l'excellente extension SwitchProxy de firefox.

Tu n'as pas à vérifier que c'est bien ton proxy qui est utilisé lorsque tu navigues, en tapant sur 'extproxy' la commande:

tail -f /var/log/tinyproxy.log

Tu n'as pas besoin de faire tout cela, parce qu'il n'y pas de problème de vie privée. Tu as la paix de l'âme. Parce qu'il n'y a pas de vie privée.

Les choses que tu n'as même pas à améliorer

* Malgré l'instruction dans le fichier de conf de ne binder QUE sur l'adresse loopback, tinyproxy bind quand même sur l'adresse extérieure. Solution temporaire: une règle de faïheuroualle pour interdire les connexions vers le port 8080.

* Le paquet Debian semble avoir un petit bug sur les droits du fichier /var/run/tinyproxy.pid ce qui est un peu relou, mais corrigeable.

Autres fonctions de tinyproxy

En complément de cette astuce, que tu n'utiliseras donc pas, comme tu l'as bien compris, si tu as un laptop qui voyage beaucoup d'endroits à autres avec plein de proxys différents, tu peux mettre un tinyproxy sur ton ordinateur local, et faire en sorte que toutes tes applications locales (.bashrc, firefox, kcontrol, etc.) pointe vers ton proxy local. Ensuite, tu disposes de plusieurs fichiers de configuration de ton tinyproxy (profil 'boulot', profil 'maison', profil 'chez-un-pote', etc.) et ton script de gestion de configuration réseau mobile n'a plus qu'à gérer un fichier de plus, /etc/tinyproxy/tinyproxy.conf. Et hop ! la vie devient belle pour les lutins mobiles !

Mais ssh peut y arriver tout seul aussi !

… nous assure monsieur KingBug jardin. Faut que je vous raconte, c'est une supaire histoire. On papotte de trucs, genre, haha, de minix, toussa, et puis de SSH, et lui, il fait comme cela:

«perso j'utilise seulement ssh -qTfnN2 -D 8080 user@remotemachine et configure le firefosque avec le proxy socks sur localhost:8080»

Et le gars, il ajoute en rigolant:

«dans mon cas c pour faire comme si j'etais sur ma machine d'admin et bypasser des .htaccess quand je suis en *kh* promenade»

Non, mais vous entendez cela: en rigolant, le gars !

Alors, je lui demande: mais le proxy socks, c'est un programme en plus sur la machine distante, ou bien ? Et lui, en rigolant, toujours, il dit:

«Non, c'est la magie ssh !»

Putain, et là, je lis le manuel, et je vois que c'est une histoire VRAIE. Hahahaahaha !

(màj): bon alors comme j'ai galéré comme un pourceau avec cette histoire de ssh toussa, je vais préciser un petit point: Sous Firefox, il faut mettre “localhost” ou “127.0.0.1” dans le champ “Hôte SOCKS” (OUI MONSIEUR MON FIREFOX EST i18nISÉ) (et mettre évidemment “8080” dans le champ du port associé). En revanche, ce qu'il ne faut PAS faire, c'est de mettre quoi que cela soit dans les autre champs qui s'appellent “Proxy TRUC”, et il faut mettre “0” dans les cases des ports associés. Ensuite, cocher la case “Socks 5”. Ensuite, le reste de la config se fait de manière classique: “Ne pas utiliser de proxy pour localhost, 10., .domain.priv etc…” et foilà, vous pouvez maintenant surfer sur des sites de pr0n depuis le boulot sans craindre des Squidasses transparents !

linux/un_proxy_web_chiffre_personnel.txt · Last modified: 2010/01/12 13:29 (external edit)