Convertir les requêtes HTTP en SOCKS5

46

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

Dustin
la source
Vous pouvez utiliser un système d'exploitation (par exemple, Tails et Whonix) qui achemine de manière transparente tout le trafic via Tor sans que l'application ait à prendre en charge les mandataires. Cela réduit également considérablement le risque de fuites de DNS et d’autres contournements de Tor.
CodesInChaos

Réponses:

44

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

delegated -P8080 SERVER=http SOCKS=localhost:9050
mgorven
la source
@ Dboy1612: Pouvez-vous raconter votre expérience en matière de délégation pour ce cas d'utilisation? J'ai aussi le même cas d'utilisation.
pradeepchhetri
C'est un excellent outil. Nouvelle version (v9.9.9) publiée récemment.
kev
1
Avez-vous une idée de la raison pour laquelle une adresse électronique est requise pendant le téléchargement ET l’installation?
Halil Özgür
2
@pradeepchhetri Après avoir passé une journée à jouer avec delegate(d), j'ai conclu qu'il était absolument déterminé à fuir les requêtes DNS, nonobstant plusieurs revendications contraires dans la documentation de configuration. J'aimerais découvrir que je me trompe à ce sujet, mais je suis pessimiste sur ce point.
Adam Mackler
Fonctionne très bien
:)
9

Le paquet Tor n’a plus de polipo, voici la FAQ officielle de tor :

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 à essayer d'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 Privoxy .

Stefan Rogin
la source
1
Cela a fonctionné pour moi tnx!
Hikari
7

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

forward-socks5 / 127.0.0.1:9050 .

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

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

Client
la source
un moyen génial et facile. Je vous remercie. fonctionne comme un charme
iraj jelodari
5

Vous n'avez pas spécifié de système d'exploitation. Merci de le faire à 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 manière 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 pack 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.

Tiré 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

Le lancer

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 de 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 paquet depuis le 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, qui est l'un ~/.polipoou l' autre /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.

Le lancer

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
Bob
la source
J'utilise polipo sur Mac OS X 10.6. Il semble parfois y avoir des problèmes lors des requêtes POST. Le site officiel de polipo est ici et ici .
Siu Ching Pong - Asuka Kenji -
J'utilise également 3proxy sous Windows. Je l'utilise pour transformer mon tunnel SSH (SOCKS5) en proxy HTTP pour les programmes qui ne prennent pas en charge SOCKS. 3proxy est développé par les Russes. C'est open-source. Le site officiel est ici et son projet SourceForge est ici (pas aussi à jour que le site officiel).
Siu Ching Pong - Asuka Kenji -
2

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

Je l'ai fait pour pousser certaines mises à jour Windows à s'exécuter via une connexion chaussettes (via Amazon EC2 et Putty).

De 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' X-OverrideGatewayindicateur, utilisez le socks=préfixe pour> indiquer que Fiddler doit utiliser le protocole SOCKS v4a pour parler 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 OnBeforeRequestméthode 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' X-OverrideGatewayindicateur de manière inconditionnelle pour chaque session.

David d C e Freitas
la source
0

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

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

Onglet WWW Proxy Connection

Disclaimer: Je travaille pour Qbik, les auteurs de WinGate

Adrien
la source