Les proxys anonymes
Les proxys sont des serveurs informatiques qui ont pour fonction de relayer des requêtes entre un poste client et un serveur à travers Internet. Leurs usages sont multiples. Ils permettent par exemple de filtrer du contenu, de faire du cache, de loger toutes les actions des utilisateurs, mais également de naviguer de façon anonyme.
Ici, nous allons plutôt nous intéresser à la dernière possibilité, celle concernant l'anonymat. Pour bien comprendre comment tout cela fonctionne, il faut savoir qu'il existe aujourd'hui 3 grands types de serveurs proxys :
- Transparent proxy : on peut connaître la véritable adresse du visiteur sans aucun problème, car elle est stockée dans l'en-tête HTTP nommé REMOTE_ADDR.
- Anonymous proxy : les variables REMOTE_ADDR et HTTP_VIA possèdent l'adresse IP du proxy. Mais on n'est pas entièrement anonyme en utilisant ce genre de proxy, car on peut retrouver l'adresse IP du client dans l'en-tête HTTP nommé HTTP_X_FORWARDED_FOR.
- High anonymous proxy : aucun en-tête HTTP ne possède l'adresse IP du client, l'anonymat est donc garanti. Il s'agit là du proxy le plus intéressant.
Recherche et tests de proxys anonymes
Trouver des proxys anonymes est une tâche difficile. Il faut d'abord trouver des listes de serveurs et ensuite les tester un par un pour voir s'ils fonctionnent. Voici une technique qui permet de rendre cette tâche automatique.
Pour que l'exemple marche, il faudra tout de même récupérer une liste de proxys et mettre son contenu dans un fichier texte. Il faudra respecter la syntaxe suivante :
adresse-ip1:port adresse-ip2:port
Il existe de nombreux sites Internet qui proposent des listes entières. On pourra par exemple se rendre sur ce site.
Une fois la liste de proxys constituée, nous allons nous aider d'un programme appelé prxchecker pour les tester. Celui-ci utilise le langage C et a été écrit par le groupe de hackers russe RST/GHC :
wget www.tux-planet.fr/public/hack/proxy/prxchecker.c
gcc -o prxchecker prxchecker.c
On le lance ensuite avec l'option -o qui permet de stocker les adresses IP valides dans un fichier externe :
./prxchecker -f proxy.txt -o worked.txt -t 3
...
: ( 89.179.166.40 timeout
OK 119.62.128.38:80
OK 212.51.220.56:3128
: ( 203.236.210.210:8080
: ( 141.85.118.1:80
Vérification de l'anonymat
On possède maintenant une liste de serveurs proxys qui fonctionnent. La seconde étape consistera à vérifier leur degré d'anonymat, comme expliqué en début d'article.
Pour cela, nous allons nous aider du script php suivant, qui testent les bons en-têtes HTTP :
<?php $myip = trim($_GET['myip']); if(empty($myip)) { echo "Usage: check-anonymous.php?myip=YOUR_IP_ADRESSE"."\n"; } else if (($_SERVER['REMOTE_ADDR'] == $myip) || ($_SERVER['HTTP_X_FORWARDED_FOR'] == $myip)) { echo "Not anonymous"."\n"; } else { echo "Anonymous"."\n"; } ?>
A l'aide de la commande curl, qui accepte l'adresse IP et le port d'un proxy en paramètre, il devient ensuite facile de faire une boucle et de tester l'ensemble des serveurs d'une liste. Pensez à adapter l'adresse IP de votre machine avant d'utiliser la commande :
for file in `cat worked.txt`; do echo "Test $file"; curl --connect-timeout 5 --max-time 5 -x $file www.tux-planet.fr/public/hack/proxy/check-anonymous.php?myip=86.95.47.15; done;
Utilisation d'un proxy
Une fois en possession d'une liste d'adresses IP anonymes, vous pourrez configurer votre navigateur pour les utiliser. Pour Firefox par exemple, il faut aller dans les menus Outils-> Options-> Avancé-> Réseau-> Paramètres ...
Il également possible de re-paramétrer son shell à l'aide de la variable http_proxy :
export http_proxy=http://ip:port
Toutes les commandes qui seront ensuite saisies passeront automatiquement par le serveur mandataire.
20 Commentaires pour "Les proxys anonymes"
Flux des commentaires de cet article Ajouter un commentaireDis tu utilises quel plugin, pour envoyer un mail dès que tu publies un article ?
Merci pour ce papier. J'ai cru entendre qu'il était possible de chainer des proxy.
Est-ce vrai d'après toi ?
Merci,
@Korbeau : le plugin s'appelle subscribe2
@Ulrich : oui mais à condition d'avoir l'accès à chaque proxy. Pour les reconfigurer et leur dire de se connecter au proxy suivant. Enfin c'est mon avis, je ne vois pas comment chainer des proxys autrement ...
Je m'étais amusé une fois avec ces proxy... Souvent, la bande passante est telle que le simple surf devient quasiment impossible... et on ne sait pas toujours qui se cache derrière...
Merci
@feilong : c'est vrai que la bande passante est souvent pas géniale. Mais suffisante pour faire des conneries de façon anonyme.
Faut pas oublier les logs du proxy, et les attaques sur les languages exécutés côtés clients (flash, java, ...), puis requete dns, ...
C'est pas mal tout ça, il manque plus qu'une commande pour faire un test sommaire de débit histoire de choisir le proxy le moins lent...t'aurais pas ça en réserve ?
@offw0rld : sur ne laisser absolument aucunes traces est quelque chose de difficile. Surtout qu'aujourd'hui, la plupart des équipements réseaux (swicth, firefwall ...) possède en plus leur propre système de logs.
@Goda : avec les commandes curl et wget, le débit est généralement affiché. Tu devrais pourvoir automatiser cela assez facilement.
Salut
c'est pas mal d'ajouter l'option" --max-time 25" a ta commande curl, ça evite de bloquer les scripts ;-)...
@Goda : ok, j'ai rajouté l'option. Merci.
Au passage, pour tester de proxys y'a aussi ça : http://www.samair.ru/proxy-checker/index.php
Ca a l'air de marcher pas trop mal.
Bonjour et d'abord un grand merci pour votre site !
Je voudrai utiliser un proxy anonyme pour télécharger. J'ai paramétré des proxy « hautement anonymes » (avec Foxyproxy sous Firefox). Avec plusieurs de ces ce proxy , quand je veux me connecter à Torrent411 par exemple j'ai ce message :
Si je veux me connecter à Google par ex , j'y parviens au travers du proxy. On dirait que le reseau CoDeen bloque l'accès aux sites de téléchargement.
Pouvez vous nous expliquer et nous conseiller ?
Merci
@zorglub : le message d'erreur est claire, le proxy que tu as choisi n'autorise que le protocole HTTP, donc tu ne peux que surfer sur Internet avec un navigateur, pas télécharger...
J'aimerai un peu d'aide, je débute dans le domaine =]
J'ai télécharger le programme prxchecker.c, ça me télécharge le fichier, lorsque je clique dessus ça m'ouvre Microsoft Visual C++ et après je bug (façon de parler bien sur) que dois-je faire une fois Microsoft Visual C++ ouvert ?
@Mistori : la méthode décrite ici marche sur Linux et non sous Windows. D'ailleurs, la plupart des articles de Tux-planet son pour Linux.
Et si je fais un PC virtuel sous Linux ça va le faire ?
@Mistori : oui, mais la technique décrite ici n'est pas vraiment destinée au débutant. Tu risque donc d'avoir des difficultés à la mettre en oeuvre.
Bonjour
Je n'arrive pas à faire fonctionner µTorrent avec un proxy
Avec Elite- proxy -switcher j'ai trouvé des proxy de niveau 1 qui fonctionnaient bien
J'ai vérifié dans mon navigateur que le proxy était bien opérationnel, J'ai bien suivi le tuto pour paramètre µTorrent : j'ai mis les réglages dans Outils/connexion/serveur proxy
Dans µTorrent / tracker j'ai l'info « proxy connect error : hors ligne (temps d'essai écoulé) ». J'ai essayé tous les socks 4/5/http/https/ et seul socks 5 ne me donne pas de message d'erreur sur le socks . J'observe aussi les infos « Non alloué » ou bien « non autorisé » pour les valeurs suivantes [DHT] [recherche locale de pair] et [échange de pairs]
J'ai essayé aussi sans firewall sans succès
Je n'ai rien trouvé sur le forum µTorrent , et j'ai vu une info sur le web disant qu'on ne peut pas télécharger derrière des proxy mais je ne peux pas croire ça !
En tout cas je n'y arrive pas
Merci de votre aide
@Ulrich : je suis bien en retard mais pour chaîner des proxy il y a un outil qui se nomme "proxychains" (( # aptitude install proxychains ) pour les debianistes)
il fonctionne avec Tor en plus, je crois qu'à ce jour il n'y a pas mieux pour chaîner des proxys