[tor-bugs] #33336 [Circumvention/Snowflake]: Deploy a Turbo Tunnel–aware Snowflake bridge
Tor Bug Tracker & Wiki
blackhole at torproject.org
Sat Feb 15 17:35:30 UTC 2020
#33336: Deploy a Turbo Tunnel–aware Snowflake bridge
-------------------------------------+--------------------------
Reporter: dcf | Owner: dcf
Type: task | Status: assigned
Priority: Medium | Milestone:
Component: Circumvention/Snowflake | Version:
Severity: Normal | Resolution:
Keywords: turbotunnel | Actual Points:
Parent ID: | Points:
Reviewer: | Sponsor:
-------------------------------------+--------------------------
Comment (by dcf):
Here are two Tor Browser builds. These are what I hope to announce to
testers. They are built from the [https://gitweb.torproject.org/user/dcf
/tor-browser-build.git/log/?h=snowflake-turbotunnel-
kcp&id=96495fea60b2a5aac9808343cb0d3bcec87c9230 snowflake-turbotunnel-kcp]
and [https://gitweb.torproject.org/user/dcf/tor-browser-build.git/log/?h
=snowflake-turbotunnel-quic&id=06e0ad9d4ef4c1094638648515fc846c37b1b704
snowflake-turbotunnel-quic] branches of tor-browser-build.git
respectively. In both cases I had the rbm submodule at
[https://gitweb.torproject.org/user/boklm/rbm.git/log/?h=bug_33283_v2&id=e4f12abe9ed81050994b5345c21b988005259396
bug_33283_v2] from #33283 in an attempt to speed up the build.
* [https://people.torproject.org/~dcf/pt-bundle/tor-browser-snowflake-
turbotunnel-kcp-9.5a5-20200215/ tor-browser-snowflake-turbotunnel-
kcp-9.5a5-20200215]
* [https://people.torproject.org/~dcf/pt-bundle/tor-browser-snowflake-
turbotunnel-quic-9.5a5-20200215/ tor-browser-snowflake-turbotunnel-
quic-9.5a5-20200215]
Both builds have [https://gitweb.torproject.org/user/dcf/tor-browser-
build.git/commit/?h=snowflake-turbotunnel-
kcp&id=59aa57b64682a17f4aaa62fae9633732dce4a1a9 a commit] that attempts to
disable automatic updates for 60 days. My reasoning is that we don't want
our testers to experience an automatic update while they are testing these
special builds, because an update would remove the snowflake-turbotunnel
features. But also, if someone for some reason decides to keep using an
experimental build, we don't want them to be stuck on a non-updating
browser forever.
== How to try them locally ==
When we deploy the [[comment:1|triple-mode bridge]], it will be possible
to just select "snowflake" from the menu. But until a Turbo Tunnel–aware
bridge is deployed, you have to run a broker, proxy, and bridge locally.
1. Download the turbotunnel branch and build all but the client.
{{{
git clone https://git.torproject.org/pluggable-transports/snowflake.git
cd snowflake
git remote add dcf https://git.torproject.org/user/dcf/snowflake.git
git fetch dcf
git checkout d5be0906ffe4ef8de8a9345690713bc362d3bcee # turbotunnel branch
for d in broker proxy-go server; do (cd $d && go get); done
# set dependencies to the same versions that Tor Browser uses
(cd $GOPATH/src/github.com/lucas-clemente/quic-go && git checkout
907071221cf97f75398d9cf8b1174e94f56e8f96)
(cd $GOPATH/src/github.com/marten-seemann/qtls && git checkout
65ca381cd298d7e0aef0de8ba523a870ec5a96fe)
for d in broker proxy-go server; do (cd $d && go build); done
}}}
2. Run the broker.
{{{
broker/broker --disable-tls --addr 127.0.0.1:8000
}}}
3. Run a proxy.
{{{
proxy-go/proxy-go --broker http://127.0.0.1:8000/ --relay
ws://127.0.0.1:8080/
}}}
4. Run the bridge. Create a file called '''torrc.server''' with the
contents
{{{
DataDirectory datadir-server
SocksPort 0
ORPort 9001
ExtORPort auto
BridgeRelay 1
AssumeReachable 1
PublishServerDescriptor 0
ServerTransportListenAddr snowflake 0.0.0.0:8080
ServerTransportPlugin snowflake exec server/server --disable-tls --log
snowflake-server.log
}}}
Then run the command
{{{
tor -f torrc.server
}}}
5. Unpack the Tor Browser package and edit the file
'''Browser/TorBrowser/Data/Tor/torrc-defaults'''. Change the
`ClientTransportPlugin snowflake` line to make it use the local broker:
{{{
ClientTransportPlugin snowflake exec ./TorBrowser/Tor/PluggableTransports
/snowflake-client -url http://127.0.0.1:8000/ -ice
stun:stun.l.google.com:19302
}}}
6. Run Tor Browser. Select '''Configure''', then '''Tor is censored in my
country''', then '''Provide a bridge I know'''. In the box, enter
{{{
snowflake 0.0.3.0:1
}}}
7. Click '''Connect''' and everything should start working. Keep an eye on
the proxy-go output to see if packets are flowing. The Turbo Tunnel
feature means you should be able to leave the browser idle for hours and
have it still be working later, in the worst case after a wait of 30
seconds.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/33336#comment:4>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list