One of the features of Tor is the ability to create hidden services.

1 min read Original article ↗

Step 1.

Add the nginx and tor repositories to your apt sources list.

Open up the file /etc/apt/sources.list and append the following lines:

deb http://nginx.org/packages/debian/ wheezy nginxdeb-src http://nginx.org/packages/debian/ wheezy nginxdeb http://deb.torproject.org/torproject.org wheezy main

Step 2.

Import the gpg signing keys by running the following commands:

gpg —keyserver keys.gnupg.net —recv 886DDD89gpg —export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -wget http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key

Step 3.

Update sources and install nginx and Tor

apt-get updateapt-get install nginx tor

Step 4.

Configure nginx

Open the file /etc/nginx/conf.d/default.conf and replace with the following:

server {
listen 127.0.0.1:8080;
root /var/www/;
client_max_body_size 99M;
charset utf-8;
index index.html;
}

Create the folder /var/www/. This will be your web root.

mkdir /var/wwwtouch /var/www/index.html && “<h1>Hello Hidden World</h1>” > /var/www/index.html

Step 5.

Configure Tor

Open the file /etc/tor/torrc and add the following lines:

HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:8080

Create the HiddenServiceDirectory and give it permissions:

mkdir /var/lib/tor/hidden_service/ chown debian-tor:debian-tor /var/lib/tor/hidden_service/ chmod 0700 /var/lib/tor/hidden_service/

Step 6.

Restart Tor and nginx.

/etc/init.d/nginx restart/etc/init.d/tor restart

Step 7.

Fetch your new hostname and connect to your website.

In the file /var/lib/tor/hidden_service/hostname you will find your new .onion URL

Connect to the Tor network and access your new hidden service!