1

Introduction

I want to locally run a PT in unmanaged mode. I have set up a bridge for a local test using the following torrc:

BridgeRelay 1
Nickname "DummyTest"

SOCKSPort 5001
ORPort 65535
ControlPort auto

ExitPolicy reject *:*

AssumeReachable 1
PublishServerDescriptor 0

DataDirectory /tmp/dummy-server
Log debug file /tmp/dummy-server/debug.log
Log notice stdout

Then I run the dummy PT server as:

python obfsproxy/pyobfsproxy.py dummy server 127.0.0.1:5000 --dest 127.0.0.1:5001

and the dummy PT client as:

python obfsproxy/pyobfsproxy.py dummy client 127.0.0.1:4999 --dest 127.0.0.1:5000

At this point I'm able to browse the Web using the Tor Browser configured with the SOCKS proxy to 127.0.0.1:4999. So, the bridge and the PT seem to be working correctly.

Problem

However, when I run Tor using the following torrc:

UseBridges 1
Bridge dummy localhost:65535
ClientTransportPlugin dummy socks5 localhost:4999

SOCKSPort 4998

DataDirectory /tmp/dummy-client
Log debug file /tmp/dummy-client/debug.log
Log notice stdout

and I try to connect using the Tor browser through the port 4998. I get the following errors.

  • In the Tor bridge:

[notice] No Tor server allows exit to [scrubbed]:65535. Rejecting.

  • In the Tor Onion Proxy:

[warn] Proxy Client: unable to connect to 127.0.0.1:65535 ("connection not allowed by ruleset")


I also have tried with different exit policies and including parameters like:

ExitPolicyRejectPrivate 0
ClientDNSRejectInternalAddresses 0
ClientRejectInternalAddresses 0

in the torrc of the bridge and the client, but none of them worked.

  • Unmanaged mode is meant to allow usage of pluggable transports with other applications than Tor (e.g. OpenVPN). It's hard to see why someone would want to use unmanaged mode with Tor… – Lunar May 24 '14 at 7:19
3
python obfsproxy/pyobfsproxy.py dummy server 127.0.0.1:5000 --dest 127.0.0.1:65535

Bridges don't expose the SOCKSPort (you can remove the line entirely). The only ports of relevance are the ORPort (or ExtORPort, but don't use that for this config).

python obfsproxy/pyobfsproxy.py dummy socks 127.0.0.1:4999

tor will pass the desired destination (the bridge's dummy server) via SOCKS to the client side obfsproxy.

Bridge dummy localhost:5000

The Bridge line tells tor what transport ("dummy" in this case) to use, and what the IP address/port the transport should connect to (dummy server is listening on Port 5000).

You will end up with something like:

  • Firefox <-> Client tor (Client torrc SOCKSPort)
  • Client tor <-> dummy client (Port listed in ClientTransportPlugin, client pyobfsproxy line)
  • dummy client <-> dummy server (Port listed on the Bridge line, bridge pyobfsproxy line)
  • dummy server <-> Bridge tor ORPort (Bridge torrc ORPort)
  • Thanks @Yawning! It works now. Btw, I think the line Bridge dummy socks5 localhost:5000 should not include socks5. – synack May 25 '14 at 17:32
  • Indeed. Fixed. :) – user78 May 25 '14 at 23:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.