1 | .\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) |
1 | .\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.20) |
2 | .\" |
2 | .\" |
3 | .\" Standard preamble: |
3 | .\" Standard preamble: |
4 | .\" ======================================================================== |
4 | .\" ======================================================================== |
5 | .de Sp \" Vertical space (when we can't use .PP) |
5 | .de Sp \" Vertical space (when we can't use .PP) |
6 | .if t .sp .5v |
6 | .if t .sp .5v |
… | |
… | |
122 | .\} |
122 | .\} |
123 | .rm #[ #] #H #V #F C |
123 | .rm #[ #] #H #V #F C |
124 | .\" ======================================================================== |
124 | .\" ======================================================================== |
125 | .\" |
125 | .\" |
126 | .IX Title "GVPE.CONF 5" |
126 | .IX Title "GVPE.CONF 5" |
127 | .TH GVPE.CONF 5 "2012-07-06" "2.24" "GNU Virtual Private Ethernet" |
127 | .TH GVPE.CONF 5 "2013-07-18" "2.25" "GNU Virtual Private Ethernet" |
128 | .\" For nroff, turn off justification. Always turn off hyphenation; it makes |
128 | .\" For nroff, turn off justification. Always turn off hyphenation; it makes |
129 | .\" way too many mistakes in technical documents. |
129 | .\" way too many mistakes in technical documents. |
130 | .if n .ad l |
130 | .if n .ad l |
131 | .nh |
131 | .nh |
132 | .SH "NAME" |
132 | .SH "NAME" |
… | |
… | |
161 | values, but not within the variable names or values themselves. |
161 | values, but not within the variable names or values themselves. |
162 | .PP |
162 | .PP |
163 | All settings are applied \*(L"in order\*(R", that is, later settings of the same |
163 | All settings are applied \*(L"in order\*(R", that is, later settings of the same |
164 | variable overwrite earlier ones. |
164 | variable overwrite earlier ones. |
165 | .PP |
165 | .PP |
166 | The only exceptions to the above are the \*(L"on\*(R" and \*(L"include\*(R" directives: |
166 | The only exceptions to the above are the following directives: |
|
|
167 | .IP "node nodename" 4 |
|
|
168 | .IX Item "node nodename" |
|
|
169 | Introduces a node section. The nodename is used to select the right |
|
|
170 | configuration section and is the same string as is passed as an argument |
|
|
171 | to the gvpe daemon. |
|
|
172 | .Sp |
|
|
173 | Multiple \f(CW\*(C`node\*(C'\fR statements with the same node name are supported and will |
|
|
174 | be merged together. |
|
|
175 | .IP "global" 4 |
|
|
176 | .IX Item "global" |
|
|
177 | This statement switches back to the global section, which is mainly |
|
|
178 | useful if you want to include a second config file, e..g for local |
|
|
179 | customisations. To do that, simply include this at the very end of your |
|
|
180 | config file: |
|
|
181 | .Sp |
|
|
182 | .Vb 2 |
|
|
183 | \& global |
|
|
184 | \& include local.conf |
|
|
185 | .Ve |
167 | .IP "on nodename ..." 4 |
186 | .IP "on nodename ..." 4 |
168 | .IX Item "on nodename ..." |
187 | .IX Item "on nodename ..." |
169 | .PD 0 |
188 | .PD 0 |
170 | .IP "on !nodename ..." 4 |
189 | .IP "on !nodename ..." 4 |
171 | .IX Item "on !nodename ..." |
190 | .IX Item "on !nodename ..." |
… | |
… | |
225 | .IX Subsection "GLOBAL SETTINGS" |
244 | .IX Subsection "GLOBAL SETTINGS" |
226 | Global settings will affect the behaviour of the running gvpe daemon, that |
245 | Global settings will affect the behaviour of the running gvpe daemon, that |
227 | is, they are in some sense node-specific (config files can set different |
246 | is, they are in some sense node-specific (config files can set different |
228 | values on different nodes using \f(CW\*(C`on\*(C'\fR), but will affect the behaviour of |
247 | values on different nodes using \f(CW\*(C`on\*(C'\fR), but will affect the behaviour of |
229 | the gvpe daemon and all connections it creates. |
248 | the gvpe daemon and all connections it creates. |
|
|
249 | .IP "chroot = path or /" 4 |
|
|
250 | .IX Item "chroot = path or /" |
|
|
251 | Tells \s-1GVPE\s0 to \fIchroot\fR\|(2) to the specified path after reading all necessary |
|
|
252 | files, binding to sockets and running the \f(CW\*(C`if\-up\*(C'\fR script, but before |
|
|
253 | running \f(CW\*(C`node\-up\*(C'\fR or any other scripts. |
|
|
254 | .Sp |
|
|
255 | The special path \fI/\fR instructs \s-1GVPE\s0 to create (and remove) an empty |
|
|
256 | temporary directory to use as new root. This is most secure, but makes it |
|
|
257 | impossible to use any scripts other than the \f(CW\*(C`if\-up\*(C'\fR one. |
|
|
258 | .IP "chuid = numerical-uid" 4 |
|
|
259 | .IX Item "chuid = numerical-uid" |
|
|
260 | .PD 0 |
|
|
261 | .IP "chgid = numerical-gid" 4 |
|
|
262 | .IX Item "chgid = numerical-gid" |
|
|
263 | .PD |
|
|
264 | These two options tell \s-1GVPE\s0 to change to the given user and/or group id |
|
|
265 | after reading all necessary files, binding to sockets and running the |
|
|
266 | \&\f(CW\*(C`if\-up\*(C'\fR script. |
|
|
267 | .Sp |
|
|
268 | Other scripts, such as \f(CW\*(C`node\-up\*(C'\fR, are run with the new user id or group id. |
|
|
269 | .IP "chuser = username" 4 |
|
|
270 | .IX Item "chuser = username" |
|
|
271 | Alternative to \f(CW\*(C`chuid\*(C'\fR and \f(CW\*(C`chgid\*(C'\fR: Sets both \f(CW\*(C`chuid\*(C'\fR and \f(CW\*(C`chgid\*(C'\fR |
|
|
272 | to the user and (primary) group ids of the specified user (for example, |
|
|
273 | \&\f(CW\*(C`nobody\*(C'\fR). |
230 | .IP "dns-forw-host = hostname/ip" 4 |
274 | .IP "dns-forw-host = hostname/ip" 4 |
231 | .IX Item "dns-forw-host = hostname/ip" |
275 | .IX Item "dns-forw-host = hostname/ip" |
232 | The \s-1DNS\s0 server to forward \s-1DNS\s0 requests to for the \s-1DNS\s0 tunnel protocol |
276 | The \s-1DNS\s0 server to forward \s-1DNS\s0 requests to for the \s-1DNS\s0 tunnel protocol |
233 | (default: \f(CW127.0.0.1\fR, changing it is highly recommended). |
277 | (default: \f(CW127.0.0.1\fR, changing it is highly recommended). |
234 | .IP "dns-forw-port = port-number" 4 |
278 | .IP "dns-forw-port = port-number" 4 |
… | |
… | |
449 | this information to the \f(CW\*(C`if\-up\*(C'\fR script. |
493 | this information to the \f(CW\*(C`if\-up\*(C'\fR script. |
450 | .Sp |
494 | .Sp |
451 | Recommended values are 1500 (ethernet), 1492 (pppoe), 1472 (pptp). |
495 | Recommended values are 1500 (ethernet), 1492 (pppoe), 1472 (pptp). |
452 | .Sp |
496 | .Sp |
453 | This value must be the minimum of the \s-1MTU\s0 values of all nodes. |
497 | This value must be the minimum of the \s-1MTU\s0 values of all nodes. |
454 | .IP "node = nickname" 4 |
498 | .IP "nfmark = integer" 4 |
455 | .IX Item "node = nickname" |
499 | .IX Item "nfmark = integer" |
456 | Not really a config setting but introduces a node section. The nickname is |
500 | This advanced option, when set to a nonzero value (default: \f(CW0\fR), tries |
457 | used to select the right configuration section and must be passed as an |
501 | to set the netfilter mark (or fwmark) value on all sockets gvpe uses to |
458 | argument to the gvpe daemon. |
502 | send packets. |
|
|
503 | .Sp |
|
|
504 | This can be used to make gvpe use a different set of routing rules. For |
|
|
505 | example, on GNU/Linux, the \f(CW\*(C`if\-up\*(C'\fR could set \f(CW\*(C`nfmark\*(C'\fR to 1000 and then |
|
|
506 | put all routing rules into table \f(CW99\fR and then use an ip rule to make |
|
|
507 | gvpe traffic avoid that routing table, in effect routing normal traffic |
|
|
508 | via gvpe and gvpe traffic via the normal system routing tables: |
|
|
509 | .Sp |
|
|
510 | .Vb 1 |
|
|
511 | \& ip rule add not fwmark 1000 lookup 99 |
|
|
512 | .Ve |
459 | .IP "node-up = relative-or-absolute-path" 4 |
513 | .IP "node-up = relative-or-absolute-path" 4 |
460 | .IX Item "node-up = relative-or-absolute-path" |
514 | .IX Item "node-up = relative-or-absolute-path" |
461 | Sets a command (default: none) that should be called whenever a connection |
515 | Sets a command (default: none) that should be called whenever a connection |
462 | is established (even on rekeying operations). Note that node\-up/down |
516 | is established (even on rekeying operations). Note that node\-up/down |
463 | scripts will be run asynchronously, but execution is serialised, so there |
517 | scripts will be run asynchronously, but execution is serialised, so there |
… | |
… | |
496 | .Vb 6 |
550 | .Vb 6 |
497 | \& #!/bin/sh |
551 | \& #!/bin/sh |
498 | \& { |
552 | \& { |
499 | \& echo update delete $DESTNODE.lowttl.example.net. a |
553 | \& echo update delete $DESTNODE.lowttl.example.net. a |
500 | \& echo update add $DESTNODE.lowttl.example.net. 1 in a $DESTIP |
554 | \& echo update add $DESTNODE.lowttl.example.net. 1 in a $DESTIP |
501 | \& echo |
555 | \& echo |
502 | \& } | nsupdate \-d \-k $CONFBASE:key.example.net. |
556 | \& } | nsupdate \-d \-k $CONFBASE:key.example.net. |
503 | .Ve |
557 | .Ve |
504 | .RE |
558 | .RE |
505 | .IP "node-change = relative-or-absolute-path" 4 |
559 | .IP "node-change = relative-or-absolute-path" 4 |
506 | .IX Item "node-change = relative-or-absolute-path" |
560 | .IX Item "node-change = relative-or-absolute-path" |
… | |
… | |
510 | .IX Item "node-down = relative-or-absolute-path" |
564 | .IX Item "node-down = relative-or-absolute-path" |
511 | Same as \f(CW\*(C`node\-up\*(C'\fR, but gets called whenever a connection is lost. |
565 | Same as \f(CW\*(C`node\-up\*(C'\fR, but gets called whenever a connection is lost. |
512 | .IP "pid-file = path" 4 |
566 | .IP "pid-file = path" 4 |
513 | .IX Item "pid-file = path" |
567 | .IX Item "pid-file = path" |
514 | The path to the pid file to check and create |
568 | The path to the pid file to check and create |
515 | (default: \f(CW\*(C`LOCALSTATEDIR/run/gvpe.pid\*(C'\fR). |
569 | (default: \f(CW\*(C`LOCALSTATEDIR/run/gvpe.pid\*(C'\fR). The first \f(CW%s\fR is replaced by |
|
|
570 | the nodename \- any other use of \f(CW\*(C`%\*(C'\fR must be written as \f(CW\*(C`%%\*(C'\fR. |
516 | .IP "private-key = relative-path-to-key" 4 |
571 | .IP "private-key = relative-path-to-key" 4 |
517 | .IX Item "private-key = relative-path-to-key" |
572 | .IX Item "private-key = relative-path-to-key" |
518 | Sets the path (relative to the config directory) to the private key |
573 | Sets the path (relative to the config directory) to the private key |
519 | (default: \f(CW\*(C`hostkey\*(C'\fR). This is a printf format string so every \f(CW\*(C`%\*(C'\fR must |
574 | (default: \f(CW\*(C`hostkey\*(C'\fR). This is a printf format string so every \f(CW\*(C`%\*(C'\fR must |
520 | be doubled. A single \f(CW%s\fR is replaced by the hostname, so you could |
575 | be doubled. A single \f(CW%s\fR is replaced by the hostname, so you could |
… | |
… | |
524 | Since only the private key file of the current node is used and the |
579 | Since only the private key file of the current node is used and the |
525 | private key file should be kept secret per-node to avoid spoofing, it is |
580 | private key file should be kept secret per-node to avoid spoofing, it is |
526 | not recommended to use this feature. |
581 | not recommended to use this feature. |
527 | .IP "rekey = seconds" 4 |
582 | .IP "rekey = seconds" 4 |
528 | .IX Item "rekey = seconds" |
583 | .IX Item "rekey = seconds" |
529 | Sets the rekeying interval in seconds (default: \f(CW3600\fR). Connections are |
584 | Sets the rekeying interval in seconds (default: \f(CW3607\fR). Connections are |
530 | reestablished every \f(CW\*(C`rekey\*(C'\fR seconds, making them use a new encryption |
585 | reestablished every \f(CW\*(C`rekey\*(C'\fR seconds, making them use a new encryption |
531 | key. |
586 | key. |
532 | .IP "nfmark = integer" 4 |
587 | .IP "seed-device = path" 4 |
533 | .IX Item "nfmark = integer" |
588 | .IX Item "seed-device = path" |
534 | This advanced option, when set to a nonzero value (default: \f(CW0\fR), tries |
589 | The random device used to initially and regularly seed the random |
535 | to set the netfilter mark (or fwmark) value on all sockets gvpe uses to |
590 | number generator (default: \fI/dev/urandom\fR). Randomness is of paramount |
536 | send packets. |
591 | importance to the security of the algorithms used in gvpe. |
537 | .Sp |
592 | .Sp |
538 | This can be used to make gvpe use a different set of routing rules. For |
593 | On program start and every seed-interval, gvpe will read 64 octets. |
539 | example, on GNU/Linux, the \f(CW\*(C`if\-up\*(C'\fR could set \f(CW\*(C`nfmark\*(C'\fR to 1000 and then |
|
|
540 | put all routing rules into table \f(CW99\fR and then use an ip rule to make |
|
|
541 | gvpe traffic avoid that routing table, in effect routing normal traffic |
|
|
542 | via gvpe and gvpe traffic via the normal system routing tables: |
|
|
543 | .Sp |
594 | .Sp |
544 | .Vb 1 |
595 | Setting this path to the empty string will disable this functionality |
545 | \& ip rule add not fwmark 1000 lookup 99 |
596 | completely (the underlying crypto library will likely look for entropy |
546 | .Ve |
597 | sources on it's own though, so not all is lost). |
|
|
598 | .IP "seed-interval = seconds" 4 |
|
|
599 | .IX Item "seed-interval = seconds" |
|
|
600 | The number of seconds between reseeds of the random number generator |
|
|
601 | (default: \f(CW3613\fR). A value of \f(CW0\fR disables this regular reseeding. |
|
|
602 | .IP "serial = string" 4 |
|
|
603 | .IX Item "serial = string" |
|
|
604 | The configuration serial number. This can be any string up to 16 bytes |
|
|
605 | length. Only when the serial matches on both sides of a conenction will |
|
|
606 | the connection succeed. This is \fInot\fR a security mechanism and eay to |
|
|
607 | spoof, this mechanism exists to alert users that their config is outdated. |
|
|
608 | .Sp |
|
|
609 | It's recommended to specify this is a date string such as \f(CW\*(C`2013\-05\-05\*(C'\fR or |
|
|
610 | \&\f(CW\*(C`20121205084417).\*(C'\fR |
|
|
611 | .Sp |
|
|
612 | The exact algorithm is as this: if a connection request is received form a |
|
|
613 | node with an identical serial, then it succeeds normally. |
|
|
614 | .Sp |
|
|
615 | If the remote serial is lower than the local serial, it is ignored. |
|
|
616 | .Sp |
|
|
617 | If the remote serial is higher than the local serial, a warning message is |
|
|
618 | logged. |
547 | .SS "\s-1NODE\s0 \s-1SPECIFIC\s0 \s-1SETTINGS\s0" |
619 | .SS "\s-1NODE\s0 \s-1SPECIFIC\s0 \s-1SETTINGS\s0" |
548 | .IX Subsection "NODE SPECIFIC SETTINGS" |
620 | .IX Subsection "NODE SPECIFIC SETTINGS" |
549 | The following settings are node-specific, that is, every node can have |
621 | The following settings are node-specific, that is, every node can have |
550 | different settings, even within the same gvpe instance. Settings that are |
622 | different settings, even within the same gvpe instance. Settings that are |
551 | set before the first node section set the defaults, settings that are |
623 | set before the first node section set the defaults, settings that are |
… | |
… | |
750 | .IP "node-up, node-down" 4 |
822 | .IP "node-up, node-down" 4 |
751 | .IX Item "node-up, node-down" |
823 | .IX Item "node-up, node-down" |
752 | If used the node up or node-down scripts. |
824 | If used the node up or node-down scripts. |
753 | .IP "hostkey" 4 |
825 | .IP "hostkey" 4 |
754 | .IX Item "hostkey" |
826 | .IX Item "hostkey" |
755 | The private key (taken from \f(CW\*(C`hostkeys/nodename\*(C'\fR) of the current host. |
827 | The (default path of the) private key of the current host. |
756 | .IP "pubkey/nodename" 4 |
828 | .IP "pubkey/nodename" 4 |
757 | .IX Item "pubkey/nodename" |
829 | .IX Item "pubkey/nodename" |
758 | The public keys of the other nodes, one file per node. |
830 | The public keys of the other nodes, one file per node. |
759 | .SH "SEE ALSO" |
831 | .SH "SEE ALSO" |
760 | .IX Header "SEE ALSO" |
832 | .IX Header "SEE ALSO" |
761 | \&\fIgvpe\fR\|(5), \fIgvpe\fR\|(8), \fIgvpectrl\fR\|(8). |
833 | \&\fIgvpe\fR\|(5), \fIgvpe\fR\|(8), \fIgvpectrl\fR\|(8). |
762 | .SH "AUTHOR" |
834 | .SH "AUTHOR" |
763 | .IX Header "AUTHOR" |
835 | .IX Header "AUTHOR" |
764 | Marc Lehmann <gvpe@schmorp.de> |
836 | Marc Lehmann <gvpe@schmorp.de> |
|
|
837 | .SH "POD ERRORS" |
|
|
838 | .IX Header "POD ERRORS" |
|
|
839 | Hey! \fBThe above document had some coding errors, which are explained below:\fR |
|
|
840 | .IP "Around line 516:" 4 |
|
|
841 | .IX Item "Around line 516:" |
|
|
842 | Unterminated C<...> sequence |