summaryrefslogtreecommitdiffstats
path: root/.md/tutorials/tor/how-to-host-a-tor-hidden-service.md
diff options
context:
space:
mode:
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.md114
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.