fix typo, VPNs, PrivTracker, perspectives

This commit is contained in:
XMRonly 2024-10-20 11:59:07 -04:00
parent 0a717d19a7
commit 941c4e986c
3 changed files with 46 additions and 58 deletions

View File

@ -77,31 +77,8 @@
<div class="col-lg-8 col-lg-offset-2"> <div class="col-lg-8 col-lg-offset-2">
<h2><b>Introduction</b></h2> <h2><b>Introduction</b></h2>
<p> <p>
<!-- (explain acronym P2P, introduce terms seeder/leecher) --> While many methods of sending files online exist, scaling file sending to accomodate larger and larger files can be a problem due to constraints on bandwidth, connection reliability and maintaining file integrity. To solve some of these issues, the technology of torrenting was born. At its core, torrenting simply involves taking a large file, breaking it into smaller chunks, transmitting those smaller chunks from one peer to another (hence P2P), and having the receiving party reconstruct those smaller chunks into the original file. The advantages here are that this process is decentralized, can be interrupted/resumed, and leechers can simultaneously download from multiple seeders thus speeding up the process. This process inherently relies on users' IP addresses for file transmission which are visible to anyone participating. As such, we must take precautions using a VPN to mask this information. In this article, we will explore how, after binding a VPN to their torrent clients, Sam the Seeder can privately share a large file with Larry the Leecher.
<!-- Ever since people started communicating online, (the need for transmitting files to one another quickly emerged) they quickly realized a need for transmitting files to one another. While many methods of sending files came to exist, scaling file sending to accomodate larger and larger files became a problem due to constraints on bandswidth, speed, and connection reliability. Maintaining the integrity of large files during long transmission times became challenging and from this problem, the technology of torrenting was born. At its core, torrenting simply involves taking a large file, breaking it into smaller chunks, transmitting those smaller chunks from one peer to another (hence P2P), and having the receiving peer reconstruct those smaller chunks into the original file. The advantages here are that this process can be interrupted, is decentralized, and leechers can simultaneously download from multiple seeders thus speeding up the process. Even though torrenting is decentralized, it is important to keep in mind that this process inherently relies on users' IP address for file transmission which is visible to anyone participating. As such we must take precautions using a VPN to mask this information. In this article, we will explore how, after binding a VPN to their torrent clients, Sam the Seeder can create a torrent file and share a file with Larry the Leecher. -->
While many methods of sending files online exist, scaling file sending to accomodate larger and larger files can be a problem due to constraints on bandswidth, connection reliability and maintaining file integrity. To solve some of these issues, the technology of torrenting was born. At its core, torrenting simply involves taking a large file, breaking it into smaller chunks, transmitting those smaller chunks from one peer to another (hence P2P), and having the receiving party reconstruct those smaller chunks into the original file. The advantages here are that this process is decentralized, can be interrupted/resumed, and leechers can simultaneously download from multiple seeders thus speeding up the process. This process inherently relies on users' IP addresses for file transmission which are visible to anyone participating. As such, we must take precautions using a VPN to mask this information. In this article, we will explore how, after binding a VPN to their torrent clients, Sam the Seeder can privately share a large file with Larry the Leecher.
</p> </p>
<img src="" class="imgRz">
<!-- <pre><code class="nim"> -->
<!-- </code></pre> -->
<p></p>
<img src="" class="imgRz">
<!-- <pre><code class="nim"> -->
<!-- </code></pre> -->
<p></p>
<img src="" class="imgRz">
<!-- <pre><code class="nim"> -->
<!-- </code></pre> -->
</div> </div>
</div><!-- /row --> </div><!-- /row -->
@ -114,23 +91,18 @@ While many methods of sending files online exist, scaling file sending to accomo
<div class="col-lg-8 col-lg-offset-2"> <div class="col-lg-8 col-lg-offset-2">
<h2><b>Setup</b></h2> </br> </br> <h2><b>Setup</b></h2> </br> </br>
<p> <p>
It is presumed that both Sam and Larry have already purchased a subscription to a <a href=https://blog.nowhere.moe/opsec/vpn/index.html target=_blank>VPN</a>. To start, they will sign in to their VPN client, ensure kill switch is enabled in the Settings, connect to their VPN and verify their IP address. We start from the perspective of both Sam and Larry as both will complete these inital steps.
<br>
<img src="sam.png"> <img src="larry.png">
</p>
<p>
It is presumed that both Sam and Larry have already purchased a subscription to a <a href=https://blog.nowhere.moe/opsec/vpn/index.html target=_blank>VPN</a>. For this example we will use Proton VPN, but other <a href=https://kycnot.me/?t=service&q=vpn target=_blank>non-KYC VPNs</a> that accept Monero, such as Mullvad, may also be used. To start, they will sign in to their VPN client, ensure kill switch is enabled in the Settings, connect to their VPN and verify their IP address.
<img src="1.png" class="imgRz"> <img src="1.png" class="imgRz">
</p> </p>
<p> <p>
Both Sam and Larry will install qBittorrent: Both Sam and Larry will install qBittorrent:
<!-- Blocks: -->
<!-- -start by downloading qBittorrent (commands) -->
<!-- -bind VPN to torrent client -->
<!-- -can test -->
<!---->
<!-- Sam creates torrent -->
<!-- Shares it with Larry over SimpleX -->
<!---->
<!-- Larry adds to .torrent file, starts downloading -->
<!-- Download complete -->
<!-- <img src="" class="imgRz"> -->
<pre> <pre>
<code class="nim"> <code class="nim">
sudo apt install qbittorrent sudo apt install qbittorrent
@ -149,18 +121,47 @@ Next, Sam and Larry need to bind their VPN to qBittorrent. Under Tools -> Prefer
<img src="3.png" class="imgRz"> <img src="3.png" class="imgRz">
</p> </p>
<!-- <pre><code class="nim"> -->
<!-- </code></pre> -->
<p> <p>
With this step complete, all qBittorrent traffic is routed through the VPN. Should the VPN disconnect, all current downloads/uploads will stop without revealing Sam or Larry's true IP address due to the kill switch option previously enabled. With this step complete, all qBittorrent traffic is routed through the VPN. Should the VPN disconnect, all current downloads/uploads will stop without revealing Sam or Larry's true IP address due to the kill switch option previously enabled.
</p> </p>
<p>
We will switch to Sam's perspective.
<br>
<img src="sam.png">
</p>
<p> <p>
Sam is now ready to share a file with Larry. He has a 10GB file of "linux ISOs" for which he will need to create a .torrent file. To help with this, Sam will use <a href=https://privtracker.com target=_blank>PrivTracker</a>, a private BitTorrent tracker, to announce his .torrent file. Sam generates a private announce URL on the PrivTracker website and copies it to his clipboard. Sam is now ready to share a file with Larry. He has a 10GB file of "linux ISOs" for which he will need to create a .torrent file. To help with this, Sam will use <a href=https://privtracker.com target=_blank>PrivTracker</a>, a private BitTorrent tracker, to announce his .torrent file. Sam generates a private announce URL on the PrivTracker website and copies it to his clipboard.
<img src="4.png" class="imgRz"> <img src="4.png" class="imgRz">
</p> </p>
<p>
Additionally, it is possible to self-host PrivTracker on a VPS. Following the instructions on their <a href=https://github.com/meehow/privtracker target=_blank>GitHub</a>, we need to run:
<pre>
<code class="nim">
Build
# Clone this repository.
$ git clone https://github.com/meehow/privtracker.git
# cd into the directory
$ cd privtracker
# Run go build
$ go build
Usage
# Runs on port 1337 and redirects to privtracker.com by default.
$ ./privtracker
# Export PORT and DOMAIN variables to use custom values.
$ export PORT=12345 DOMAIN=customprivtracker.com; ./privtracker
</code>
</pre>
</p>
<p> <p>
In qBittorrent, Sam will go to Tools -> Torrent Creator. He selects the desired file, checks the box to make it a private torrent, clicks the box to start seeding immediately, pastes the previous copied announce URL in the Trackers URLs section and clicks on Create Torrent. Once the process finishes, he clicks OK. In qBittorrent, Sam will go to Tools -> Torrent Creator. He selects the desired file, checks the box to make it a private torrent, clicks the box to start seeding immediately, pastes the previous copied announce URL in the Trackers URLs section and clicks on Create Torrent. Once the process finishes, he clicks OK.
<img src="5.png" class="imgRz"> <img src="5.png" class="imgRz">
@ -176,16 +177,17 @@ Sam now starts a <a href=https://blog.nowhere.moe/opsec/anonsimplex/index.html t
<img src="7.png" class="imgRz"> <img src="7.png" class="imgRz">
</p> </p>
<p>
We will switch to Larry's perspective.
<br>
<img src="larry.png">
</p>
<p> <p>
Larry adds the .torrent file to his qBittorrent client to begin downloading the 10GB file. Under File -> Add Torrent File, Larry selects the .torrent file he received and clicks Open. Larry chooses where to save the 10GB file then clicks OK. Larry adds the .torrent file to his qBittorrent client to begin downloading the 10GB file. Under File -> Add Torrent File, Larry selects the .torrent file he received and clicks Open. Larry chooses where to save the 10GB file then clicks OK.
<img src="8.png" class="imgRz"> <img src="8.png" class="imgRz">
</p> </p>
<!-- <pre><code class="nim"> -->
<!-- </code></pre> -->
</div> </div>
</div><!-- /row --> </div><!-- /row -->
</div> <!-- /container --> </div> <!-- /container -->
@ -203,20 +205,6 @@ Larry is now leeching the file that Sam is seeding! After a bit of time the tran
<img src="9.png" class="imgRz"> <img src="9.png" class="imgRz">
</p> </p>
<!-- <pre><code class="nim"> -->
<!-- </code></pre> -->
<!-- <p></p> -->
<!-- <pre><code class="nim"> -->
<!-- </code></pre> -->
<!-- <p></p> -->
<!-- <pre><code class="nim"> -->
<!-- </code></pre> -->
</div> </div>
</div><!-- /row --> </div><!-- /row -->
</div> <!-- /container --> </div> <!-- /container -->

BIN
opsec/p2ptorrents/larry.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
opsec/p2ptorrents/sam.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB