Renamed files, made new files with old names for redirects, updated
links to use new URLs.
1 | 1 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,258 @@ |
1 |
+## translation metadata |
|
2 |
+# Revision: $Revision$ |
|
3 |
+# Translation-Priority: 3-low |
|
4 |
+ |
|
5 |
+#include "head.wmi" TITLE="Tor Project: Onion Service Configuration Instructions" CHARSET="UTF-8" |
|
6 |
+<div id="content" class="clearfix"> |
|
7 |
+ <div id="breadcrumbs"> |
|
8 |
+ <a href="<page index>">Home » </a> |
|
9 |
+ <a href="<page docs/documentation>">Documentation » </a> |
|
10 |
+ <a href="<page docs/tor-onion-service>">Tor Onion Service</a> |
|
11 |
+ </div> |
|
12 |
+ <div id="maincol"> |
|
13 |
+ <h1>Configuring Onion Services for <a href="<page index>">Tor</a></h1> |
|
14 |
+ <hr> |
|
15 |
+ |
|
16 |
+ <p>Tor allows clients and relays to offer onion services. That is, |
|
17 |
+ you can offer a web server, SSH server, etc., without revealing your |
|
18 |
+ IP address to its users. In fact, because you don't use any public address, |
|
19 |
+ you can run an onion service from behind your firewall. |
|
20 |
+ </p> |
|
21 |
+ |
|
22 |
+ <p>If you have Tor installed, you can see onion services in action |
|
23 |
+ by visiting this <a href="http://duskgytldkxiuqc6.onion/">sample |
|
24 |
+ site</a>. |
|
25 |
+ </p> |
|
26 |
+ |
|
27 |
+ <p> |
|
28 |
+ This page describes the steps for setting up your own onion service |
|
29 |
+ website. For the technical details of how the onion service protocol |
|
30 |
+ works, see our <a href="<page docs/onion-services>">onion service |
|
31 |
+ protocol</a> page. |
|
32 |
+ </p> |
|
33 |
+ |
|
34 |
+ <hr> |
|
35 |
+ <a id="zero"></a> |
|
36 |
+ <h2><a class="anchor" href="#zero">Step Zero: Get Tor working</a></h2> |
|
37 |
+ <br> |
|
38 |
+ |
|
39 |
+ <p>Before you start, you need to make sure:</p> |
|
40 |
+ <ol> |
|
41 |
+ <li>Tor is up and running,</li> |
|
42 |
+ <li>You actually set it up correctly.</li> |
|
43 |
+ </ol> |
|
44 |
+ |
|
45 |
+ <p>Windows users should follow the <a |
|
46 |
+ href="<page docs/tor-doc-windows>">Windows |
|
47 |
+ howto</a>, OS X users should follow the <a |
|
48 |
+ href="<page docs/tor-doc-osx>">OS |
|
49 |
+ X howto</a>, and Linux/BSD/Unix users should follow the <a |
|
50 |
+ href="<page docs/tor-doc-unix>">Unix howto</a>. |
|
51 |
+ </p> |
|
52 |
+ |
|
53 |
+ <hr> |
|
54 |
+ <a id="one"></a> |
|
55 |
+ <h2><a class="anchor" href="#one">Step One: Install a web server locally</a></h2> |
|
56 |
+ <br> |
|
57 |
+ |
|
58 |
+ <p> |
|
59 |
+ First, you need to set up a web server locally. Setting up a web |
|
60 |
+ server can be complex. We're not going to cover how to set up a web |
|
61 |
+ server here. If you get stuck or want to do more, find a friend who |
|
62 |
+ can help you. We recommend you install a new separate web server for |
|
63 |
+ your onion service, since even if you already have one installed, |
|
64 |
+ you may be using it (or want to use it later) for a normal website. |
|
65 |
+ </p> |
|
66 |
+ |
|
67 |
+ <p> |
|
68 |
+ You need to configure your web server so it doesn't give away any |
|
69 |
+ information about you, your computer, or your location. Be sure to |
|
70 |
+ bind the web server only to localhost (if people could get to it |
|
71 |
+ directly, they could confirm that your computer is the one offering |
|
72 |
+ the onion service). Be sure that its error messages don't list |
|
73 |
+ your hostname or other hints. Consider putting the web server in a |
|
74 |
+ sandbox or VM to limit the damage from code vulnerabilities. |
|
75 |
+ </p> |
|
76 |
+ |
|
77 |
+ <p> |
|
78 |
+ Once your web server is set up, make |
|
79 |
+ sure it works: open your browser and go to <a |
|
80 |
+ href="http://localhost:8080/">http://localhost:8080/</a>, where |
|
81 |
+ 8080 is the webserver port you chose during setup (you can choose any |
|
82 |
+ port, 8080 is just an example). Then try putting a file in the main |
|
83 |
+ html directory, and make sure it shows up when you access the site. |
|
84 |
+ </p> |
|
85 |
+ |
|
86 |
+ <hr> |
|
87 |
+ <a id="two"></a> |
|
88 |
+ <h2><a class="anchor" href="#two">Step Two: Configure your onion service</a></h2> |
|
89 |
+ <br> |
|
90 |
+ |
|
91 |
+ <p>Next, you need to configure your onion service to point to your |
|
92 |
+ local web server. |
|
93 |
+ </p> |
|
94 |
+ |
|
95 |
+ <p>First, open your torrc file in your favorite text editor. (See |
|
96 |
+ <a href="<page docs/faq>#torrc">the torrc FAQ entry</a> to learn |
|
97 |
+ what this means.) Go to the middle section and look for the line</p> |
|
98 |
+ |
|
99 |
+ <pre> |
|
100 |
+ \############### This section is just for location-hidden services ### |
|
101 |
+ </pre> |
|
102 |
+ |
|
103 |
+ <p> |
|
104 |
+ This section of the file consists of groups of lines, each representing |
|
105 |
+ one onion service. Right now they are all commented out (the lines |
|
106 |
+ start with #), so onion services are disabled. Each group of lines |
|
107 |
+ consists of one <var>HiddenServiceDir</var> line, and one or more |
|
108 |
+ <var>HiddenServicePort</var> lines:</p> |
|
109 |
+ <ul> |
|
110 |
+ <li><var>HiddenServiceDir</var> is a directory where Tor will store |
|
111 |
+ information about that onion service. In particular, Tor will create a |
|
112 |
+ file here named <var>hostname</var> which will tell you the onion URL. You |
|
113 |
+ don't need to add any files to this directory. Make sure this is not the |
|
114 |
+ same directory as the hidserv directory you created when setting up thttpd, |
|
115 |
+ as your HiddenServiceDir contains secret information!</li> |
|
116 |
+ <li><var>HiddenServicePort</var> lets you specify a virtual port (that is, |
|
117 |
+ what port people accessing the onion service will think they're using) and |
|
118 |
+ an IP address and port for redirecting connections to this virtual |
|
119 |
+ port.</li> </ul> |
|
120 |
+ |
|
121 |
+ <p>Add the following lines to your torrc: |
|
122 |
+ </p> |
|
123 |
+ |
|
124 |
+ <pre> |
|
125 |
+ HiddenServiceDir /Library/Tor/var/lib/tor/hidden_service/ |
|
126 |
+ HiddenServicePort 80 127.0.0.1:8080 |
|
127 |
+ </pre> |
|
128 |
+ |
|
129 |
+ <p>You're going to want to change the <var>HiddenServiceDir</var> line, so |
|
130 |
+ it points to an actual directory that is readable/writeable by the user |
|
131 |
+ that will be running Tor. The above line should work if you're using the OS |
|
132 |
+ X Tor package. On Unix, try "/home/username/hidden_service/" and fill in |
|
133 |
+ your own username in place of "username". On Windows you might pick:</p> |
|
134 |
+ <pre> HiddenServiceDir C:\Users\username\Documents\tor\hidden_service |
|
135 |
+ HiddenServicePort 80 127.0.0.1:8080 </pre> |
|
136 |
+ |
|
137 |
+ <p>Note that since 0.2.6, both <var>SocksPort</var> and <var>HiddenServicePort</var> support Unix sockets. |
|
138 |
+ This means that you can point the <var>HiddenServicePort</var> to a Unix socket:</p> |
|
139 |
+ <pre> |
|
140 |
+ HiddenServiceDir /Library/Tor/var/lib/tor/hidden_service/ |
|
141 |
+ HiddenServicePort 80 unix:/path/to/socket |
|
142 |
+ </pre> |
|
143 |
+ |
|
144 |
+ <p>Now save the torrc and restart your tor.</p> |
|
145 |
+ |
|
146 |
+ <p>If Tor starts up again, great. Otherwise, something is wrong. First look |
|
147 |
+ at your logfiles for hints. It will print some warnings or error messages. |
|
148 |
+ That should give you an idea what went wrong. Typically there are typos in |
|
149 |
+ the torrc or wrong directory permissions (See <a href="<page |
|
150 |
+ docs/faq>#Logs">the logging FAQ entry</a> if you don't know how to enable |
|
151 |
+ or find your log file.) </p> |
|
152 |
+ |
|
153 |
+ <p>When Tor starts, it will automatically create the |
|
154 |
+ <var>HiddenServiceDir</var> that you specified (if necessary), and it will |
|
155 |
+ create two files there.</p> |
|
156 |
+ |
|
157 |
+ <dl> |
|
158 |
+ <dt><var>private_key</var></dt> |
|
159 |
+ <dd>First, Tor will generate a new public/private keypair for your onion |
|
160 |
+ service. It is written into a file called "private_key". Don't share this key |
|
161 |
+ with others -- if you do they will be able to impersonate your onion |
|
162 |
+ service.</dd> |
|
163 |
+ <dt><var>hostname</var></dt> |
|
164 |
+ <dd>The other file Tor will create is called "hostname". This contains |
|
165 |
+ a short summary of your public key -- it will look something like |
|
166 |
+ <tt>duskgytldkxiuqc6.onion</tt>. This is the public name for your service, |
|
167 |
+ and you can tell it to people, publish it on websites, put it on business |
|
168 |
+ cards, etc.</dd> |
|
169 |
+ </dl> |
|
170 |
+ |
|
171 |
+ <p>If Tor runs as a different user than you, for example on |
|
172 |
+ OS X, Debian, or Red Hat, then you may need to become root to be able |
|
173 |
+ to view these files.</p> |
|
174 |
+ |
|
175 |
+ <p>Now that you've restarted Tor, it is busy picking introduction points |
|
176 |
+ in the Tor network, and generating an <em>onion service |
|
177 |
+ descriptor</em>. This is a signed list of introduction points along with |
|
178 |
+ the service's full public key. It anonymously publishes this descriptor |
|
179 |
+ to the directory servers, and other people anonymously fetch it from the |
|
180 |
+ directory servers when they're trying to access your service. |
|
181 |
+ </p> |
|
182 |
+ |
|
183 |
+ <p>Try it now: paste the contents of the hostname file into your web |
|
184 |
+ browser. If it works, you'll get the html page you set up in step one. |
|
185 |
+ If it doesn't work, look in your logs for some hints, and keep playing |
|
186 |
+ with it until it works. |
|
187 |
+ </p> |
|
188 |
+ |
|
189 |
+ <hr> |
|
190 |
+ <a id="three"></a> |
|
191 |
+ <h2><a class="anchor" href="#three">Step Three: More advanced tips</a></h2> |
|
192 |
+ <br> |
|
193 |
+ |
|
194 |
+ <p>If you plan to keep your service available for a long time, you might |
|
195 |
+ want to make a backup copy of the <var>private_key</var> file somewhere. |
|
196 |
+ </p> |
|
197 |
+ |
|
198 |
+ <p>If you want to forward multiple virtual ports for a single onion |
|
199 |
+ service, just add more <var>HiddenServicePort</var> lines. |
|
200 |
+ If you want to run multiple onion services from the same Tor |
|
201 |
+ client, just add another <var>HiddenServiceDir</var> line. All the following |
|
202 |
+ <var>HiddenServicePort</var> lines refer to this <var>HiddenServiceDir</var> line, until |
|
203 |
+ you add another <var>HiddenServiceDir</var> line: |
|
204 |
+ </p> |
|
205 |
+ |
|
206 |
+ <pre> |
|
207 |
+ HiddenServiceDir /usr/local/etc/tor/hidden_service/ |
|
208 |
+ HiddenServicePort 80 127.0.0.1:8080 |
|
209 |
+ |
|
210 |
+ HiddenServiceDir /usr/local/etc/tor/other_hidden_service/ |
|
211 |
+ HiddenServicePort 6667 127.0.0.1:6667 |
|
212 |
+ HiddenServicePort 22 127.0.0.1:22 |
|
213 |
+ </pre> |
|
214 |
+ |
|
215 |
+ <p>Onion services operators need to practice proper operational security |
|
216 |
+ and system administration to maintain security. For some security |
|
217 |
+ suggestions please make sure you read over Riseup's <a |
|
218 |
+ href="https://help.riseup.net/en/security/network-security/tor/onionservices-best-practices">"Tor |
|
219 |
+ Hidden (Onion) Services Best Practices" document</a>. Also, here are some |
|
220 |
+ more anonymity issues you should keep in mind: |
|
221 |
+ |
|
222 |
+ </p> |
|
223 |
+ <ul> |
|
224 |
+ <li>As mentioned above, be careful of letting your web server reveal |
|
225 |
+ identifying information about you, your computer, or your location. |
|
226 |
+ For example, readers can probably determine whether it's thttpd or |
|
227 |
+ Apache, and learn something about your operating system.</li> |
|
228 |
+ <li>If your computer isn't online all the time, your onion service |
|
229 |
+ won't be either. This leaks information to an observant adversary.</li> |
|
230 |
+ <li>It is generally a better idea to host onion services on a Tor client |
|
231 |
+ rather than a Tor relay, since relay uptime and other properties are |
|
232 |
+ publicly visible.</li> |
|
233 |
+ <li>The longer an onion service is online, the higher the risk that its |
|
234 |
+ location is discovered. The most prominent attacks are building a |
|
235 |
+ profile of the onion service's availability and matching induced |
|
236 |
+ traffic patterns.</li> |
|
237 |
+ </ul> |
|
238 |
+ |
|
239 |
+ <p>Another common issue is whether to use HTTPS on your relay or |
|
240 |
+ not. Have a look at this <a |
|
241 |
+ href="https://blog.torproject.org/blog/facebook-hidden-services-and-https-certs">post</a> on the Tor Blog to learn more about these issues. |
|
242 |
+ </p> |
|
243 |
+ |
|
244 |
+ <p>Finally, feel free to use the <a |
|
245 |
+ href="https://lists.torproject.org/pipermail/tor-onions/">[tor-onions] |
|
246 |
+ mailing list</a> to discuss the secure administration and operation of |
|
247 |
+ Tor onion services.</p> |
|
248 |
+ |
|
249 |
+ </div> |
|
250 |
+ <!-- END MAINCOL --> |
|
251 |
+ <div id = "sidecol"> |
|
252 |
+#include "side.wmi" |
|
253 |
+#include "info.wmi" |
|
254 |
+ </div> |
|
255 |
+ <!-- END SIDECOL --> |
|
256 |
+</div> |
|
257 |
+<!-- END CONTENT --> |
|
258 |
+#include <foot.wmi> |