Drop asciidoc and related packages from build-depends and ship manpages statically...
[anytun.git] / debian / anytun.8
1 '\" t
2 .\"     Title: anytun
3 .\"    Author: [see the "AUTHORS" section]
4 .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
5 .\"      Date: 12/14/2009
6 .\"    Manual: anytun user manual
7 .\"    Source: anytun 0.3.2
8 .\"  Language: English
9 .\"
10 .TH "ANYTUN" "8" "12/14/2009" "anytun 0.3.2" "anytun user manual"
11 .\" -----------------------------------------------------------------
12 .\" * set default formatting
13 .\" -----------------------------------------------------------------
14 .\" disable hyphenation
15 .nh
16 .\" disable justification (adjust text to left margin only)
17 .ad l
18 .\" -----------------------------------------------------------------
19 .\" * MAIN CONTENT STARTS HERE *
20 .\" -----------------------------------------------------------------
21 .SH "NAME"
22 anytun \- anycast tunneling daemon
23 .SH "SYNOPSIS"
24 .sp
25 .nf
26 \fBanytun\fR
27   [ \fB\-h|\-\-help\fR ]
28   [ \fB\-D|\-\-nodaemonize\fR ]
29   [ \fB\-u|\-\-username\fR <username> ]
30   [ \fB\-g|\-\-groupname\fR <groupname> ]
31   [ \fB\-C|\-\-chroot\fR <path> ]
32   [ \fB\-P|\-\-write\-pid\fR <filename> ]
33   [ \fB\-L|\-\-log\fR <target>:<level>[,<param1>[,<param2>[\&.\&.]]] ]
34   [ \fB\-i|\-\-interface\fR <ip\-address> ]
35   [ \fB\-p|\-\-port\fR <port> ]
36   [ \fB\-r|\-\-remote\-host\fR <hostname|ip> ]
37   [ \fB\-o|\-\-remote\-port\fR <port> ]
38   [ \fB\-4|\-\-ipv4\-only\fR ]
39   [ \fB\-6|\-\-ipv6\-only\fR ]
40   [ \fB\-I|\-\-sync\-interface\fR <ip\-address> ]
41   [ \fB\-S|\-\-sync\-port\fR port> ]
42   [ \fB\-M|\-\-sync\-hosts\fR <hostname|ip>[:<port>][,<hostname|ip>[:<port>][\&.\&.\&.]] ]
43   [ \fB\-X|\-\-control\-host\fR <hostname|ip>[:<port>]
44   [ \fB\-d|\-\-dev\fR <name> ]
45   [ \fB\-t|\-\-type\fR <tun|tap> ]
46   [ \fB\-n|\-\-ifconfig\fR <local>/<prefix> ]
47   [ \fB\-x|\-\-post\-up\-script\fR <script> ]
48   [ \fB\-R|\-\-route\fR <net>/<prefix length> ]
49   [ \fB\-m|\-\-mux\fR <mux\-id> ]
50   [ \fB\-s|\-\-sender\-id\fR <sender id> ]
51   [ \fB\-w|\-\-window\-size\fR <window size> ]
52   [ \fB\-k|\-\-kd\-prf\fR <kd\-prf type> ]
53   [ \fB\-e|\-\-role\fR <role> ]
54   [ \fB\-E|\-\-passphrase\fR <pass phrase> ]
55   [ \fB\-K|\-\-key\fR <master key> ]
56   [ \fB\-A|\-\-salt\fR <master salt> ]
57   [ \fB\-c|\-\-cipher\fR <cipher type> ]
58   [ \fB\-a|\-\-auth\-algo\fR <algo type> ]
59   [ \fB\-b|\-\-auth\-tag\-length\fR <length> ]
60 .fi
61 .SH "DESCRIPTION"
62 .sp
63 \fBAnytun\fR is an implementation of the Secure Anycast Tunneling Protocol (SATP)\&. It provides a complete VPN solution similar to OpenVPN or IPsec in tunnel mode\&. The main difference is that anycast allows a setup of tunnels between an arbitrary combination of anycast, unicast and multicast hosts\&.
64 .SH "OPTIONS"
65 .sp
66 \fBAnytun\fR has been designed as a peer to peer application, so there is no difference between client and server\&. The following options can be passed to the daemon:
67 .PP
68 \fB\-D, \-\-nodaemonize\fR
69 .RS 4
70 This option instructs
71 \fBAnytun\fR
72 to run in foreground instead of becoming a daemon which is the default\&.
73 .RE
74 .PP
75 \fB\-u, \-\-username <username>\fR
76 .RS 4
77 run as this user\&. If no group is specified (\fB\-g\fR) the default group of the user is used\&. The default is to not drop privileges\&.
78 .RE
79 .PP
80 \fB\-g, \-\-groupname <groupname>\fR
81 .RS 4
82 run as this group\&. If no username is specified (\fB\-u\fR) this gets ignored\&. The default is to not drop privileges\&.
83 .RE
84 .PP
85 \fB\-C, \-\-chroot <path>\fR
86 .RS 4
87 Instruct
88 \fBAnytun\fR
89 to run in a chroot jail\&. The default is to not run in chroot\&.
90 .RE
91 .PP
92 \fB\-P, \-\-write\-pid <filename>\fR
93 .RS 4
94 Instruct
95 \fBAnytun\fR
96 to write it\(cqs pid to this file\&. The default is to not create a pid file\&.
97 .RE
98 .PP
99 \fB\-L, \-\-log <target>:<level>[,<param1>[,<param2>[\&.\&.]]]\fR
100 .RS 4
101 add log target to logging system\&. This can be invoked several times in order to log to different targets at the same time\&. Every target hast its own log level which is a number between 0 and 5\&. Where 0 means disabling log and 5 means debug messages are enabled\&.
102
103 The file target can be used more the once with different levels\&. If no target is provided at the command line a single target with the config
104 \fBsyslog:3,anytun,daemon\fR
105 is added\&.
106
107 The following targets are supported:
108 .PP
109 \fBsyslog\fR
110 .RS 4
111 log to syslog daemon, parameters <level>[,<logname>[,<facility>]]
112 .RE
113 .PP
114 \fBfile\fR
115 .RS 4
116 log to file, parameters <level>[,<path>]
117 .RE
118 .PP
119 \fBstdout\fR
120 .RS 4
121 log to standard output, parameters <level>
122 .RE
123 .PP
124 \fBstderr\fR
125 .RS 4
126 log to standard error, parameters <level>
127 .RE
128 .RE
129 .PP
130 \fB\-i, \-\-interface <ip address>\fR
131 .RS 4
132 This IP address is used as the sender address for outgoing packets\&. In case of anycast tunnel endpoints, the anycast IP has to be used\&. In case of unicast endpoints, the address is usually derived correctly from the routing table\&. The default is to not use a special inteface and just bind on all interfaces\&.
133 .RE
134 .PP
135 \fB\-p, \-\-port <port>\fR
136 .RS 4
137 The local UDP port that is used to send and receive the payload data\&. The two tunnel endpoints can use different ports\&. If a tunnel endpoint consists of multiple anycast hosts, all hosts have to use the same port\&. default: 4444
138 .RE
139 .PP
140 \fB\-r, \-\-remote\-host <hostname|ip>\fR
141 .RS 4
142 This option can be used to specify the remote tunnel endpoint\&. In case of anycast tunnel endpoints, the anycast IP address has to be used\&. If you do not specify an address, it is automatically determined after receiving the first data packet\&.
143 .RE
144 .PP
145 \fB\-o, \-\-remote\-port <port>\fR
146 .RS 4
147 The UDP port used for payload data by the remote host (specified with \-p on the remote host)\&. If you do not specify a port, it is automatically determined after receiving the first data packet\&.
148 .RE
149 .PP
150 \fB\-4, \-\-ipv4\-only\fR
151 .RS 4
152 Resolv to IPv4 addresses only\&. The default is to resolv both IPv4 and IPv6 addresses\&.
153 .RE
154 .PP
155 \fB\-6, \-\-ipv6\-only\fR
156 .RS 4
157 Resolv to IPv6 addresses only\&. The default is to resolv both IPv4 and IPv6 addresses\&.
158 .RE
159 .PP
160 \fB\-I, \-\-sync\-interface <ip\-address>\fR
161 .RS 4
162 local unicast(sync) ip address to bind to
163
164 This option is only needed for tunnel endpoints consisting of multiple anycast hosts\&. The unicast IP address of the anycast host can be used here\&. This is needed for communication with the other anycast hosts\&. The default is to not use a special inteface and just bind on all interfaces\&. However this is only the case if synchronisation is active see
165 \fB\-\-sync\-port\fR\&.
166 .RE
167 .PP
168 \fB\-S, \-\-sync\-port <port>\fR
169 .RS 4
170 local unicast(sync) port to bind to
171
172 This option is only needed for tunnel endpoints consisting of multiple anycast hosts\&. This port is used by anycast hosts to synchronize information about tunnel endpoints\&. No payload data is transmitted via this port\&. By default the synchronisation is disabled an therefore the port is kept empty\&.
173
174 It is possible to obtain a list of active connections by telnetting into this port\&. This port is read\-only and unprotected by default\&. It is advised to protect this port using firewall rules and, eventually, IPsec\&.
175 .RE
176 .PP
177 \fB\-M, \-\-sync\-hosts <hostname|ip>[:<port>],[<hostname|ip>[:<port>][\&...]]\fR
178 .RS 4
179 remote hosts to sync with
180
181 This option is only needed for tunnel endpoints consisting of multiple anycast hosts\&. Here, one has to specify all unicast IP addresses of all other anycast hosts that comprise the anycast tunnel endpoint\&. By default synchronisation is disabled and therefore this is empty\&. Mind that the port can be omitted in which case port 2323 is used\&. If you want to specify an ipv6 address and a port you have to use [ and ] to seperate the address from the port, eg\&.: [::1]:1234\&. If you want to use the default port [ and ] can be omitted\&.
182 .RE
183 .PP
184 \fB\-X, \-\-control\-host <hostname|ip>[:<port>]\fR
185 .RS 4
186 fetch the config from this host\&. The default is not to use a control host and therefore this is empty\&. Mind that the port can be omitted in which case port 2323 is used\&. If you want to specify an ipv6 address and a port you have to use [ and ] to seperate the address from the port, eg\&.: [::1]:1234\&. If you want to use the default port [ and ] can be omitted\&.
187 .RE
188 .PP
189 \fB\-d, \-\-dev <name>\fR
190 .RS 4
191 device name
192
193 By default, tapN is used for Ethernet tunnel interfaces, and tunN for IP tunnels, respectively\&. This option can be used to manually override these defaults\&.
194 .RE
195 .PP
196 \fB\-t, \-\-type <tun|tap>\fR
197 .RS 4
198 device type
199
200 Type of the tunnels to create\&. Use tap for Ethernet tunnels, tun for IP tunnels\&.
201 .RE
202 .PP
203 \fB\-n, \-\-ifconfig <local>/<prefix>\fR
204 .RS 4
205 The local IP address and prefix length\&. The remote tunnel endpoint has to use a different IP address in the same subnet\&.
206 .PP
207 \fB<local>\fR
208 .RS 4
209 the local IP address for the tun/tap device
210 .RE
211 .PP
212 \fB<prefix>\fR
213 .RS 4
214 the prefix length of the network
215 .RE
216 .RE
217 .PP
218 \fB\-x, \-\-post\-up\-script <script>\fR
219 .RS 4
220 This option instructs
221 \fBAnytun\fR
222 to run this script after the interface is created\&. By default no script will be executed\&.
223 .RE
224 .PP
225 \fB\-R, \-\-route <net>/<prefix length>\fR
226 .RS 4
227 add a route to connection\&. This can be invoked several times\&.
228 .RE
229 .PP
230 \fB\-m, \-\-mux <mux\-id>\fR
231 .RS 4
232 the multiplex id to use\&. default: 0
233 .RE
234 .PP
235 \fB\-s, \-\-sender\-id <sender id>\fR
236 .RS 4
237 Each anycast tunnel endpoint needs a uniqe sender id (1, 2, 3, \&...)\&. It is needed to distinguish the senders in case of replay attacks\&. This option can be ignored on unicast endpoints\&. default: 0
238 .RE
239 .PP
240 \fB\-w, \-\-window\-size <window size>\fR
241 .RS 4
242 seqence window size
243
244 Sometimes, packets arrive out of order on the receiver side\&. This option defines the size of a list of received packets\' sequence numbers\&. If, according to this list, a received packet has been previously received or has been transmitted in the past, and is therefore not in the list anymore, this is interpreted as a replay attack and the packet is dropped\&. A value of 0 deactivates this list and, as a consequence, the replay protection employed by filtering packets according to their secuence number\&. By default the sequence window is disabled and therefore a window size of 0 is used\&.
245 .RE
246 .PP
247 \fB\-k, \-\-kd\(emprf <kd\-prf type>\fR
248 .RS 4
249 key derivation pseudo random function
250
251 The pseudo random function which is used for calculating the session keys and session salt\&.
252
253 Possible values:
254 .PP
255 \fBnull\fR
256 .RS 4
257 no random function, keys and salt are set to 0\&.\&.00
258 .RE
259 .PP
260 \fBaes\-ctr\fR
261 .RS 4
262 AES in counter mode with 128 Bits, default value
263 .RE
264 .PP
265 \fBaes\-ctr\-128\fR
266 .RS 4
267 AES in counter mode with 128 Bits
268 .RE
269 .PP
270 \fBaes\-ctr\-192\fR
271 .RS 4
272 AES in counter mode with 192 Bits
273 .RE
274 .PP
275 \fBaes\-ctr\-256\fR
276 .RS 4
277 AES in counter mode with 256 Bits
278 .RE
279 .RE
280 .PP
281 \fB\-e, \-\-role <role>\fR
282 .RS 4
283 SATP uses different session keys for inbound and outbound traffic\&. The role parameter is used to determine which keys to use for outbound or inbound packets\&. On both sides of a vpn connection different roles have to be used\&. Possible values are
284 \fBleft\fR
285 and
286 \fBright\fR\&. You may also use
287 \fBalice\fR
288 or
289 \fBserver\fR
290 as a replacement for
291 \fBleft\fR
292 and
293 \fBbob\fR
294 or
295 \fBclient\fR
296 as a replacement for
297 \fBright\fR\&. By default
298 \fBleft\fR
299 is used\&.
300 .RE
301 .PP
302 \fB\-E, \-\-passphrase <pass phrase>\fR
303 .RS 4
304 This passphrase is used to generate the master key and master salt\&. For the master key the last n bits of the SHA256 digest of the passphrase (where n is the length of the master key in bits) is used\&. The master salt gets generated with the SHA1 digest\&. You may force a specific key and or salt by using
305 \fB\-\-key\fR
306 and
307 \fB\-\-salt\fR\&.
308 .RE
309 .PP
310 \fB\-K, \-\-key <master key>\fR
311 .RS 4
312 master key to use for key derivation
313
314 Master key in hexadecimal notation, e\&.g\&. 01a2b3c4d5e6f708a9b0cadbecfd0fa1, with a mandatory length of 32, 48 or 64 characters (128, 192 or 256 bits)\&.
315 .RE
316 .PP
317 \fB\-A, \-\-salt <master salt>\fR
318 .RS 4
319 master salt to use for key derivation
320
321 Master salt in hexadecimal notation, e\&.g\&. 01a2b3c4d5e6f708a9b0cadbecfd, with a mandatory length of 28 characters (14 bytes)\&.
322 .RE
323 .PP
324 \fB\-c, \-\-cipher <cipher type>\fR
325 .RS 4
326 payload encryption algorithm
327
328 Encryption algorithm used for encrypting the payload
329
330 Possible values:
331 .PP
332 \fBnull\fR
333 .RS 4
334 no encryption
335 .RE
336 .PP
337 \fBaes\-ctr\fR
338 .RS 4
339 AES in counter mode with 128 Bits, default value
340 .RE
341 .PP
342 \fBaes\-ctr\-128\fR
343 .RS 4
344 AES in counter mode with 128 Bits
345 .RE
346 .PP
347 \fBaes\-ctr\-192\fR
348 .RS 4
349 AES in counter mode with 192 Bits
350 .RE
351 .PP
352 \fBaes\-ctr\-256\fR
353 .RS 4
354 AES in counter mode with 256 Bits
355 .RE
356 .RE
357 .PP
358 \fB\-a, \-\-auth\-algo <algo type>\fR
359 .RS 4
360 message authentication algorithm
361
362 This option sets the message authentication algorithm\&.
363
364 If HMAC\-SHA1 is used, the packet length is increased\&. The additional bytes contain the authentication data\&. see
365 \fB\-\-auth\-tag\-length\fR
366 for more info\&.
367
368 Possible values:
369 .PP
370 \fBnull\fR
371 .RS 4
372 no message authentication
373 .RE
374 .PP
375 \fBsha1\fR
376 .RS 4
377 HMAC\-SHA1, default value
378 .RE
379 .RE
380 .PP
381 \fB\-b, \-\-auth\-tag\-length <length>\fR
382 .RS 4
383 The number of bytes to use for the auth tag\&. This value defaults to 10 bytes unless the
384 \fBnull\fR
385 auth algo is used in which case it defaults to 0\&.
386 .RE
387 .SH "EXAMPLES"
388 .SS "P2P Setup between two unicast enpoints:"
389 .sp
390 .it 1 an-trap
391 .nr an-no-space-flag 1
392 .nr an-break-flag 1
393 .br
394 .ps +1
395 \fBHost A:\fR
396 .RS 4
397 .sp
398 anytun \-r hostb\&.example\&.com \-t tun \-n 192\&.168\&.123\&.1/30 \-c aes\-ctr\-256 \-k aes\-ctr\-256 \e \-E have_a_very_safe_and_productive_day \-e left
399 .RE
400 .sp
401 .it 1 an-trap
402 .nr an-no-space-flag 1
403 .nr an-break-flag 1
404 .br
405 .ps +1
406 \fBHost B:\fR
407 .RS 4
408 .sp
409 anytun \-r hosta\&.example\&.com \-t tun \-n 192\&.168\&.123\&.2/30 \-c aes\-ctr\-256 \-k aes\-ctr\-256 \e \-E have_a_very_safe_and_productive_day \-e right
410 .RE
411 .SS "One unicast and one anycast tunnel endpoint:"
412 .sp
413 .it 1 an-trap
414 .nr an-no-space-flag 1
415 .nr an-break-flag 1
416 .br
417 .ps +1
418 \fBUnicast tunnel endpoint:\fR
419 .RS 4
420 .sp
421 anytun \-r anycast\&.anytun\&.org \-d anytun0 \-t tun \-n 192\&.0\&.2\&.2/30 \-a null \-c null \-w 0 \-e client
422 .RE
423 .sp
424 .it 1 an-trap
425 .nr an-no-space-flag 1
426 .nr an-break-flag 1
427 .br
428 .ps +1
429 \fBAnycast tunnel endpoints:\fR
430 .RS 4
431 .sp
432 On the host with unicast hostname unicast1\&.anycast\&.anytun\&.org and anycast hostname anycast\&.anytun\&.org:
433 .sp
434 .if n \{\
435 .RS 4
436 .\}
437 .nf
438 # anytun \-i anycast\&.anytun\&.org \-d anytun0 \-t tun \-n 192\&.0\&.2\&.1/30 \-a null \-c null \-w 0 \-e server \e
439          \-S 2342 \-M unicast2\&.anycast\&.anytun\&.org:2342,unicast3\&.anycast\&.anytun\&.org:2342
440 .fi
441 .if n \{\
442 .RE
443 .\}
444 .sp
445 On the host with unicast hostname unicast2\&.anycast\&.anytun\&.org and anycast hostname anycast\&.anytun\&.org:
446 .sp
447 .if n \{\
448 .RS 4
449 .\}
450 .nf
451 # anytun \-i anycast\&.anytun\&.org \-d anytun0 \-t tun \-n 192\&.0\&.2\&.1/30 \-a null \-c null \-w 0 \-e server \e
452          \-S 2342 \-M unicast1\&.anycast\&.anytun\&.org:2342,unicast3\&.anycast\&.anytun\&.org:2342
453 .fi
454 .if n \{\
455 .RE
456 .\}
457 .sp
458 On the host with unicast hostname unicast3\&.anycast\&.anytun\&.org and anycast hostname anycast\&.anytun\&.org:
459 .sp
460 .if n \{\
461 .RS 4
462 .\}
463 .nf
464 # anytun \-i anycast\&.anytun\&.org \-d anytun0 \-t tun \-n 192\&.0\&.2\&.1/30 \-a null \-c null \-w 0 \-e server \e
465          \-S 2342 \-M unicast1\&.anycast\&.anytun\&.org:2342,unicast2\&.anycast\&.anytun\&.org:2342
466 .fi
467 .if n \{\
468 .RE
469 .\}
470 .sp
471 For more sophisticated examples (like multiple unicast endpoints to one anycast tunnel endpoint) please consult the man page of anytun\-config(8)\&.
472 .RE
473 .SH "BUGS"
474 .sp
475 Most likely there are some bugs in \fBAnytun\fR\&. If you find a bug, please let the developers know at satp@anytun\&.org\&. Of course, patches are preferred\&.
476 .SH "SEE ALSO"
477 .sp
478 anytun\-config(8), anytun\-controld(8), anytun\-showtables(8)
479 .SH "AUTHORS"
480 .sp
481 Othmar Gsenger <otti@anytun\&.org> Erwin Nindl <nine@anytun\&.org> Christian Pointner <equinox@anytun\&.org>
482 .SH "RESOURCES"
483 .sp
484 Main web site: http://www\&.anytun\&.org/
485 .SH "COPYING"
486 .sp
487 Copyright (C) 2007\-2009 Othmar Gsenger, Erwin Nindl and Christian Pointner\&. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version\&.