aboutsummaryrefslogtreecommitdiff
path: root/template
diff options
context:
space:
mode:
authorxrs <xrs@mail36.net>2019-07-01 20:33:36 +0200
committerxrs <xrs@mail36.net>2019-07-01 20:33:36 +0200
commit4413047bfa418e0ae2ea73f20798e3bfd7e0db3b (patch)
tree8660efb3bd30a01763defb3db84464f5a9923b7e /template
parentfe36bc275b6b47f54a188abff81c587101e3399f (diff)
downloadwww-4413047bfa418e0ae2ea73f20798e3bfd7e0db3b.tar.gz
www-4413047bfa418e0ae2ea73f20798e3bfd7e0db3b.zip
add menu to use.html; improve menu on gsoc.html; shorten long string
Diffstat (limited to 'template')
-rw-r--r--template/gsoc.html.j22
-rw-r--r--template/use.html.j2716
2 files changed, 367 insertions, 351 deletions
diff --git a/template/gsoc.html.j2 b/template/gsoc.html.j2
index 9b378f3b..ad8c8655 100644
--- a/template/gsoc.html.j2
+++ b/template/gsoc.html.j2
@@ -18,7 +18,7 @@
18 </div> 18 </div>
19 19
20 <div class="row"> 20 <div class="row">
21 <div class="col-2"> 21 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation -->
22 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed"> 22 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed">
23 <a class="nav-link" href="#current">{{ _("Current projects") }}</a> 23 <a class="nav-link" href="#current">{{ _("Current projects") }}</a>
24 <a class="nav-link" href="#past">{{ _("Past projects") }}</a> 24 <a class="nav-link" href="#past">{{ _("Past projects") }}</a>
diff --git a/template/use.html.j2 b/template/use.html.j2
index 3169ae71..472d0f8f 100644
--- a/template/use.html.j2
+++ b/template/use.html.j2
@@ -6,378 +6,394 @@
6 <h1>{{ _("How to use GNUnet - in a nutshell") }}</h1> 6 <h1>{{ _("How to use GNUnet - in a nutshell") }}</h1>
7 </header> 7 </header>
8 8
9 <section> 9 <div class="row">
10 <p> 10 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation -->
11 This document is just a brief intro on what can be done with GNUnet. Find much more in our <a ref="https://docs.gnunet.org/">handbook / reference manual</a>, e.g. in the section <a href="https://docs.gnunet.org/#toc-Using-GNUnet-1">"using GNUnet"</a>. 11 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed">
12 <a class="nav-link" href="#filesharing">{{ _("Filesharing") }}</a>
13 <a class="nav-link" href="#cadet">{{ _("CADET") }}</a>
14 <a class="nav-link" href="#groupchat">{{ _("Minimal Groupchat") }}</a>
15 <a class="nav-link" href="#gns_cli">{{ _("GNS with CLI") }}</a>
16 <a class="nav-link" href="#gns_browser">{{ _("GNS with Browser") }}</a>
17 <a class="nav-link" href="#vpn">{{ _("VPN") }}</a>
18 <a class="nav-link" href="#conversation">{{ _("Conversation") }}</a>
19 </nav>
20 </div>
12 21
13 The configuration in the handbook / reference manual is done with the UI interface gnunet-gtk. 22 <div class="col">
14 </p> 23 <section>
15 </section> 24 <p>
25 This document is just a brief intro on what can be done with GNUnet. Find much more in our <a ref="https://docs.gnunet.org/">handbook / reference manual</a>, e.g. in the section <a href="https://docs.gnunet.org/#toc-Using-GNUnet-1">"using GNUnet"</a>.
16 26
17 <section> 27 The configuration in the handbook / reference manual is done with the UI interface gnunet-gtk.
18 <h3>{{ _("Make sure your GNUnet installation works...") }}</h3> 28 </p>
19 <p>After installing and starting GNUnet you should make sure that your peer is connecting 29 </section>
20 to the P2P-network. By typing gnunet-core you should see something like this:
21 </p>
22 <p>
23 <code>
24 $ gnunet-core <br>
25 Tue Oct 30 19:58:48 2018: connection established DSTJ (timeout in 293 s)<br>
26 Tue Oct 30 19:58:48 2018: connection established A4MK (timeout in 292 s)<br>
27 Tue Oct 30 19:58:48 2018: connection established 7WRD (timeout in 299 s)<br>
28 Tue Oct 30 19:58:48 2018: connection established 5WBG (timeout in 299 s)<br>
29 </code>
30 </p>
31 </section>
32 <section>
33 <h4>{{ _("... and play around with it.") }}</h4>
34 <p>
35 So let's try out some of GNUnet's use cases. Please mind that some should be done in a particular order, one after another:
36 </p>
37 30
38 <ul> 31 <section>
39 <li>filesharing</li> 32 <h3>{{ _("Make sure your GNUnet installation works...") }}</h3>
40 <li>A simple chat using CADET</li> 33 <p>After installing and starting GNUnet you should make sure that your peer is connecting
41 <li>Another simple chat using a nim client</i> 34 to the P2P-network. By typing gnunet-core you should see something like this:
42 <li>Name resolution using GNS on the command line</li> 35 </p>
43 <li>Name resolution using GNS with a browser (do it on the command line first)</li> 36 <p>
44 <li>Serving a website using VPN (do name resolution with a browser first)</li> 37 <code>
45 </ul> 38 $ gnunet-core <br>
46 </section> 39 Tue Oct 30 19:58:48 2018: connection established DSTJ (timeout in 293 s)<br>
40 Tue Oct 30 19:58:48 2018: connection established A4MK (timeout in 292 s)<br>
41 Tue Oct 30 19:58:48 2018: connection established 7WRD (timeout in 299 s)<br>
42 Tue Oct 30 19:58:48 2018: connection established 5WBG (timeout in 299 s)<br>
43 </code>
44 </p>
45 </section>
46 <section>
47 <h3>{{ _("... and play around with it.") }}</h3>
48 <p>
49 So let's try out some of GNUnet's use cases. Please mind that some should be done in a particular order, one after another:
50 </p>
47 51
52 <ul>
53 <li>filesharing</li>
54 <li>A simple chat using CADET</li>
55 <li>Another simple chat using a nim client</i>
56 <li>Name resolution using GNS on the command line</li>
57 <li>Name resolution using GNS with a browser (do it on the command line first)</li>
58 <li>Serving a website using VPN (do name resolution with a browser first)</li>
59 </ul>
60 </section>
48 61
49 <section>
50 <h4><a name="fs"></a>{{ _("Filesharing") }}</h4>
51 62
52 <p> 63 <section>
53 Let's publish a file in the GNUnet filesharing network. We use the keywords 64 <h3><a name="filesharing"></a>{{ _("Filesharing") }}</h3>
54 ("commons" and "state") so other people will be able to search for the file.
55 </p>
56 65
57 <p> 66 <p>
58 We can choose any file and describe it with meaningful keywords (using the 67 Let's publish a file in the GNUnet filesharing network. We use the keywords
59 `-k` command line option). 68 ("commons" and "state") so other people will be able to search for the file.
60 </p> 69 </p>
61 <p>
62 <code>
63 $ gnunet-publish -k commons -k state ostrom.pdf<br>
64 Publishing `/home/myself/ostrom.pdf' done.<br>
65 URI is `gnunet://fs/chk/M57SXDJ72EWS25CT6307KKJ8K0GCNSPTAZ649NA1NS10MJB4A1GZ9EN4Y02KST9VA5BHE8B335RPXQVBWVZ587Y83WQ7J3DHMBX30Q8.DHNGBN4CB2DBX1QRZ1R0B1Q18WTEAK4R94S9D57C9JMJJ3H7SSQDCV4D1218C4S2VP085AMQQSMG18FCP6NQMZQZJ91XR5NBX7YF0V0.42197237'.
66 </code>
67 </p>
68 <p>
69 Finding the file by keyword works with `gnunet-search`.
70 </p>
71 <p>
72 <code>
73 $ gnunet-search commons<br>
74 #1:<br>
75 gnunet-download -o "ostrom.pdf" gnunet://fs/chk/M57SXDJ72EWS25CT6307KKJ8K0GCNSPTAZ649NA1NS10MJB4A1GZ9EN4Y02KST9VA5BHE8B335RPXQVBWVZ587Y83WQ7J3DHMBX30Q8.DHNGBN4CB2DBX1QRZ1R0B1Q18WTEAK4R94S9D57C9JMJJ3H7SSQDCV4D1218C4S2VP085AMQQSMG18FCP6NQMZQZJ91XR5NBX7YF0V0.42197237
76 </code>
77 </p>
78 <p>
79 It gives us the command line call to download the file (and store it as
80 ostrom.pdf)!
81 </p>
82 <p>
83 Please also refer to the chapter on <a href="=> https://docs.gnunet.org/#File_002dsharing
84 ">filesharing in the handbook</a>.
85 70
86 </section> 71 <p>
72 We can choose any file and describe it with meaningful keywords (using the
73 `-k` command line option).
74 </p>
75 <p>
76 <code>
77 $ gnunet-publish -k commons -k state ostrom.pdf<br>
78 Publishing `/home/myself/ostrom.pdf' done.<br>
79 URI is `gnunet://fs/chk/M57S...
80 </code>
81 </p>
82 <p>
83 Finding the file by keyword works with `gnunet-search`.
84 </p>
85 <p>
86 <code>
87 $ gnunet-search commons<br>
88 #1:<br>
89 gnunet-download -o "ostrom.pdf" gnunet://fs/chk/M57S...
90 </code>
91 </p>
92 <p>
93 It gives us the command line call to download the file (and store it as
94 ostrom.pdf)!
95 </p>
96 <p>
97 Please also refer to the chapter on <a href="=> https://docs.gnunet.org/#File_002dsharing
98 ">filesharing in the handbook</a>.
87 99
100 </section>
88 101
89 102
90 <section>
91 <h4>{{ _("CADET (and Chat)") }}</h4>
92 103
93 <p> 104 <section>
94 We can use the `gnunet-cadet` command line tool to open a port and from 105 <h3><a name="cadet"></a>{{ _("CADET (and Chat)") }}</h3>
95 another machine connect to this port and chat or transfer data. First we need
96 our *peer ID* of the GNUnet peer opening the port.
97 </p>
98 <p>
99 <code>
100 $ gnunet-peerinfo -s<br>
101 I am peer `P4T5GHS1PCZ06R82D3KW8Z8J1113BQZWAWGYHTZ8G1ZXMWXQGAVG'.
102 </code>
103 </p>
104 <p>
105 Now we open the port (it can be any string!):
106 </p>
107 <p>
108 <code>
109 $ gnunet-cadet -o my-secret-port
110 </code>
111 </p>
112 <p>On the other machine we can connect using the peer ID and the port and start chatting!</p>
113 <p>
114 <code>
115 $ gnunet-cadet P4T5GHS1PCZ06R82D3KW8Z8J1113BQZWAWGYHTZ8G1ZXMWXQGAVG my-secret-port
116 </code>
117 </p>
118 <p>
119 If you are interested into CADET in detail, please have a look in the <a href="https://docs.gnunet.org/#CADET-Subsystem">chapter "Cadet-Subsystem" in our handbook</a>.
120 </p>
121 106
122 </section> 107 <p>
108 We can use the `gnunet-cadet` command line tool to open a port and from
109 another machine connect to this port and chat or transfer data. First we need
110 our *peer ID* of the GNUnet peer opening the port.
111 </p>
112 <p>
113 <code>
114 $ gnunet-peerinfo -s<br>
115 I am peer `P4T5GHS1PCZ06R82D3KW8Z8J1113BQZWAWGYHTZ8G1ZXMWXQGAVG'.
116 </code>
117 </p>
118 <p>
119 Now we open the port (it can be any string!):
120 </p>
121 <p>
122 <code>
123 $ gnunet-cadet -o my-secret-port
124 </code>
125 </p>
126 <p>On the other machine we can connect using the peer ID and the port and start chatting!</p>
127 <p>
128 <code>
129 $ gnunet-cadet P4T5GHS1PCZ06R82D3KW8Z8J1113BQZWAWGYHTZ8G1ZXMWXQGAVG my-secret-port
130 </code>
131 </p>
132 <p>
133 If you are interested into CADET in detail, please have a look in the <a href="https://docs.gnunet.org/#CADET-Subsystem">chapter "Cadet-Subsystem" in our handbook</a>.
134 </p>
123 135
124 <section> 136 </section>
125 <h4>{{ _("Chatting with a (simple) client") }}</h4>
126 <p>
127 To chat a tiny bit prettier, we need to install and compile additional software.
128 If you join the chat mentioned below and no one is there, feel free to ping on
129 IRC/freenode #gnunet and ask if someone can join to test with you! (But we are
130 trying to be there as often as possible).
131 </p>
132 <p>
133 <code>
134 $ git clone https://gnunet.org/git/gnunet-nim.git<br>
135 $ cd gnunet-nim/examples<br>
136 $ nim c groupchat.nim<br>
137 </code>
138 <p>
139 <p>
140 Fine! We can now try to enter a chat server running on another GNUnet node.
141 </p>
142 <p>
143 <code>
144 $LD_LIBRARY_PATH=/path/to/gnunetlibs ./groupchat --config=/path/to/gnunet.conf --server=88RXABKJNMT426FY81N2DXN0M2X37SW5Q1NR005YPDZ1Q7A22CHG --port=t3ss --nick=YOURNICK
145 </code>
146 </p>
147 <p>
148 The peer and port in this example should work in real, because that peer is almost online and running groupchat on that port.
149 <p>
150 You should now see something like this:
151 </p>
152 <p>
153 <code>
154 > 2018-10-30 19:50:10 Welcome 8Q2T! participants: @[]<br>
155 Hello GNUnet!<br>
156 2018-10-30 19:52:53 [8Q2T] Hello GNUnet!<br>
157 </code>
158 <p>
159 <p>
160 Here we have typed "Hello gnunet!" to standard in which is then written out to standard out after having been sent back from GNUnet.
161 </p>
162 </section>
163 137
138 <section>
139 <h3><a name="groupchat"></a>{{ _("Chatting with a (simple) client") }}</h3>
140 <p>
141 To chat a tiny bit prettier, we need to install and compile additional software.
142 If you join the chat mentioned below and no one is there, feel free to ping on
143 IRC/freenode #gnunet and ask if someone can join to test with you! (But we are
144 trying to be there as often as possible).
145 </p>
146 <p>
147 <code>
148 $ git clone https://gnunet.org/git/gnunet-nim.git<br>
149 $ cd gnunet-nim/examples<br>
150 $ nim c groupchat.nim<br>
151 </code>
152 <p>
153 <p>
154 Fine! We can now try to enter a chat server running on another GNUnet node.
155 </p>
156 <p>
157 <code>
158 $LD_LIBRARY_PATH=/path/to/gnunetlibs ./groupchat --config=/path/to/gnunet.conf --server=88RXABKJNMT426FY81N2DXN0M2X37SW5Q1NR005YPDZ1Q7A22CHG --port=t3ss --nick=YOURNICK
159 </code>
160 </p>
161 <p>
162 The peer and port in this example should work in real, because that peer is almost online and running groupchat on that port.
163 <p>
164 You should now see something like this:
165 </p>
166 <p>
167 <code>
168 > 2018-10-30 19:50:10 Welcome 8Q2T! participants: @[]<br>
169 Hello GNUnet!<br>
170 2018-10-30 19:52:53 [8Q2T] Hello GNUnet!<br>
171 </code>
172 <p>
173 <p>
174 Here we have typed "Hello gnunet!" to standard in which is then written out to standard out after having been sent back from GNUnet.
175 </p>
176 </section>
164 177
165 178
166 <section>
167 <h4><a name="gns"></a>{{ _("Name resolution using GNS on the command line") }}</h4>
168 179
169 <p>GNS is the GNU name service, a fully decentralized alternatice to DNS. We'll publish an IP address in a GNS record try to resolve it on the command line. First we need an identity which is the 180 <section>
170 equivalent to a zone in DNS. We'll call it "myself" and create it using the 181 <h3><a name="gns_cli"></a>{{ _("Name resolution using GNS on the command line") }}</h3>
171 `gnunet-identity` command line tool. Instead of "myself" you can surely use your
172 nick or any other name. </p>
173 <p>
174 <code>
175 $ gnunet-identity -C myself
176 </code>
177 </p>
178 <p>We can check if it worked using the same tool. We expect the name of our identity and the corresponding public key to be displayed.</p>
179 <p>
180 <code>
181 $ gnunet-identity -d<br>
182 myself - HWTYD3P5D77JVFNVMZ1M5T10V4SZYNMY3PCGQCSVENKD6ZCRKPMG
183 </code>
184 </p>
185 <p>
186 Now we add a public `A` record to our zone. It has the name "ccc", a value
187 of "195.54.164.39" and it expires after one day.
188 </p>
189 <p>
190 <code>
191 $ gnunet-namestore -z myself -a -e "1 d" -p -t A -n ccc -V 195.54.164.39
192 </code>
193 </p>
194 <p>Now we can query that record using the command line tool `gnunet-gns`.</p>
195 <p>
196 <code>
197 $ gnunet-gns -t A -u ccc.myself<br>
198 ccc.myself:<br>
199 Got `A' record: 195.54.164.39
200 </code>
201 </p>
202 <p>
203 So it worked! But only resolving our own records is boring. So we
204 can give our identity (the public key of it to be precise) to
205 someone else so they can try to resolve our records, too. The
206 other person (Bob) has to add it to his namestore like this:
207 </p>
208 <p>
209 <code>
210 $ gnunet-namestore -z myself -a -e never -p -t PKEY -n alice -V HWTYD3P5D77JVFNVMZ1M5T10V4SZYNMY3PCGQCSVENKD6ZCRKPMG
211 </code>
212 </p>
213 <p>
214 Our identity in Bobs namestore is a public record (-p) and never
215 expires (-e never). Now Bob (let's assume he has called his
216 identity myself, too) should be able to resolve our "ccc" record,
217 too!
218 </p>
219 <p>
220 <code>
221 $ gnunet-gns -t A -u ccc.alice.myself<br>
222 ccc.alice.myself:<br>
223 Got `A' record: 195.54.164.39
224 </code>
225 </p>
226 <p>
227 It can continue like this. A friend of Bob would be able to
228 resolve our records too because Bob published our identity in a
229 public record. Bobs friend would simply use "ccc.alice.bob.myself"
230 to resolve our "ccc" record.
231 </p>
232 <p>
233 See the <a href="https://docs.gnunet.org/#First-steps-_002d-Using-the-GNU-Name-System">chapter "Using the GNU Name System" in our handbook</a> for a more detailed documentation.
234 </p>
235 </section>
236 182
183 <p>GNS is the GNU name service, a fully decentralized alternatice to DNS. We'll publish an IP address in a GNS record try to resolve it on the command line. First we need an identity which is the
184 equivalent to a zone in DNS. We'll call it "myself" and create it using the
185 `gnunet-identity` command line tool. Instead of "myself" you can surely use your
186 nick or any other name. </p>
187 <p>
188 <code>
189 $ gnunet-identity -C myself
190 </code>
191 </p>
192 <p>We can check if it worked using the same tool. We expect the name of our identity and the corresponding public key to be displayed.</p>
193 <p>
194 <code>
195 $ gnunet-identity -d<br>
196 myself - HWTYD3P5D77JVFNVMZ1M5T10V4SZYNMY3PCGQCSVENKD6ZCRKPMG
197 </code>
198 </p>
199 <p>
200 Now we add a public `A` record to our zone. It has the name "ccc", a value
201 of "195.54.164.39" and it expires after one day.
202 </p>
203 <p>
204 <code>
205 $ gnunet-namestore -z myself -a -e "1 d" -p -t A -n ccc -V 195.54.164.39
206 </code>
207 </p>
208 <p>Now we can query that record using the command line tool `gnunet-gns`.</p>
209 <p>
210 <code>
211 $ gnunet-gns -t A -u ccc.myself<br>
212 ccc.myself:<br>
213 Got `A' record: 195.54.164.39
214 </code>
215 </p>
216 <p>
217 So it worked! But only resolving our own records is boring. So we
218 can give our identity (the public key of it to be precise) to
219 someone else so they can try to resolve our records, too. The
220 other person (Bob) has to add it to his namestore like this:
221 </p>
222 <p>
223 <code>
224 $ gnunet-namestore -z myself -a -e never -p -t PKEY -n alice -V HWTYD3P5D77JVFNVMZ1M5T10V4SZYNMY3PCGQCSVENKD6ZCRKPMG
225 </code>
226 </p>
227 <p>
228 Our identity in Bobs namestore is a public record (-p) and never
229 expires (-e never). Now Bob (let's assume he has called his
230 identity myself, too) should be able to resolve our "ccc" record,
231 too!
232 </p>
233 <p>
234 <code>
235 $ gnunet-gns -t A -u ccc.alice.myself<br>
236 ccc.alice.myself:<br>
237 Got `A' record: 195.54.164.39
238 </code>
239 </p>
240 <p>
241 It can continue like this. A friend of Bob would be able to
242 resolve our records too because Bob published our identity in a
243 public record. Bobs friend would simply use "ccc.alice.bob.myself"
244 to resolve our "ccc" record.
245 </p>
246 <p>
247 See the <a href="https://docs.gnunet.org/#First-steps-_002d-Using-the-GNU-Name-System">chapter "Using the GNU Name System" in our handbook</a> for a more detailed documentation.
248 </p>
249 </section>
237 250
238 <section id='gns_proxy'>
239 <h4>{{ _("Name resolution using GNS with a browser") }}</h4>
240 251
241 <p> 252 <section id='gns_proxy'>
242 In the previous use case "Name resolution using GNS on the command line" we got an idea 253 <h3><a name="gns_browser"></a>{{ _("Name resolution using GNS with a browser") }}</h3>
243 about what GNS is about, but now let's use it with a browser, to make it actually useful. Currently Firefox and Chromium are known to work.
244 </p>
245 254
246 <p> 255 <p>
247 Many websites enforce HTTPS and thus provide certificates for 256 In the previous use case "Name resolution using GNS on the command line" we got an idea
248 their hostnames (and not our GNS names). Browsers don't like wrong 257 about what GNS is about, but now let's use it with a browser, to make it actually useful. Currently Firefox and Chromium are known to work.
249 hostnames in certificates and will present error messages. So GNUnet 258 </p>
250 has to trick them by generating own certificates for our GNS
251 names. This means we need to create our own certificate authority
252 and tell our browser about it. Luckily there's a script for it:
253 </p>
254 <p>
255 <code>
256 $ gnunet-gns-proxy-setup-ca
257 </code>
258 </p>
259 <p>After executing this script the Browser has to be restarted.</p>
260 259
261 <p> 260 <p>
262 GNUnet provides a proxy service (gnunet-gns-proxy) that the 261 Many websites enforce HTTPS and thus provide certificates for
263 browser can send DNS and HTTP traffic to. It will try to resolve 262 their hostnames (and not our GNS names). Browsers don't like wrong
264 names with GNS first and forward the rest of the DNS traffic to 263 hostnames in certificates and will present error messages. So GNUnet
265 the system's DNS resolver. It will also take care of the HTTP 264 has to trick them by generating own certificates for our GNS
266 traffic, so the browser gets valid certificates and the web server 265 names. This means we need to create our own certificate authority
267 will not be confused by our GNS hostnames. Our GNS namestore 266 and tell our browser about it. Luckily there's a script for it:
268 doesn't know about any DNS hostnames yet, so we have to store 267 </p>
269 them, too. For our "ccc" A record, we have to store a LEHO (legacy 268 <p>
270 hostname) record, too. It must contain the website's original DNS 269 <code>
271 hostname: 270 $ gnunet-gns-proxy-setup-ca
272 </p> 271 </code>
273 <p> 272 </p>
274 <code> 273 <p>After executing this script the Browser has to be restarted.</p>
275 $ gnunet-namestore -z myself -a -e "1 d" -p -t LEHO -n ccc -V www.ccc.de 274
276 </code> 275 <p>
277 </p> 276 GNUnet provides a proxy service (gnunet-gns-proxy) that the
278 <p>Now let's start gnunet-gns-proxy.</p> 277 browser can send DNS and HTTP traffic to. It will try to resolve
279 <p> 278 names with GNS first and forward the rest of the DNS traffic to
280 <code> 279 the system's DNS resolver. It will also take care of the HTTP
281 $ /usr/lib/gnunet/libexec/gnunet-gns-proxy 280 traffic, so the browser gets valid certificates and the web server
282 </code> 281 will not be confused by our GNS hostnames. Our GNS namestore
283 </p> 282 doesn't know about any DNS hostnames yet, so we have to store
284 <p> 283 them, too. For our "ccc" A record, we have to store a LEHO (legacy
285 Our browser has to be configured so it uses our proxy. In Firefox 284 hostname) record, too. It must contain the website's original DNS
286 we have to set these options under "about:config": 285 hostname:
287 </p> 286 </p>
288 <p> 287 <p>
289 <code> 288 <code>
290 network.proxy.socks: localhost<br> 289 $ gnunet-namestore -z myself -a -e "1 d" -p -t LEHO -n ccc -V www.ccc.de
291 network.proxy.socks_port: 7777<br> 290 </code>
292 network.proxy.socks_remote_dns true<br> 291 </p>
293 network.proxy.type: 1 292 <p>Now let's start gnunet-gns-proxy.</p>
294 </code> 293 <p>
295 </p> 294 <code>
296 <p> 295 $ /usr/lib/gnunet/libexec/gnunet-gns-proxy
297 To tell Chromium to use the proxy, it has to be started with the 296 </code>
298 "--proxy-server" command line option: 297 </p>
299 </p> 298 <p>
300 <p> 299 Our browser has to be configured so it uses our proxy. In Firefox
301 <code> 300 we have to set these options under "about:config":
302 $ chromium --proxy-server="socks5://127.0.0.1:7777" 301 </p>
303 </code> 302 <p>
304 </p> 303 <code>
305 <p> 304 network.proxy.socks: localhost<br>
306 Now we should be able to resolve our GNS names in the browser! We 305 network.proxy.socks_port: 7777<br>
307 just have to type "https://ccc.myself" into the address bar. If 306 network.proxy.socks_remote_dns true<br>
308 our friend Bob prepared his system, too, he can resolve our record 307 network.proxy.type: 1
309 by typing "ccc.alice.myself". 308 </code>
310 </p> 309 </p>
311 <p> 310 <p>
312 See the <a href="https://docs.gnunet.org/#Integration-with-Browsers">chapter on Integration with Browsers in our handbook</a> for a more detailed description. 311 To tell Chromium to use the proxy, it has to be started with the
313 </p> 312 "--proxy-server" command line option:
314 </section> 313 </p>
315 <section> 314 <p>
316 <h4>{{ _("VPN") }}</h4> 315 <code>
317 <p> 316 $ chromium --proxy-server="socks5://127.0.0.1:7777"
318 VPN can be used to share your Internet connection (yes, this may be dangerous, just as running a Tor exit node) or to provide access to services on your host (this should be less dangerous, as long as those services are secure). 317 </code>
319 </p> 318 </p>
320 <p> 319 <p>
321 In this tutorial we concentrate on providing access to services on your host. 320 Now we should be able to resolve our GNS names in the browser! We
322 </p> 321 just have to type "https://ccc.myself" into the address bar. If
323 <p> 322 our friend Bob prepared his system, too, he can resolve our record
324 For documentation to share your Internet connection have a look into <a href="https://docs.gnunet.org/#Configuring-the-GNUnet-VPN">chapter "Configuring the GNUnet VPN" in the handbook.</a> 323 by typing "ccc.alice.myself".
325 </p> 324 </p>
326 <p> 325 <p>
327 First you have to edit your gnunet.conf and add this section. 326 See the <a href="https://docs.gnunet.org/#Integration-with-Browsers">chapter on Integration with Browsers in our handbook</a> for a more detailed description.
328 </p> 327 </p>
329 <p> 328 </section>
330 <code> 329 <section>
331 [exit]</br> 330 <h3><a name="vpn"></a>{{ _("VPN") }}</h3>
332 START_ON_DEMAND = YES 331 <p>
333 </code> 332 VPN can be used to share your Internet connection (yes, this may be dangerous, just as running a Tor exit node) or to provide access to services on your host (this should be less dangerous, as long as those services are secure).
334 </p> 333 </p>
335 <p> 334 <p>
336 This is necessary to start the exit daemon. 335 In this tutorial we concentrate on providing access to services on your host.
337 </p> 336 </p>
338 <p> 337 <p>
339 Furthermore you need to add a section for your service. 338 For documentation to share your Internet connection have a look into <a href="https://docs.gnunet.org/#Configuring-the-GNUnet-VPN">chapter "Configuring the GNUnet VPN" in the handbook.</a>
340 </p> 339 </p>
341 <p> 340 <p>
342 <code> 341 First you have to edit your gnunet.conf and add this section.
343 [http.gnunet.]</br> 342 </p>
344 TCP_REDIRECTS = 80:169.254.86.1:80 343 <p>
345 </code> 344 <code>
346 </p> 345 [exit]</br>
347 <p> 346 START_ON_DEMAND = YES
348 Here a service named 'http' is configured to be accessed on a remote and local host on port 80. The IP address is the default IP address for the exit interface. If you like to change to another private IP address range you can use can change 347 </code>
349 </p> 348 </p>
350 <p> 349 <p>
351 <code> 350 This is necessary to start the exit daemon.
352 IPV4ADDR = 169.254.86.1 351 </p>
353 </code> 352 <p>
354 </p> 353 Furthermore you need to add a section for your service.
355 <p> 354 </p>
356 in section 'exit'. 355 <p>
357 </p> 356 <code>
358 <p> 357 [http.gnunet.]</br>
359 Now we have to add a GNS record to the namestore. 358 TCP_REDIRECTS = 80:169.254.86.1:80
360 </p> 359 </code>
361 <p> 360 </p>
362 <code> 361 <p>
363 gnunet-namestore -z myself -a -e "1 d" -p -t VPN -n www -V "1 PKEY http" 362 Here a service named 'http' is configured to be accessed on a remote and local host on port 80. The IP address is the default IP address for the exit interface. If you like to change to another private IP address range you can use can change
364 </code> 363 </p>
365 </p> 364 <p>
366 <p> 365 <code>
367 Where myself is the name of the zone we already used <a href='#gns_proxy'>above</a>, but now we are adding a record of type VPN, and the value is a string containing three values. A boolean indicating the use of TCP or UDP (TCP in the example above), the public key of your node and the identifier of the service we used <a href='#'>above</a> ([http.gnunet.]. 366 IPV4ADDR = 169.254.86.1
368 </p> 367 </code>
369 <p> 368 </p>
370 After we added this record we should be able to access www.myself like we did ccc.myself via the browser <a href='#gns_proxy'>above</a>. 369 <p>
371 </p> 370 in section 'exit'.
372 <p> 371 </p>
373 The UI version of this Tutorial can be find in Chapter <a href='https://docs.gnunet.org/#First-steps-_002d-Using-the-GNUnet-VPN'>Using the GNUnet VPN</a> in the handbook. 372 <p>
374 </p> 373 Now we have to add a GNS record to the namestore.
375 </section> 374 </p>
376 <section> 375 <p>
377 <h4>{{ _("Conversation") }}</h4> 376 <code>
378 <p> 377 gnunet-namestore -z myself -a -e "1 d" -p -t VPN -n www -V "1 PKEY http"
379 TBD, see <a href="https://docs.gnunet.org/#First-steps-_002d-Using-GNUnet-Conversation">chapter "Using GNUnet Conversation" in the handbook.</a> 378 </code>
380 </p> 379 </p>
381 </section> 380 <p>
381 Where myself is the name of the zone we already used <a href='#gns_proxy'>above</a>, but now we are adding a record of type VPN, and the value is a string containing three values. A boolean indicating the use of TCP or UDP (TCP in the example above), the public key of your node and the identifier of the service we used <a href='#'>above</a> ([http.gnunet.].
382 </p>
383 <p>
384 After we added this record we should be able to access www.myself like we did ccc.myself via the browser <a href='#gns_proxy'>above</a>.
385 </p>
386 <p>
387 The UI version of this Tutorial can be find in Chapter <a href='https://docs.gnunet.org/#First-steps-_002d-Using-the-GNUnet-VPN'>Using the GNUnet VPN</a> in the handbook.
388 </p>
389 </section>
390 <section>
391 <h3><a name="conversation"></a>{{ _("Conversation") }}</h3>
392 <p>
393 TBD, see <a href="https://docs.gnunet.org/#First-steps-_002d-Using-GNUnet-Conversation">chapter "Using GNUnet Conversation" in the handbook.</a>
394 </p>
395 </section>
396 </div>
397 </div>
382</article> 398</article>
383{% endblock body_content %} 399{% endblock body_content %}