diff options
Diffstat (limited to '.md/tutorials/tor/how-to-host-a-tor-hidden-service.md')
-rw-r--r-- | .md/tutorials/tor/how-to-host-a-tor-hidden-service.md | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/.md/tutorials/tor/how-to-host-a-tor-hidden-service.md b/.md/tutorials/tor/how-to-host-a-tor-hidden-service.md new file mode 100644 index 0000000..d13f5d0 --- /dev/null +++ b/.md/tutorials/tor/how-to-host-a-tor-hidden-service.md @@ -0,0 +1,114 @@ +This might sound spooky and complicated, but it's really not. If +you want to host a small site or a small file share among friends, I +honestly think Tor is one of the easiest and safest options to set up. + +Getting a Tor hidden service running is so stupidly easy that it hardly +deserves it's own article. Tor's website has a great guide right +[here](https://community.torproject.org/onion-services/setup/). I +figured I'd put my own spin on it by showing you show to host a +temporary server to share some files with your friends. Please note the +word *temporary* in that last sentence; running this way for a while is +insecure and not a good idea. For a permanent solution, you'll +want to host a real web server as explained +[here](/site/tutorials/www/how-to-make-this-site.html). + +Unlike that article, I will only explain how to do this on Linux since +it's way easier and, to be honest, I've never tried to do it on Windows. +If you've never used Linux before, buy a Raspberry Pi and follow +the basic install guide. If you're strapped for cash, run it in a +virtual machine, or use Windows Subsystem for Linux. + +## How to spin up a temporary hidden file share with Python + +Once you have Debian/Ubuntu/whatever installed and it's updated to your +liking, you can install Tor with: + +``` +$ sudo apt install tor +``` + +Start (or stop) Tor with: + +``` +$ sudo service tor start +``` + +or + +``` +$ sudo systemctl start tor.service +``` + +You may need to enable the service first. I think this is done by default +now, but it doesn't hurt: + +``` +$ sudo systemctl enable tor.service +``` + +### Configure Tor + +You'll need to edit the file "/etc/tor/torrc" before your service can +be available over Tor. Use vim, nano, or whatever you like to edit +the file (as root!) and search for the following lines: + +``` +#HiddenServiceDir /var/lib/tor/hidden_service/ +#HiddenServicePort 80 127.0.0.1:80 +``` + +Remove the '#' at the beginning of each and change the port to 8000 like +so: + +``` +HiddenServiceDir /var/lib/tor/hidden_service/ +HiddenServicePort 80 127.0.0.1:8000 +``` + +Save and restart Tor for the changes to apply: + +``` +$ sudo service tor restart +``` + +Once you do this, you'll get a new onion address located in the +directory noted above. Use cat to read the hostname file: + +``` +$ cat /var/lib/tor/hidden_service/hostname +``` + +### Set up the server + +Make some directory to hold your files. + +``` +$ mkdir -pv files +``` + +Since we're only doing this temporarily, we don't care too much about +security or where the files should go, but if you want to be careful, +you can issue the following to set the directory to read only after +you copy your files in: + +``` +$ chmod -R 644 files +``` + +Change into the directory and run Python's built-in http server: + +``` +$ cd files +$ python3 -m http.server +``` + +You'll see the server is being hosted on port 8000, which is what we +chose in the config file earlier. Just leave it running, or send it to +the background with Ctrl+Z and run "bg". + +And that's it! You are now the proud owner of a tor hidden service. Take +the hostname you copied down before and add ".onion" to the end and give +it to your friends so they can browse the files in the directory through +the Tor Browser. + +Be sure to watch the program log though... lest they get up to no good. |