web-dev-qa-db-fra.com

Convertir les requêtes HTTP en SOCKS5

Je suis actuellement en train d'essais avec TOR et j'ai rencontré un petit problème. Le client Tor ne prend en charge que la réception de connexions via un protocole SOCKS5, mais les applications que j'utilise ne prennent en charge que les protocoles proxy HTTP.

Est-il possible de mettre quelque chose au milieu? Donc, par exemple, ça a marché.

Mon programme (HTTP uniquement)> Convertisseur HTTP en SOCKS> Serveur Tor SOCKS5

41
Dustin

Il semble que DeleGate puisse le faire, avec quelque chose comme ce qui suit (où DeleGate acceptera les connexions HTTP sur le port 8080 et sera redirigé vers un serveur SOCKS sur le port 9050 ):

delegated -P8080 SERVER=http SOCKS=localhost:9050
42
mgorven

Le paquet Tor n’a plus de polipo, voici le FAQ officiel :

Auparavant, les bundles Tor incluaient un proxy HTTP comme Privoxy ou Polipo, uniquement pour contourner un bogue dans Firefox qui a finalement été corrigé dans Firefox 6. Désormais, vous n'avez plus besoin d'un proxy HTTP distinct pour utiliser Tor. vous rend plus sûr car Torbutton contrôle mieux l’interaction de Firefox avec les sites Web.

Si vous essayez d’utiliser une application externe avec Tor, l’étape zéro devrait consister à relire le jeu d’avertissements afin d’éviter les risques de confusion. La première étape consiste à utiliser un proxy Socks plutôt qu'un proxy http - Tor exécute un proxy Socks sur le port 9050 sous Windows, ou voir ci-dessus pour OSX et Linux.

Si cela échoue, n'hésitez pas à installer privoxy . Cependant, sachez que cette approche n'est pas recommandée aux utilisateurs novices. Privoxy a un exemple de configuration de Tor et de Privoxy .

8
Stefan Rogin

Vous pouvez également utiliser Privoxy . Ajoutez cette ligne à son fichier config.txt:

forward-socks5 / 127.0.0.1:9050 .

(N'oubliez pas le petit point à la fin.)

Ensuite, utilisez le proxy HTTP ou HTTPS à 127.0.0.1:8118

5
Guest

Vous n'avez pas spécifié de système d'exploitation. S'il vous plaît faites-le à l'avenir.


Cette réponse recommande Polipo, qui est inclus dans le bundle Vidalia hébergé par le projet Tor et donc probablement recommandé par eux pour Windows. Polipo a également une version * nix (et a été conçu à l'origine pour * nix), j'ai donc inclus des instructions sur la façon de le configurer - voir la deuxième section ci-dessous. C'est une solution plutôt légère, si cela compte.


Les fenêtres

Téléchargez le kit Vidalia. Il comprend l'interface graphique de Vidalia et un programme appelé Polipo, ainsi que Tor. Dans l'ensemble, Polipo exécute par défaut un proxy HTTP sur le port 8118 qui redirige via le proxy Tor SOCKS sur le port 9050.

Configuration avancée

Il est également possible de configurer Polipo manuellement, sans le kit Vidalia.

Extrait de http://www.pps.jussieu.fr/~jch/software/polipo/tor.html

Ils fournissent également des fichiers binaires à télécharger.

Configuration

Polipo est configuré en définissant un certain nombre de variables de configuration dans le fichier de configuration de Polipo, qui est un fichier texte brut. Afin d'indiquer à Polipo d'utiliser tor et de ne pas mettre en cache les pages extraites sur le disque, vous souhaitez ajouter les lignes suivantes à votre fichier de configuration:

socksParentProxy = localhost:9050
diskCacheRoot=""

Vous voudrez également désactiver l'interface de configuration locale afin de vous protéger des vulnérabilités du navigateur:

disableLocalInterface=true

L'exécuter

Lors de l'exécution de Polipo, vous devez spécifier l'emplacement du fichier de configuration à l'aide de l'indicateur -c sur la ligne de commande de Polipo:

> polipo.exe -c "/Program Files/Polipo/config.txt"

Notez que même sous Windows, vous devez utiliser la syntaxe Unix pour le nom du fichier (en utilisant des barres obliques) et vous ne pouvez pas spécifier de périphérique ("lecteur") à utiliser.

Le port d'écoute par défaut de Polipo est 8123.

La configuration par défaut du paquet Vidalia est incluse au bas de cette réponse.


*rien

Inclut Linux, Unix, BSD, OS X et la plupart des principaux systèmes d'exploitation modernes (2012) qui ne sont pas basés sur NT (Windows).

Encore une fois, tiré de http://www.pps.jussieu.fr/~jch/software/polipo/tor.html

Téléchargez un package à partir du référentiel que vous utilisez. Google peut aider ici. Alternativement, un binaire direct peut être téléchargé.

Configuration

Polipo est configuré en définissant un certain nombre de variables de configuration dans le fichier de configuration de Polipo, soit ~/.polipo ou /etc/polipo/config, selon le cas. Afin d'indiquer à Polipo d'utiliser tor et de ne pas mettre en cache les pages extraites sur le disque, vous souhaitez ajouter les lignes suivantes à votre fichier de configuration:

socksParentProxy = localhost:9050
diskCacheRoot=""

Vous voudrez également désactiver l'interface de configuration locale afin de vous protéger des vulnérabilités du navigateur:

disableLocalInterface=true

Si vous souhaitez spécifier un emplacement différent pour le fichier de configuration, vous pouvez le spécifier à l'aide de l'indicateur -c sur la ligne de commande de Polipo.

Notez que si vous avez installé Polipo à partir d'un binaire fourni par la distribution, il ne prendra probablement pas en compte ~/.polipo - vous devrez éditer /etc/polipo/config.

L'exécuter

Si vous avez installé Polipo à partir d'un paquet fourni par la distribution, Polipo est probablement déjà en cours d'exécution; vous devrez le redémarrer pour qu'il prenne en compte sa nouvelle configuration. Sinon, il suffit de saisir une fenêtre de terminal libre et de taper:

$ polipo

Si vous utilisez un emplacement non standard pour le fichier de configuration de Polipo, spécifiez-le sur la ligne de commande, par exemple:

$ polipo -c "/Program Files/Polipo/config.txt"

Le port d'écoute par défaut de Polipo est 8123.

La configuration par défaut du paquet Vidalia est incluse au bas de cette réponse.


Configuration Polipo par défaut (bundle Vidalia)

C'est la configuration par défaut de Polipo du bundle Vidalia pour Windows. À première vue, cela devrait également fonctionner dans * nix - rien, pour autant que je sache, est spécifique à une plate-forme. Oui, c'est une configuration IPv4.

### $Id$
#
### Basic configuration
### *******************

# Uncomment one of these if you want to allow remote clients to
# connect:

# proxyAddress = "::0"        # both IPv4 and IPv6
# proxyAddress = "0.0.0.0"    # IPv4 only

proxyAddress = "127.0.0.1"
proxyPort = 8118

# If you do that, you'll want to restrict the set of hosts allowed to
# connect:

# allowedClients = "127.0.0.1, 134.157.168.57"
# allowedClients = "127.0.0.1, 134.157.168.0/24"

allowedClients = 127.0.0.1
allowedPorts = 1-65535

# Uncomment this if you want your Polipo to identify itself by
# something else than the Host name:

proxyName = "localhost"

# Uncomment this if there's only one user using this instance of Polipo:

cacheIsShared = false

# Uncomment this if you want to use a parent proxy:

# parentProxy = "squid.example.org:3128"

# Uncomment this if you want to use a parent SOCKS proxy:

socksParentProxy = "localhost:9050"
socksProxyType = socks5


### Memory
### ******

# Uncomment this if you want Polipo to use a ridiculously small amount
# of memory (a hundred C-64 worth or so):

# chunkHighMark = 819200
# objectHighMark = 128

# Uncomment this if you've got plenty of memory:

# chunkHighMark = 50331648
# objectHighMark = 16384

chunkHighMark = 33554432

### On-disk data
### ************

# Uncomment this if you want to disable the on-disk cache:

diskCacheRoot = ""

# Uncomment this if you want to put the on-disk cache in a
# non-standard location:

# diskCacheRoot = "~/.polipo-cache/"

# Uncomment this if you want to disable the local web server:

localDocumentRoot = ""

# Uncomment this if you want to enable the pages under /polipo/index?
# and /polipo/servers?.  This is a serious privacy leak if your proxy
# is shared.

# disableIndexing = false
# disableServersList = false

disableLocalInterface = true
disableConfiguration = true

### Domain Name System
### ******************

# Uncomment this if you want to contact IPv4 hosts only (and make DNS
# queries somewhat faster):
#
# dnsQueryIPv6 = no

# Uncomment this if you want Polipo to prefer IPv4 to IPv6 for
# double-stack hosts:
#
# dnsQueryIPv6 = reluctantly

# Uncomment this to disable Polipo's DNS resolver and use the system's
# default resolver instead.  If you do that, Polipo will freeze during
# every DNS query:

dnsUseGethostbyname = yes


### HTTP
### ****

# Uncomment this if you want to enable detection of proxy loops.
# This will cause your hostname (or whatever you put into proxyName
# above) to be included in every request:

disableVia = true

# Uncomment this if you want to slightly reduce the amount of
# information that you leak about yourself:

# censoredHeaders = from, accept-language
# censorReferer = maybe

censoredHeaders = from,accept-language,x-pad,link
censorReferer = maybe

# Uncomment this if you're paranoid.  This will break a lot of sites,
# though:

# censoredHeaders = set-cookie, cookie, cookie2, from, accept-language
# censorReferer = true

# Uncomment this if you want to use Poor Man's Multiplexing; increase
# the sizes if you're on a fast line.  They should each amount to a few
# seconds' worth of transfer; if pmmSize is small, you'll want
# pmmFirstSize to be larger.

# Note that PMM is somewhat unreliable.

# pmmFirstSize = 16384
# pmmSize = 8192

# Uncomment this if your user-agent does something reasonable with
# Warning headers (most don't):

# relaxTransparency = maybe

# Uncomment this if you never want to revalidate instances for which
# data is available (this is not a good idea):

# relaxTransparency = yes

# Uncomment this if you have no network:

# proxyOffline = yes

# Uncomment this if you want to avoid revalidating instances with a
# Vary header (this is not a good idea):

# mindlesslyCacheVary = true

# Suggestions from Incognito configuration
maxConnectionAge = 5m
maxConnectionRequests = 120
serverMaxSlots = 8
serverSlots = 2
tunnelAllowedPorts = 1-65535
5
Bob

Fiddler permet également une conversion de requête http en requête tunnellisée.

J'ai fait cela pour pousser certaines mises à jour Windows à exécuter via une connexion chaussettes (via Amazon EC2 et PuTTY).

Depuis cette page https://groups.google.com/forum/#!topic/httpfiddler/6m2xEe0fRmw

Dans Fiddler, il existe un onglet "FiddlerScript" dans lequel vous pouvez ajouter les éléments suivants:

À l'aide de l'indicateur X-OverrideGateway, utilisez le préfixe socks= pour indiquer que> Fiddler doit utiliser le protocole SOCKS v4a lorsqu’il parle au serveur en amont.

Par exemple, le programme d'installation de TOR configure un point d'entrée sur le réseau TOR à l'aide d'un proxy SOCKS sur le port 9150 appelé Polipo. Vous pouvez ajouter ce qui suit dans la méthode OnBeforeRequest de votre FiddlerScript pour acheminer toute demande à test.example.com via le réseau TOR:

    if (oSession.HostnameIs("test.example.com")) {
      oSession["x-OverrideGateway"] = "socks=127.0.0.1:9150";    
  }

Si vous préférez envoyer tout le trafic via SOCKS, vous pouvez simplement définir l'indicateur X-OverrideGateway de manière inconditionnelle pour chaque session.

2

WinGate peut également le faire. Vérifiez l'onglet Connexion sur votre proxy WWW et vous pouvez choisir un proxy amont SOCKS4, SOCKS4a ou HTTP.

WinGate a également une licence gratuite pour 10 utilisateurs simultanés.

Onglet Connexion au proxy WWW

Disclaimer: Je travaille pour Qbik, les auteurs de WinGate

0
Adrien