From f11b2d3dc38d662dd6023edb78799bab36cde504 Mon Sep 17 00:00:00 2001 From: Kaan Barmore-Genc Date: Sun, 5 Mar 2023 17:15:19 -0500 Subject: [PATCH] Add onion service article & footer notice --- config.toml | 18 ++-- .../img/tor-censorship-snowflake-chart.webp | Bin 0 -> 45120 bytes ...3.03.05.set-up-my-blog-as-onion-service.md | 96 ++++++++++++++++++ themes/catafalque | 2 +- 4 files changed, 106 insertions(+), 10 deletions(-) create mode 100644 content/img/tor-censorship-snowflake-chart.webp create mode 100644 content/posts/2023.03.05.set-up-my-blog-as-onion-service.md diff --git a/config.toml b/config.toml index 4e7826f..331a992 100644 --- a/config.toml +++ b/config.toml @@ -7,7 +7,7 @@ PygmentsCodeFences = true PygmentsStyle = "monokai" paginate = 20 -rssLimit = 60 # Maximum number of items in the RSS feed. +rssLimit = 60 # Maximum number of items in the RSS feed. copyright = "Contents are licensed under CC 4.0 unless specified otherwise.
Source code for this website is available at gitea.bgenc.net." # googleAnalytics = "" @@ -117,6 +117,9 @@ trademark = false rss = true copyright = true author = false +bottomText = [ + "This website is available at bgenc.net, or as an onion service at bgenc2iv62mumkhu2p564vxtao6ha7ihavmzwpetkmazgq6av7zvfwyd.onion which you can view through the Tor browser.", +] topText = [] # bottomText = [ @@ -154,11 +157,11 @@ logoHomeLink = "/" # url = "" [params.portrait] - path = "/img/profile.2022.12.jpeg" - pathWebp = "/img/profile.2022.12.webp" - pathAvif = "/img/profile.2022.12.avif" - alt = "A picture of Kaan, wearing a beanie, in front of some shrubbery." - maxWidth = "20rem" +path = "/img/profile.2022.12.jpeg" +pathWebp = "/img/profile.2022.12.webp" +pathAvif = "/img/profile.2022.12.avif" +alt = "A picture of Kaan, wearing a beanie, in front of some shrubbery." +maxWidth = "20rem" # Social icons [[params.social]] @@ -208,6 +211,3 @@ url = "posts/" identifier = "portfolio" name = "Portfolio" url = "portfolio/" - -[gmnhg] -baseUrl = "gemini://gemini.bgenc.net" diff --git a/content/img/tor-censorship-snowflake-chart.webp b/content/img/tor-censorship-snowflake-chart.webp new file mode 100644 index 0000000000000000000000000000000000000000..9cf3c1676dc84ca5bcdb052d66bcce1993eac463 GIT binary patch literal 45120 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 E03NORbN~PV literal 0 HcmV?d00001 diff --git a/content/posts/2023.03.05.set-up-my-blog-as-onion-service.md b/content/posts/2023.03.05.set-up-my-blog-as-onion-service.md new file mode 100644 index 0000000..9a6f163 --- /dev/null +++ b/content/posts/2023.03.05.set-up-my-blog-as-onion-service.md @@ -0,0 +1,96 @@ +--- +title: "Setting up my blog as an Onion service (Tor hidden service)" +date: 2023-03-05T15:54:13-05:00 +toc: false +images: +--- + +If you don't know about it, Tor is a software that helps online privacy and +fights censorship using the Onion network. For example, [tens of thousands of people in Iran and Russia are using Tor through Tor's Snowflake proxies](https://blog.torproject.org/snowflake-daily-operations/) to get +around government censorship and access vital information, as news organizations like the [BBC started offering access through Tor](https://www.wsj.com/articles/russia-rolls-down-internet-iron-curtain-but-gaps-remain-11647087321). +As [online services are happy to turn over our data to the authorities](https://www.businessinsider.com/police-getting-help-social-media-to-prosecute-people-seeking-abortions-2023-2?op=1), +it is crucial for Tor to exist so journalists, activists, whistle-blowers, and +anyone living under oppressive regimes can access information and communicate freely. + +But there is really no reason for Tor to be used solely by people trying to +avoid censorship or stay private. In fact, I think it is good for people to use +Tor for other things, because this way Tor is not just a tool for "people with +something to hide" but a tool that everyone uses. It's a bit like adding +pronouns in your bio on social media: it's good when cis people put pronouns in +their bios because otherwise just having your pronouns in your bio would +immediately flag you as a trans or gender nonconforming person. Everyone else +joining in gives security to those who really need it. + +## Setting up the Onion service + +My first step was to set up a Docker container to run Tor in. +I put this container on DockerHub for others to use: [seriousbug/tor](https://hub.docker.com/repository/docker/seriousbug/tor/general). + +Next, I used [mkp224o](https://github.com/cathugger/mkp224o) to get a vanity +address. Onion addresses are made out of long, random sequences like +`xbbubmuxby...qd.onion`, but you can try to generate one that starts with a +special prefix, for example DuckDuckGo has an Onion service that starts with +"duckduckgo": `duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion`. +Doing this is computationally expensive, but short prefixes are easy to +generate. I wanted something that starts with `bgenc`, which only took a few +seconds. I also tried `kaanbgenc` but gave up after waiting several minutes: the +difficulty goes up exponentially the longer the prefix you want is, so 9 +characters would have likely taken months on my desktop. + +Next, I set up the configuration file for Tor. That looks like this: + +``` +Log notice stdout +HiddenServiceDir /etc/tor/service +HiddenServicePort 80 unix:/var/run/tor/bgenc.net.sock +``` + +I put the keys that `mkp224o` generated into a subfolder named `service` next to +my Tor config. These are going to be mounted at `/etc/tor` in the Tor container. +I then told Tor to look at `/var/run/tor/bgenc.net.sock`, where I'll be mounting +my nginx unix socket at. + +And that reminds me, it's time to set up nginx! Under the `server` block that +serves my website, I added my onion address as one of the host names: + +``` +server_name bgenc.net; +server_name bgenc2iv62mumkhu2p564vxtao6ha7ihavmzwpetkmazgq6av7zvfwyd.onion; +``` + +Then, I added the listen directive to create and listen to that socket: + +``` +listen 443 ssl http2; +listen unix:/var/run/nginx/bgenc.net.sock; +``` + +I'm using a unix socket here because my nginx is actually running on the base +system without a container, while tor is in a container. So to allow Tor to +connect to the nginx in the host, I would have had to allow the tor container to +use the host network. But I can get around that with a Unix socket, because the +socket can get mounted from the host into the container. + +Also mind that I'm not using SSL or http2 for the unix socket. There are very few +SSL key services that support Tor, and it's not necessary anyway because the Tor +network provides the same security guarantees to you already. I also found that +`http2` does not work, though I'm not sure why. + +I finally added the tor container to a `docker-compose.yml` to make it easier to +rebuild if needed. That looks like this: + +```yml + tor-hidden-service: + image: seriousbug/tor + restart: always + volumes: + - ./tor:/etc/tor + - /var/run/nginx:/var/run/tor +``` + +I also needed to make the tor directory with the configuration file and services +owned by root, and use 700 as the file permission. Otherwise Tor refuses to start. + +Once all of this is set up, I restarted nginx and my Tor container. And that was about it! +The website is now accessible through Tor! You can find it at [bgenc2iv62mumkhu2p564vxtao6ha7ihavmzwpetkmazgq6av7zvfwyd.onion](http://bgenc2iv62mumkhu2p564vxtao6ha7ihavmzwpetkmazgq6av7zvfwyd.onion/). + diff --git a/themes/catafalque b/themes/catafalque index 01bc449..083f35e 160000 --- a/themes/catafalque +++ b/themes/catafalque @@ -1 +1 @@ -Subproject commit 01bc4490d0750b37b31b18e56bc28ae68dd2b23f +Subproject commit 083f35e878d741ee72d8d757ff094792ba6cae9e