Converti le richieste HTTP in SOCKS5


46

Attualmente sto facendo dei test con TOR e ho riscontrato un piccolo problema. Il client Tor supporta solo la ricezione di connessioni tramite un protocollo SOCKS5, ma le applicazioni che sto usando supportano solo i protocolli proxy HTTP.

È possibile mettere qualcosa nel mezzo? In modo che per esempio è andato.

Il mio programma (solo HTTP)> Convertitore da HTTP a SOCKS> Server Tor SOCKS5


È possibile utilizzare un sistema operativo (ad esempio Tails e Whonix) che instrada in modo trasparente tutto il traffico attraverso Tor senza che l'applicazione abbia bisogno di supportare i proxy. Ciò riduce anche notevolmente il rischio di perdite DNS e altri bypass di Tor.
Codici InChaos

Risposte:


44

Sembra che DeleGate possa farlo, con qualcosa di simile al seguente (in cui DeleGate accetterà connessioni HTTP sulla porta 8080 e inoltrerà a un server SOCKS sulla porta 9050):

delegated -P8080 SERVER=http SOCKS=localhost:9050

@ Dboy1612: puoi raccontare la tua esperienza con delegato per questo caso d'uso. Ho anche lo stesso caso d'uso.
pradeepchhetri,

È un ottimo strumento. Nuova versione (v9.9.9) rilasciata di recente.
kev,

1
Qualche idea sul perché richiede un indirizzo e-mail durante il download E l'installazione?
Halil Özgür,

2
@pradeepchhetri Dopo aver passato una giornata a giocare delegate(d), ho concluso che è assolutamente determinato a trapelare richieste DNS, nonostante le molteplici affermazioni contrarie nella documentazione di configurazione. Mi piacerebbe scoprire che mi sbaglio, ma su questo punto sono pessimista.
Adam Mackler,

Funziona alla grande
cat

9

Il bundle Tor non ha più polipo, ecco le FAQ ufficiali per tor :

In passato, i bundle Tor includevano un proxy HTTP come Privoxy o Polipo, solo per aggirare un bug in Firefox che è stato finalmente risolto in Firefox 6. Ora non è necessario un proxy HTTP separato per usare Tor, e in effetti lasciarlo out ti rende più sicuro perché Torbutton ha un migliore controllo sull'interazione di Firefox con i siti Web.

Se stai tentando di utilizzare un'applicazione esterna con Tor, il passaggio zero dovrebbe essere quello di rileggere il set di avvertenze per i modi in cui puoi rovinare. Il primo passo dovrebbe essere quello di provare a utilizzare un proxy Socks anziché un proxy http: Tor esegue un proxy Socks sulla porta 9050 su Windows o vedi sopra per OSX e Linux.

In caso contrario, installare senzaxy . Tuttavia, tieni presente che questo approccio non è raccomandato per gli utenti alle prime armi. Privoxy ha una configurazione di esempio di Tor e Privoxy .


1
Ha funzionato per me grazie!
Hikari,

7

Puoi anche usare Privoxy . Aggiungi questa riga al suo config.txtfile:

forward-socks5 / 127.0.0.1:9050 .

(Non dimenticare il puntino alla fine.)

Quindi utilizzare il proxy HTTP o HTTPS su 127.0.0.1:8118


un modo fantastico e semplice. grazie. funziona come un incantesimo
iraj jelodari,

5

Non hai specificato un sistema operativo. Per favore, fallo in futuro.


Questa risposta raccomanda Polipo, che è incluso nel bundle Vidalia ospitato dal progetto Tor e quindi probabilmente consigliato da loro per Windows. Polipo ha anche una versione * nix (ed è stato originariamente progettato per * nix), quindi ho incluso le istruzioni su come configurarlo - vedi la seconda sezione di seguito. È una soluzione piuttosto leggera, se conta.


finestre

Scarica il pacchetto Vidalia. Include la GUI di Vidalia e un programma chiamato Polipo, insieme a Tor. Nel bundle, Polipo per impostazione predefinita esegue un proxy HTTP sulla porta 8118 che reindirizza attraverso il proxy Tor SOCKS sulla porta 9050.

Impostazioni avanzate

È anche possibile configurare Polipo manualmente, senza il bundle Vidalia.

Preso da http://www.pps.jussieu.fr/~jch/software/polipo/tor.html

Forniscono anche file binari da scaricare.

Configurazione

Polipo viene configurato impostando una serie di variabili di configurazione nel file di configurazione di Polipo, che è un file di testo semplice. Per dire a Polipo di usare tor e di non memorizzare nella cache le pagine recuperate sul disco, ti consigliamo di aggiungere le seguenti righe al tuo file di configurazione:

socksParentProxy = localhost:9050
diskCacheRoot=""

Dovrai anche disabilitare l'interfaccia di configurazione locale per proteggerti dalle vulnerabilità del browser:

disableLocalInterface=true

Eseguendolo

Quando si esegue Polipo, è necessario specificare il percorso per il file di configurazione, utilizzando il flag -c sulla riga comandi di Polipo:

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

Si noti che anche in Windows è necessario utilizzare la sintassi Unix per il nome file (utilizzando le barre) e non è possibile specificare un dispositivo ("unità") da utilizzare.

La porta di ascolto predefinita Polipo è 8123.

La configurazione predefinita dal bundle Vidalia è inclusa in fondo a questa risposta.


* nix

Include Linux, Unix, BSD, OS X, i principali sistemi operativi moderni (2012) che non si basano su NT (Windows).

Ancora una volta, tratto da http://www.pps.jussieu.fr/~jch/software/polipo/tor.html

Scarica un pacchetto da qualsiasi repository che usi. Google può aiutarti qui. In alternativa, è possibile scaricare un file binario diretto.

Configurazione

Polipo viene configurato impostando un numero di variabili di configurazione nel file di configurazione di Polipo, che è o ~/.polipoo /etc/polipo/config, a seconda di quale esiste. Per dire a Polipo di usare tor e di non memorizzare nella cache le pagine recuperate sul disco, ti consigliamo di aggiungere le seguenti righe al tuo file di configurazione:

socksParentProxy = localhost:9050
diskCacheRoot=""

Dovrai anche disabilitare l'interfaccia di configurazione locale per proteggerti dalle vulnerabilità del browser:

disableLocalInterface=true

Se si desidera specificare un percorso diverso per il file di configurazione, è possibile specificarlo utilizzando il flag -c nella riga di comando di Polipo.

Nota che se hai installato Polipo da un file binario fornito dalla distribuzione, probabilmente non prenderà in considerazione ~ / .polipo - dovrai modificare / etc / polipo / config.

Eseguendolo

Se hai installato Polipo da un pacchetto fornito dalla distribuzione, probabilmente Polipo è già in esecuzione; dovrai riavviarlo in modo che tenga conto della sua nuova configurazione. Altrimenti, basta prendere una finestra terminale libera e digitare:

$ polipo

Se si utilizza un percorso non standard per il file di configurazione di Polipo, specificarlo nella riga di comando, ad esempio:

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

La porta di ascolto predefinita Polipo è 8123.

La configurazione predefinita dal bundle Vidalia è inclusa in fondo a questa risposta.


Configurazione Polipo predefinita (pacchetto Vidalia)

Questa è la mia configurazione Polipo predefinita dal bundle Vidalia per Windows. A quanto pare, dovrebbe funzionare anche in * nix - non c'è niente di specifico per quanto riguarda la piattaforma. Sì, è una configurazione 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

Sto usando polipo su Mac OS X 10.6. Sembra avere dei problemi quando si fanno richieste POST a volte. Il sito ufficiale di polipo è qui e qui .
Siu Ching Pong -Asuka Kenji-

Sto anche usando 3proxy su Windows. Lo uso per trasformare il mio tunnel SSH (SOCKS5) in un proxy HTTP per programmi che non supportano SOCKS. 3proxy è sviluppato dai russi. È open-source. Il sito ufficiale è qui e il suo progetto SourceForge è qui (non aggiornato come il sito ufficiale).
Siu Ching Pong -Asuka Kenji-

2

Violinista consente anche una conversione da una richiesta http a una richiesta sintonizzata per calze.

Ho fatto questo per spingere alcuni aggiornamenti di Windows per eseguire una connessione di calze (tramite Amazon EC2 e Putty).

Da questa pagina https://groups.google.com/forum/#!topic/httpfiddler/6m2xEe0fRmw

In Fiddler è presente una scheda "FiddlerScript" in cui è possibile aggiungere quanto segue:

Utilizzando il X-OverrideGatewayflag, utilizzare il socks=prefisso per indicare che> Fiddler deve utilizzare il protocollo SOCKS v4a quando si parla al server upstream.

Ad esempio, il programma di installazione TOR imposta un punto di accesso alla rete TOR utilizzando un proxy SOCKS sulla porta 9150 chiamato Polipo. Puoi aggiungere quanto segue nel OnBeforeRequestmetodo di FiddlerScript per instradare qualsiasi richiesta a test.example.com attraverso la rete TOR:

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

Se preferisci invece inviare tutto il traffico tramite i SOCKS, puoi semplicemente impostare il X-OverrideGatewayflag incondizionatamente per ogni sessione.


0

Anche WinGate può farlo. Controlla la scheda Connessione sul proxy WWW e puoi scegliere il proxy upstream SOCKS4, SOCKS4a o HTTP.

WinGate ha anche una licenza gratuita per 10 utenti simultanei.

Scheda Connessione proxy WWW

Disclaimer: lavoro per Qbik che sono gli autori di WinGate

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.