ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/gvpe/doc/gvpe.conf.5.pod
(Generate patch)

Comparing gvpe/doc/gvpe.conf.5.pod (file contents):
Revision 1.28 by root, Sun Mar 6 19:40:27 2011 UTC vs.
Revision 1.35 by root, Fri Oct 11 07:56:07 2013 UTC

31values, but not within the variable names or values themselves. 31values, but not within the variable names or values themselves.
32 32
33All settings are applied "in order", that is, later settings of the same 33All settings are applied "in order", that is, later settings of the same
34variable overwrite earlier ones. 34variable overwrite earlier ones.
35 35
36The only exceptions to the above are the "on" and "include" directives: 36The only exceptions to the above are the following directives:
37 37
38=over 4 38=over 4
39
40=item node nodename
41
42Introduces a node section. The nodename is used to select the right
43configuration section and is the same string as is passed as an argument
44to the gvpe daemon.
45
46Multiple C<node> statements with the same node name are supported and will
47be merged together.
48
49=item global
50
51This statement switches back to the global section, which is mainly
52useful if you want to include a second config file, e..g for local
53customisations. To do that, simply include this at the very end of your
54config file:
55
56 global
57 include local.conf
39 58
40=item on nodename ... 59=item on nodename ...
41 60
42=item on !nodename ... 61=item on !nodename ...
43 62
97is, they are in some sense node-specific (config files can set different 116is, they are in some sense node-specific (config files can set different
98values on different nodes using C<on>), but will affect the behaviour of 117values on different nodes using C<on>), but will affect the behaviour of
99the gvpe daemon and all connections it creates. 118the gvpe daemon and all connections it creates.
100 119
101=over 4 120=over 4
121
122=item chroot = path or /
123
124Tells GVPE to chroot(2) to the specified path after reading all necessary
125files, binding to sockets and running the C<if-up> script, but before
126running C<node-up> or any other scripts.
127
128The special path F</> instructs GVPE to create (and remove) an empty
129temporary directory to use as new root. This is most secure, but makes it
130impossible to use any scripts other than the C<if-up> one.
131
132=item chuid = numerical-uid
133
134=item chgid = numerical-gid
135
136These two options tell GVPE to change to the given user and/or group id
137after reading all necessary files, binding to sockets and running the
138C<if-up> script.
139
140Other scripts, such as C<node-up>, are run with the new user id or group id.
141
142=item chuser = username
143
144Alternative to C<chuid> and C<chgid>: Sets both C<chuid> and C<chgid>
145to the user and (primary) group ids of the specified user (for example,
146C<nobody>).
102 147
103=item dns-forw-host = hostname/ip 148=item dns-forw-host = hostname/ip
104 149
105The DNS server to forward DNS requests to for the DNS tunnel protocol 150The DNS server to forward DNS requests to for the DNS tunnel protocol
106(default: C<127.0.0.1>, changing it is highly recommended). 151(default: C<127.0.0.1>, changing it is highly recommended).
324 369
325=item keepalive = seconds 370=item keepalive = seconds
326 371
327Sets the keepalive probe interval in seconds (default: C<60>). After this 372Sets the keepalive probe interval in seconds (default: C<60>). After this
328many seconds of inactivity the daemon will start to send keepalive probe 373many seconds of inactivity the daemon will start to send keepalive probe
329every 3 seconds until it receives a reply from the other end. If no reply 374every 3 seconds until it receives a reply from the other end. If no reply
330is received within 15 seconds, the peer is considered unreachable and the 375is received within 15 seconds, the peer is considered unreachable and the
331connection is closed. 376connection is closed.
332 377
333=item loglevel = noise|trace|debug|info|notice|warn|error|critical 378=item loglevel = noise|trace|debug|info|notice|warn|error|critical
334 379
344 389
345Recommended values are 1500 (ethernet), 1492 (pppoe), 1472 (pptp). 390Recommended values are 1500 (ethernet), 1492 (pppoe), 1472 (pptp).
346 391
347This value must be the minimum of the MTU values of all nodes. 392This value must be the minimum of the MTU values of all nodes.
348 393
349=item node = nickname 394=item nfmark = integer
350 395
351Not really a config setting but introduces a node section. The nickname is 396This advanced option, when set to a nonzero value (default: C<0>), tries
352used to select the right configuration section and must be passed as an 397to set the netfilter mark (or fwmark) value on all sockets gvpe uses to
353argument to the gvpe daemon. 398send packets.
399
400This can be used to make gvpe use a different set of routing rules. For
401example, on GNU/Linux, the C<if-up> could set C<nfmark> to 1000 and then
402put all routing rules into table C<99> and then use an ip rule to make
403gvpe traffic avoid that routing table, in effect routing normal traffic
404via gvpe and gvpe traffic via the normal system routing tables:
405
406 ip rule add not fwmark 1000 lookup 99
354 407
355=item node-up = relative-or-absolute-path 408=item node-up = relative-or-absolute-path
356 409
357Sets a command (default: none) that should be called whenever a connection 410Sets a command (default: none) that should be called whenever a connection
358is established (even on rekeying operations). Note that node-up/down 411is established (even on rekeying operations). Note that node-up/down
398 451
399 #!/bin/sh 452 #!/bin/sh
400 { 453 {
401 echo update delete $DESTNODE.lowttl.example.net. a 454 echo update delete $DESTNODE.lowttl.example.net. a
402 echo update add $DESTNODE.lowttl.example.net. 1 in a $DESTIP 455 echo update add $DESTNODE.lowttl.example.net. 1 in a $DESTIP
403 echo 456 echo
404 } | nsupdate -d -k $CONFBASE:key.example.net. 457 } | nsupdate -d -k $CONFBASE:key.example.net.
405 458
406=item node-change = relative-or-absolute-path 459=item node-change = relative-or-absolute-path
407 460
408Same as C<node-change>, but gets called whenever something about a 461Same as C<node-change>, but gets called whenever something about a
413Same as C<node-up>, but gets called whenever a connection is lost. 466Same as C<node-up>, but gets called whenever a connection is lost.
414 467
415=item pid-file = path 468=item pid-file = path
416 469
417The path to the pid file to check and create 470The path to the pid file to check and create
418(default: C<LOCALSTATEDIR/run/gvpe.pid>). 471(default: C<LOCALSTATEDIR/run/gvpe.pid>). The first C<%s> is replaced by
472the nodename - any other use of C<%> must be written as C<%%>.
419 473
420=item private-key = relative-path-to-key 474=item private-key = relative-path-to-key
421 475
422Sets the path (relative to the config directory) to the private key 476Sets the path (relative to the config directory) to the private key
423(default: C<hostkey>). This is a printf format string so every C<%> must 477(default: C<hostkey>). This is a printf format string so every C<%> must
429private key file should be kept secret per-node to avoid spoofing, it is 483private key file should be kept secret per-node to avoid spoofing, it is
430not recommended to use this feature. 484not recommended to use this feature.
431 485
432=item rekey = seconds 486=item rekey = seconds
433 487
434Sets the rekeying interval in seconds (default: C<3600>). Connections are 488Sets the rekeying interval in seconds (default: C<3607>). Connections are
435reestablished every C<rekey> seconds, making them use a new encryption 489reestablished every C<rekey> seconds, making them use a new encryption
436key. 490key.
437 491
438=item nfmark = integer 492=item seed-device = path
439 493
440This advanced option, when set to a nonzero value (default: C<0>), tries 494The random device used to initially and regularly seed the random
441to set the netfilter mark (or fwmark) value on all sockets gvpe uses to 495number generator (default: F</dev/urandom>). Randomness is of paramount
442send packets. 496importance to the security of the algorithms used in gvpe.
443 497
444This can be used to make gvpe use a different set of routing rules. For 498On program start and every seed-interval, gvpe will read 64 octets.
445example, on GNU/Linux, the C<if-up> could set C<nfmark> to 1000 and then
446put all routing rules into table C<99> and then use an ip rule to make
447gvpe traffic avoid that routing table, in effect routing normal traffic
448via gvpe and gvpe traffic via the normal system routing tables:
449 499
450 ip rule add not fwmark 1000 lookup 99 500Setting this path to the empty string will disable this functionality
501completely (the underlying crypto library will likely look for entropy
502sources on it's own though, so not all is lost).
503
504=item seed-interval = seconds
505
506The number of seconds between reseeds of the random number generator
507(default: C<3613>). A value of C<0> disables this regular reseeding.
508
509=item serial = string
510
511The configuration serial number. This can be any string up to 16 bytes
512length. Only when the serial matches on both sides of a conenction will
513the connection succeed. This is I<not> a security mechanism and eay to
514spoof, this mechanism exists to alert users that their config is outdated.
515
516It's recommended to specify this is a date string such as C<2013-05-05> or
517C<20121205084417).
518
519The exact algorithm is as this: if a connection request is received form a
520node with an identical serial, then it succeeds normally.
521
522If the remote serial is lower than the local serial, it is ignored.
523
524If the remote serial is higher than the local serial, a warning message is
525logged.
451 526
452=back 527=back
453 528
454=head2 NODE SPECIFIC SETTINGS 529=head2 NODE SPECIFIC SETTINGS
455 530
604Whether to inherit the TOS settings of packets sent to the tunnel when 679Whether to inherit the TOS settings of packets sent to the tunnel when
605sending packets to this node (default: C<yes>). If set to C<yes> then 680sending packets to this node (default: C<yes>). If set to C<yes> then
606outgoing tunnel packets will have the same TOS setting as the packets sent 681outgoing tunnel packets will have the same TOS setting as the packets sent
607to the tunnel device, which is usually what you want. 682to the tunnel device, which is usually what you want.
608 683
684=item low-power = yes|true|on | no|false|off
685
686If true, designates a node as a low-power node. Low-power nodes use
687larger timeouts and try to reduce cpu time. Other nodes talking to a
688low-power node will also use larger timeouts, and will use less aggressive
689optimisations, in the hope of reducing load. Security is not compromised.
690
691The typical low-power node would be a mobile phone, where wakeups and
692encryption can significantly increase power drain.
693
609=item max-retry = positive-number 694=item max-retry = positive-number
610 695
611The maximum interval in seconds (default: C<3600>, one hour) between 696The maximum interval in seconds (default: C<3600>, one hour) between
612retries to establish a connection to this node. When a connection cannot 697retries to establish a connection to this node. When a connection cannot
613be established, gvpe uses exponential back-off capped at this value. It's 698be established, gvpe uses exponential back-off capped at this value. It's
686 771
687If used the node up or node-down scripts. 772If used the node up or node-down scripts.
688 773
689=item hostkey 774=item hostkey
690 775
691The private key (taken from C<hostkeys/nodename>) of the current host. 776The (default path of the) private key of the current host.
692 777
693=item pubkey/nodename 778=item pubkey/nodename
694 779
695The public keys of the other nodes, one file per node. 780The public keys of the other nodes, one file per node.
696 781

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines