Roger Dingledine commited on 2006-03-15 23:41:06
Zeige 1 geänderte Dateien mit 276 Einfügungen und 0 Löschungen.
... | ... |
@@ -0,0 +1,276 @@ |
1 |
+## translation metadata |
|
2 |
+# Revision: $Revision$ |
|
3 |
+ |
|
4 |
+#include "head.wmi" TITLE="Tor Hidden Service Configuration Instructions" |
|
5 |
+ |
|
6 |
+<div class="center"> |
|
7 |
+ |
|
8 |
+<div class="main-column"> |
|
9 |
+ |
|
10 |
+<h1>Configuring Hidden Services for <a href="<page index>">Tor</a></h1> |
|
11 |
+<hr /> |
|
12 |
+ |
|
13 |
+<p>Tor allows clients and servers to offer hidden services. That is, |
|
14 |
+you can offer a web server, SSH server, etc., without revealing your |
|
15 |
+IP to its users. In fact, because you don't use any public address, |
|
16 |
+you can run a hidden service from behind your firewall. |
|
17 |
+</p> |
|
18 |
+ |
|
19 |
+<p>If you have Tor and Privoxy installed, you can see hidden services |
|
20 |
+in action by visiting <a href="http://6sxoyfb3h2nvok2d.onion/">the |
|
21 |
+hidden wiki</a>. |
|
22 |
+</p> |
|
23 |
+ |
|
24 |
+<p>This howto describes the steps for setting up your own hidden service |
|
25 |
+website. |
|
26 |
+</p> |
|
27 |
+ |
|
28 |
+<hr /> |
|
29 |
+<a id="zero"></a> |
|
30 |
+<h2><a class="anchor" href="#zero">Step Zero: Get Tor and Privoxy working</a></h2> |
|
31 |
+<br /> |
|
32 |
+ |
|
33 |
+<p>Before you start, you need to make sure 1) Tor is up and running, |
|
34 |
+2) Privoxy is up and running, 3) Privoxy is configured to point |
|
35 |
+to Tor, and 4) You actually set it up correctly.</p> |
|
36 |
+ |
|
37 |
+<p>Windows users should follow the <a |
|
38 |
+href="<page docs/tor-doc-win32>">Windows |
|
39 |
+howto</a>, OS X users should follow the <a |
|
40 |
+href="<page docs/tor-doc-osx>">OS |
|
41 |
+X howto</a>, and Linux/BSD/Unix users should follow the <a |
|
42 |
+href="<page docs/tor-doc-unix>">Unix howto</a>. |
|
43 |
+</p> |
|
44 |
+ |
|
45 |
+<p>Once you've got Tor and Privoxy installed and configured, |
|
46 |
+you can see hidden services in action by following this link to <a |
|
47 |
+href="http://6sxoyfb3h2nvok2d.onion/">the hidden wiki</a>. |
|
48 |
+It will typically take 10-60 seconds to load |
|
49 |
+(or to decide that it is currently unreachable). If it fails |
|
50 |
+immediately and your browser pops up an alert saying that |
|
51 |
+"www.6sxoyfb3h2nvok2d.onion could not be found, please check the name and |
|
52 |
+try again" then you haven't configured Tor and Privoxy correctly; see <a |
|
53 |
+href="http://wiki.noreply.org/noreply/TheOnionRouter/TorFAQ#ItDoesntWork">this |
|
54 |
+FAQ entry</a> for some help. |
|
55 |
+</p> |
|
56 |
+ |
|
57 |
+<hr /> |
|
58 |
+<a id="one"></a> |
|
59 |
+<h2><a class="anchor" href="#one">Step One: Configure an example hidden service</a></h2> |
|
60 |
+<br /> |
|
61 |
+ |
|
62 |
+<p>In this step, you're going to configure a hidden service that points |
|
63 |
+to www.google.com. This way we can make sure you have this step |
|
64 |
+working before we start thinking about setting up a web server locally. |
|
65 |
+</p> |
|
66 |
+ |
|
67 |
+<p>First, open your torrc file in your favorite text editor. (See <a |
|
68 |
+href="http://wiki.noreply.org/noreply/TheOnionRouter/TorFAQ#torrc">this |
|
69 |
+FAQ entry</a> to learn what this means.) Go to the middle section and |
|
70 |
+look for the line</p> |
|
71 |
+ |
|
72 |
+<pre> |
|
73 |
+############### This section is just for location-hidden services ### |
|
74 |
+</pre> |
|
75 |
+ |
|
76 |
+<p> |
|
77 |
+This section of the file consists of groups of lines, each representing |
|
78 |
+one hidden service. Right now they are all commented out (the lines |
|
79 |
+start with #), so hidden services are disabled. Each group of lines |
|
80 |
+consists of one HiddenServiceDir line, and one or more HiddenServicePort |
|
81 |
+lines:</p> |
|
82 |
+<ul> |
|
83 |
+<li><b>HiddenServiceDir</b> is a directory where Tor will store information |
|
84 |
+about that hidden service. In particular, Tor will create a file here named |
|
85 |
+<i>hostname</i> which will tell you the onion URL. You don't need to add any |
|
86 |
+files to this directory.</li> |
|
87 |
+<li><b>HiddenServicePort</b> lets you specify a virtual port (that is, what |
|
88 |
+port people accessing the hidden service will think they're using) and an |
|
89 |
+IP address and port for redirecting connections to this virtual port.</li> |
|
90 |
+</ul> |
|
91 |
+ |
|
92 |
+<p>In this example, we're going to set up a hidden service that points to |
|
93 |
+Google. So add the following lines to your torrc: |
|
94 |
+</p> |
|
95 |
+ |
|
96 |
+<pre> |
|
97 |
+HiddenServiceDir /Library/Tor/var/lib/tor/hidden_service/ |
|
98 |
+HiddenServicePort 80 www.google.com:80 |
|
99 |
+</pre> |
|
100 |
+ |
|
101 |
+<p>You're going to want to change the HiddenServiceDir line, so it points |
|
102 |
+to an actual directory that is readable/writeable by the user that will |
|
103 |
+be running Tor. The above line should work if you're using the OS X Tor |
|
104 |
+package. On Unix, try "/home/username/hidserv/" and fill in your own |
|
105 |
+username in place of "username". On Windows you might pick:</p> |
|
106 |
+<pre> |
|
107 |
+HiddenServiceDir C:\Documents and Settings\username\Application Data\hidden_service\ |
|
108 |
+HiddenServicePort 80 www.google.com:80 |
|
109 |
+</pre> |
|
110 |
+ |
|
111 |
+<p>Now save the torrc, shut down |
|
112 |
+your Tor, and then start it again. (See <a |
|
113 |
+href="http://wiki.noreply.org/noreply/TheOnionRouter/TorFAQ#Restarting">this |
|
114 |
+FAQ entry</a> for tips on restarting Tor.) |
|
115 |
+</p> |
|
116 |
+ |
|
117 |
+<p>If Tor starts up again, great. Otherwise, something is wrong. Look |
|
118 |
+at your torrc for obvious mistakes like typos. Then double-check |
|
119 |
+that the directory you picked is writeable by you. If it's still |
|
120 |
+not working, you should look at the Tor logs for hints. (See <a |
|
121 |
+href="http://wiki.noreply.org/noreply/TheOnionRouter/TorFAQ#Logs">this |
|
122 |
+FAQ entry</a> if you don't know how to enable or find your log file.) |
|
123 |
+</p> |
|
124 |
+ |
|
125 |
+<p>When Tor starts, it will automatically create the HiddenServiceDir |
|
126 |
+that you specified (if necessary), and it will create two files there. |
|
127 |
+First, it will generate a new |
|
128 |
+public/private keypair for your hidden service, and write it into a |
|
129 |
+file called "private_key". Don't share this key with others -- if you |
|
130 |
+do they will be able to impersonate your hidden service. |
|
131 |
+</p> |
|
132 |
+ |
|
133 |
+<p>The other file it will create is called "hostname". This contains |
|
134 |
+a short summary of your public key -- it will look something like |
|
135 |
+<tt>6sxoyfb3h2nvok2d.onion</tt>. This is the public name for your service, |
|
136 |
+and you can tell it to people, publish it on websites, put it on business |
|
137 |
+cards, etc. (If Tor runs as a different user than you, for example on |
|
138 |
+OS X, Debian, or Red Hat, then you may need to become root to be able |
|
139 |
+to view these files.) |
|
140 |
+</p> |
|
141 |
+ |
|
142 |
+<p>Now that you've restarted Tor, it is busy picking introduction points |
|
143 |
+in the Tor network, and generating what's called a "hidden service |
|
144 |
+descriptor", which is a signed list of introduction points along with |
|
145 |
+the service's full public key. It anonymously publishes this descriptor |
|
146 |
+to the directory servers, and other people anonymously fetch it from the |
|
147 |
+directory servers when they're trying to access your service. |
|
148 |
+</p> |
|
149 |
+ |
|
150 |
+<p>Try it now: paste the contents of the hostname file into your web |
|
151 |
+browser. If it works, you'll get the google frontpage, but the URL in your |
|
152 |
+browser's window will be your hidden service hostname. If it doesn't work, |
|
153 |
+look in your logs for some hints, and keep playing with it until it works. |
|
154 |
+</p> |
|
155 |
+ |
|
156 |
+<hr /> |
|
157 |
+<a id="two"></a> |
|
158 |
+<h2><a class="anchor" href="#two">Step Two: Now install a web server locally</a></h2> |
|
159 |
+<br /> |
|
160 |
+ |
|
161 |
+<p>Now that you have hidden services working on Tor, you need to |
|
162 |
+set up your web server locally. Setting up a web server is tricky, |
|
163 |
+so we're just going to go over a few basics here. If you get stuck |
|
164 |
+or want to do more, find a friend who can help you. We recommend you |
|
165 |
+install a new separate web server for your hidden service, since even |
|
166 |
+if you already have one installed, you may be using it (or want to use |
|
167 |
+it later) for an actual website. |
|
168 |
+</p> |
|
169 |
+ |
|
170 |
+<p>If you're on Unix or OS X and you're comfortable with |
|
171 |
+the command-line, by far the best way to go is to install <a |
|
172 |
+href="http://www.acme.com/software/thttpd/">thttpd</a>. Just grab the |
|
173 |
+latest tarball, untar it (it will create its own directory), and run |
|
174 |
+./configure && make. Then mkdir hidserv, cd hidserv, and run |
|
175 |
+"../thttpd -p 5222 -h localhost". It will give you back your prompt, |
|
176 |
+and now you're running a webserver on port 5222. You can put files to |
|
177 |
+serve in the hidserv directory. |
|
178 |
+</p> |
|
179 |
+ |
|
180 |
+<p>If you're on Windows, ...what should we suggest here? Is there |
|
181 |
+a good simple <a href="http://www.fsf.org/">free software</a> (not |
|
182 |
+just "freeware") web server for Windows? Please |
|
183 |
+let me know what we should say here. In the meantime, |
|
184 |
+check out <a href="http://httpd.apache.org/">apache</a>, |
|
185 |
+and be sure to |
|
186 |
+configure it to bind only to localhost. You should also figure out |
|
187 |
+what port you're listening on, because you'll use it below. |
|
188 |
+</p> |
|
189 |
+ |
|
190 |
+<p>(The reason we bind the web server only to localhost is to make |
|
191 |
+sure it isn't publically accessible. If people could get to it directly, |
|
192 |
+they could confirm that your computer is the one offering the hidden |
|
193 |
+service.) |
|
194 |
+</p> |
|
195 |
+ |
|
196 |
+<p>Once you've got your web server set up, make sure it works: open your |
|
197 |
+browser and go to <a |
|
198 |
+href="http://localhost:5222/">http://localhost:5222/</a>. Then |
|
199 |
+try putting a file |
|
200 |
+in the main html directory, and make sure it shows up when you access |
|
201 |
+the site. |
|
202 |
+</p> |
|
203 |
+ |
|
204 |
+<hr /> |
|
205 |
+<a id="three"></a> |
|
206 |
+<h2><a class="anchor" href="#three">Step Three: Connect your web server to your hidden service</a></h2> |
|
207 |
+<br /> |
|
208 |
+ |
|
209 |
+<p>This part is very simple. Open up your torrc again, and change the |
|
210 |
+HiddenServicePort line from "www.google.com:80" to "localhost:5222". |
|
211 |
+Then <a |
|
212 |
+href="http://wiki.noreply.org/noreply/TheOnionRouter/TorFAQ#Restarting">restart |
|
213 |
+Tor</a>. Make sure that it's working by reloading your hidden |
|
214 |
+service hostname in your browser. |
|
215 |
+</p> |
|
216 |
+ |
|
217 |
+<hr /> |
|
218 |
+<a id="four"></a> |
|
219 |
+<h2><a class="anchor" href="#four">Step Four: More advanced tips</a></h2> |
|
220 |
+<br /> |
|
221 |
+ |
|
222 |
+<p>If you plan to keep your service available for a long time, you might |
|
223 |
+want to make a backup copy of the private_key file somewhere. |
|
224 |
+</p> |
|
225 |
+ |
|
226 |
+<p>We avoided recommending Apache above, a) because many people might |
|
227 |
+already be running it for a public web server on their computer, and b) |
|
228 |
+because it's big |
|
229 |
+and has lots of places where it might reveal your IP address or other |
|
230 |
+identifying information, for example in 404 pages. For people who need |
|
231 |
+more functionality, though, Apache may be the right answer. Can |
|
232 |
+somebody make us a checklist of ways to lock down your Apache when you're |
|
233 |
+using it as a hidden service? |
|
234 |
+</p> |
|
235 |
+ |
|
236 |
+<p>If you want to forward multiple virtual ports for a single hidden |
|
237 |
+service, just add more HiddenServicePort lines. |
|
238 |
+If you want to run multiple hidden services from the same Tor |
|
239 |
+client, just add another HiddenServiceDir line. All the following |
|
240 |
+HiddenServicePort lines refer to this HiddenServiceDir line, until |
|
241 |
+you add another HiddenServiceDir line: |
|
242 |
+</p> |
|
243 |
+ |
|
244 |
+<pre> |
|
245 |
+HiddenServiceDir /usr/local/etc/tor/hidden_service/ |
|
246 |
+HiddenServicePort 80 127.0.0.1:8080 |
|
247 |
+ |
|
248 |
+HiddenServiceDir /usr/local/etc/tor/other_hidden_service/ |
|
249 |
+HiddenServicePort 6667 127.0.0.1:6667 |
|
250 |
+HiddenServicePort 22 127.0.0.1:22 |
|
251 |
+</pre> |
|
252 |
+ |
|
253 |
+<p>There are some anonymity issues you should keep in mind too: |
|
254 |
+</p> |
|
255 |
+<ul> |
|
256 |
+<li>As mentioned above, be careful of letting your web server reveal |
|
257 |
+identifying information about you, your computer, or your location. |
|
258 |
+For example, readers can probably determine whether it's thttpd or |
|
259 |
+Apache, and learn something about your operating system.</li> |
|
260 |
+<li>If your computer isn't online all the time, your hidden service |
|
261 |
+won't be either. This leaks information to an observant adversary.</li> |
|
262 |
+<!-- increased risks over time --> |
|
263 |
+</ul> |
|
264 |
+ |
|
265 |
+ |
|
266 |
+ |
|
267 |
+<hr /> |
|
268 |
+ |
|
269 |
+<p>If you have suggestions for improving this document, please <a |
|
270 |
+href="/contact">send them to us</a>. Thanks!</p> |
|
271 |
+ |
|
272 |
+ </div><!-- #main --> |
|
273 |
+</div> |
|
274 |
+ |
|
275 |
+#include <foot.wmi> |
|
276 |
+ |
|
0 | 277 |