| 
					
				 | 
			
			
				@@ -386,11 +386,14 @@ otherwise it is listed only by its fingerprint.</p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <a name="hidden-service"></a> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <h2>Configuring a hidden service</h2> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-<p>Tor allows clients and servers to offer <em>hidden services</em>. That 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<p>Tor allows clients and servers to offer hidden services. That 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 is, you can offer an apache, sshd, etc, without revealing your IP to its 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 users. This works via Tor's rendezvous point design: both sides build 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 a Tor circuit out, and they meet in the middle.</p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<p>Using the built-in redirection (see below), it is possible to have a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+server setup on localhost and only remote Tor connections can access it.</p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <p>If you're using Tor and <a href="http://www.privoxy.org/">Privoxy</a>, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 you can <a href="http://6sxoyfb3h2nvok2d.onion/">go to the hidden wiki</a> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 to see hidden services in action.</p> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -402,6 +405,61 @@ create each HiddenServiceDir you have configured, and it will create a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 can tell people the url, and they can connect to it via their Tor client, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 assuming they're using a proxy (such as Privoxy) that speaks SOCKS 4A.</p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<p>Assume you want to have a hidden service to allow people to access your 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Apache http server through tor.  By doing this, they can access your server 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+but won't know who they are connecting to.  You want them to access your 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Apache server using the standard port 80.  However, your Apache 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+server is actually running on port 8080 so it needs to be 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+redirected.</p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<p><b>HiddenServiceDir</b> is a directory where Tor will store information 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+about that hidden service.  In particular, it will store a file here named 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<i>hostname</i> which will tell you the onion URL.  You don't need to add any 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+files to this directory.</p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<p><b>HiddenServicePort</b> is where you specify a virtual port and where 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+it should be redirected to.  For instance, you tell tor there's a virtual 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+port 80 and then redirect traffic to your local webserver at 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+127.0.0.1:8080.</p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<p>Example lines from a torrc file</p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<pre> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+HiddenServiceDir /usr/local/etc/tor/hidden_service/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+HiddenServicePort 80 127.0.0.1:8080 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</pre> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<p>This tells tor to store its files in <tt>/usr/local/etc/tor/hidden_service/</tt> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+and allow people to connect to your onion address on port 80.  It 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+will then redirect requests to your localhost webserver on port 8080. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<p>To let people access your hidden service, look at the file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<tt>/usr/local/etc/tor/hidden_service/hostname</tt> which will tell you what the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+hostname is (such as xyz.onion).  Then, as long as they have tor and privoxy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+configured, they can access your webserver with a web browser by connecting 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+to http://xyz.onion.</p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<p>You can have multiple tor hidden services by repeating Dir and Ports:</p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<pre> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+HiddenServiceDir /usr/local/etc/tor/hidden_service/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+HiddenServicePort 80 127.0.0.1:8080 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+HiddenServiceDir /usr/local/etc/tor/other_hidden_service/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+HiddenServicePort 6667 127.0.0.1:6667 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+HiddenServicePort 22 127.0.0.1:22 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</pre> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<p>The above example will allow people to connect to the hostname in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<tt>/usr/local/etc/tor/hidden_service/hostname</tt> for an HTTP server and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+to a different hostname in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<tt>/usr/local/etc/tor/other_hidden_service/hostname</tt> for an IRC and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+SSH server.</p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<p>To an end user, this appears to be two separate hosts with one running an 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+HTTP server and another running an IRC/SSH server.</p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <a name="own-network"></a> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <h2>Setting up your own network</h2> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |