blog-contributions/opsec/tor/bridge/index.html
2024-08-28 20:13:19 +02:00

267 lines
9.8 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<link rel="shortcut icon" href="../../../../../../assets/img/favicon.png">
<title>TOR Bridge</title>
<!-- Bootstrap core CSS -->
<link href="../../../assets/css/bootstrap.css" rel="stylesheet">
<link href="../../../assets/css/xt256.css" rel="stylesheet">
<script src="../../../assets/js/highlight.pack.js"></script>
<!-- Custom styles for this template -->
<link href="../../../assets/css/main.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
</head>
<body>
<!-- Static navbar -->
<div class="navbar navbar-inverse-anon navbar-static-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand-anon" href="\index.html">nihilist`s Blog</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="/about.html">About</a></li>
<li><a href="/blog.html">Categories</a></li>
<li><a href="https://blog.nowhere.moe/donate.html">Donate</a></li>
<li><a href="/contact.html">Contact</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
<!-- +++++ Posts Lists +++++ -->
<!-- +++++ First Post +++++ -->
<div id="anon2">
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<a href="../../index.html">Previous Page</a></br></br> <p><img src="../../../assets/img/user.png" width="50px" height="50px"> <ba>nihilist - 01 / 02 / 2024</ba></p>
<h1>TOR Bridge (June 2023 update)</h1>
<img src="../logo.png" class="imgRz">
<p> Before we start, you will need a Debian VPS (you can get one on digitalocean for example), if you prefer to use your own self hosted server, make sure that port 80 and 443 are correctly port forwarded so that the public ip points to the server and not the router. Once that's done, go and ssh into your Debian server. </p>
</div>
</div><!-- /row -->
</div> <!-- /container -->
</div><!-- /grey -->
<!-- +++++ Second Post +++++ -->
<div id="anon3">
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<h2><b>Initial Setup </b></h2>
<p></p>
<pre><code class="nim">
apt update -y && apt upgrade -y
apt install curl tmux vim obfs4proxy nyx gnupg2 -y
root@Datura:~# cat /etc/apt/sources.list |head -n3
deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org bookworm main
deb-src [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org bookworm main
root@Datura:~# wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null
apt update -y
apt install tor nyx
#To configure tor we need to edit the configuration file with the following entry. Replace the TODOs with the port numbers you wish to use
#Open conf file
vim /etc/tor/torrc
#Added configuration
BridgeRelay 1
# Replace "TODO1" with a Tor port of your choice.
# This port must be externally reachable.
# Avoid port 9001 because it's commonly associated with Tor and censors may be scanning the Internet for this port.
ORPort 37051
ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy
# Replace "TODO2" with an obfs4 port of your choice.
# This port must be externally reachable and must be different from the one specified for ORPort.
# Avoid port 9001 because it's commonly associated with Tor and censors may be scanning the Internet for this port.
ServerTransportListenAddr obfs4 0.0.0.0:8042
# Local communication port between Tor and obfs4. Always set this to "auto".
# "Ext" means "extended", not "external". Don't try to set a specific port number, nor listen on 0.0.0.0.
ExtORPort auto
# Replace "<<b></b>address@email.com>" with your email address so we can contact you if there are problems with your bridge.
# This is optional but encouraged.
ContactInfo nihilist@nowhere.moe
# Pick a nickname that you like for your bridge. This is optional.
Nickname Nihilist
</code></pre>
<p>Then restart the tor service + enable it:</p>
<pre><code class="nim">
#Restart service
systemctl restart tor@default
#Enable at boot
systemctl enable --now tor@default
</code></pre>
</div>
</div><!-- /row -->
</div> <!-- /container -->
</div><!-- /white -->
<div id="anon2">
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<h2><b>Nyx monitoring</b></h2> </br> </br>
<p>Once it finished installing, you can monitor your tor bridge node activity with nyx:</p>
<pre><code class="nim">
sudo -u debian-tor nyx
</code></pre>
<img src="4.png" class="imgRz">
</div>
</div><!-- /row -->
</div> <!-- /container -->
</div><!-- /white -->
<!-- +++++ Second Post +++++ -->
<div id="anon1">
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<h2><b>Using your own bridge</b></h2> </br> </br>
<p>Next install tor-browser (in arch linux you can do it from the AUR), if not just go to the <a href="https://www.torproject.org/download/">downloads</a> page.</p>
<pre><code class="nim">
yay -S torbrowser-launcher
</code></pre>
<img src="5.png" class="imgRz">
<p>Then Launch it, and go in your preferences:</p>
<img src="6.png" class="imgRz">
<img src="7.png" class="imgRz">
<p>Here specifying your own bridge is not that simple, you need to use the following syntax:</p>
<pre><code class="nim">
Bridge obfs4 <<b></b>IP ADDRESS>:<<b></b>PORT> <<b></b>FINGERPRINT> cert=<<b></b>CERTIFICATE> iat-mode=0
</code></pre>
<p>First find the ip address of your server:</p>
<pre><code class="nim">
root@debian-s-1vcpu-1gb-lon1-01:~# curl ifconfig.me && echo && echo
<b>134.209.26.190</b>
</code></pre>
<p>Next find the port :</p>
<pre><code class="nim">
sudo -u debian-tor nyx
</code></pre>
<p>Just hit right arrow 3 times to get to your torrc config preview:</p>
<img src="8.png" class="imgRz">
<p>And here we have port <b>8042</b>. Next we need the fingerprint which is at page 1 of nyx, so press leftarrow to get back to page 1 and then scroll down using the downarrow:</p>
<img src="9.png" class="imgRz">
<p>Here it is <b>829165B21621041E7A9CDF7192AFFC51CA640B0E</b>, be careful not to copy the other one above which is the HASHED identity key. Here we want the original identity key fingerprint.
After this, we need the server's certificate:</p>
<pre><code class="nim">
root@debian-s-1vcpu-1gb-lon1-01:~# cat /var/lib/tor/pt_state/obfs4_bridgeline.txt
# obfs4 torrc client bridge line
#
# This file is an automatically generated bridge line based on
# the current obfs4proxy configuration. EDITING IT WILL HAVE
# NO EFFECT.
#
# Before distributing this Bridge, edit the placeholder fields
# to contain the actual values:
# <<b></b>IP ADDRESS> - The public IP address of your obfs4 bridge.
# <<b></b>PORT> - The TCP/IP port of your obfs4 bridge.
# <<b></b>FINGERPRINT> - The bridge's fingerprint.
Bridge obfs4 <<b></b>IP ADDRESS>:<<b></b>PORT> <<b></b>FINGERPRINT> <b>cert=L04rcSpDJb9xdGUy/LgAlxbNgtQUWPJFsdF3q2i8lKRmzffiVFJU5ARjr4RYXRZSrsNYXg iat-mode=0</b>
</code></pre>
<p>Here in this case we need the last part: <b>cert=L04rcSpDJb9xdGUy/LgAlxbNgtQUWPJFsdF3q2i8lKRmzffiVFJU5ARjr4RYXRZSrsNYXg iat-mode=0</b></p>
<p>And so we combine it all to get the string we need:</p>
<pre><code class="nim">
Bridge obfs4 134.209.26.190:8042 829165B21621041E7A9CDF7192AFFC51CA640B0E cert=L04rcSpDJb9xdGUy/LgAlxbNgtQUWPJFsdF3q2i8lKRmzffiVFJU5ARjr4RYXRZSrsNYXg iat-mode=0
</code></pre>
<p>Paste it in and hit "new identity":</p>
<img src="10.png" class="imgRz">
<p>Then we check if it is working on <a href="https://check.torproject.org/">check.torproject.org</a>:</p>
<img src="11.png" class="imgRz">
<p>And that's it! we have been able to use our own VPS-hosted tor bridge!</p>
</div>
</div><!-- /row -->
</div> <!-- /container -->
</div><!-- /white -->
<!-- +++++ Footer Section +++++ -->
<div id="anonb">
<div class="container">
<div class="row">
<div class="col-lg-4">
<h4>Nihilism</h4>
<p>
Until there is Nothing left.
</p>
</div><!-- /col-lg-4 -->
<div class="col-lg-4">
<h4>My Links</h4>
<p>
<a target="_blank" rel="noopener noreferrer" href="http://blog.nowhere.moe/rss/feed.xml">RSS Feed</a><br/><a target="_blank" rel="noopener noreferrer" href="https://matrix.to/#/#nowheremoe:nowhere.moe">Matrix Chat</a><br/>
</p>
</div><!-- /col-lg-4 -->
<div class="col-lg-4">
<h4>About nihilist</h4>
<p style="word-wrap: break-word;"><u>Donate XMR:</u> 8AUYjhQeG3D5aodJDtqG499N5jXXM71gYKD8LgSsFB9BUV1o7muLv3DXHoydRTK4SZaaUBq4EAUqpZHLrX2VZLH71Jrd9k8</p></br><p><u>Contact:</u> nihilist@contact.nowhere.moe (<a href="https://nowhere.moe/nihilist.pubkey">PGP</a>)</p>
</div><!-- /col-lg-4 -->
</div>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
</body>
</html>