bzr branch
http://bzr.recompile.se/loggerhead/mandos/release
237.16.25
by Teddy Hogeborn
Added sample OpenVPN network hook. |
1 |
#!/bin/sh
|
2 |
#
|
|
3 |
# This is an example of a Mandos client network hook. This hook
|
|
4 |
# brings up an OpenVPN interface as specified in a separate
|
|
5 |
# configuration file. To be used, this file and any needed
|
|
6 |
# configuration file(s) should be copied into the
|
|
7 |
# /etc/mandos/network-hooks.d directory.
|
|
8 |
#
|
|
237.7.97
by teddy at recompile
* Makefile (install-server): Add intro(8mandos) man page. |
9 |
# Copyright © 2012 Teddy Hogeborn
|
10 |
# Copyright © 2012 Björn Påhlsson
|
|
11 |
#
|
|
237.16.25
by Teddy Hogeborn
Added sample OpenVPN network hook. |
12 |
# Copying and distribution of this file, with or without modification,
|
13 |
# are permitted in any medium without royalty provided the copyright
|
|
14 |
# notice and this notice are preserved. This file is offered as-is,
|
|
15 |
# without any warranty.
|
|
16 |
||
17 |
set -e |
|
18 |
||
237.16.26
by teddy at bsnet
* network-hooks.d/openvpn: Tolerate relative MANDOSNETHOOKDIR path. |
19 |
CONFIG="openvpn.conf" |
237.16.25
by Teddy Hogeborn
Added sample OpenVPN network hook. |
20 |
|
21 |
# Extract the "dev" setting from the config file
|
|
237.17.9
by teddy at recompile
* network-hooks.s/bridge: Don't use interface names directly; search |
22 |
VPNDEVICE=`sed -n -e 's/[[:space:]]#.*//' \ |
23 |
-e 's/^[[:space:]]*dev[[:space:]]\+//p' \ |
|
24 |
"$MANDOSNETHOOKDIR/$CONFIG"` |
|
237.16.25
by Teddy Hogeborn
Added sample OpenVPN network hook. |
25 |
|
26 |
PIDFILE=/run/openvpn-mandos.pid |
|
27 |
||
28 |
# Exit if no device set in config
|
|
29 |
if [ -z "$VPNDEVICE" ]; then |
|
30 |
exit |
|
31 |
fi
|
|
32 |
||
33 |
# Exit if DEVICE is set and it doesn't match the VPN interface
|
|
237.22.4
by Teddy Hogeborn
* plugins.d/mandos-client.c (get_flags): Don't clobber errno. |
34 |
if [ -n "$DEVICE" ]; then |
35 |
case "$DEVICE" in |
|
36 |
*,"$VPNDEVICE"*|"$VPNDEVICE"*) :;; |
|
37 |
*) exit;; |
|
38 |
esac |
|
237.16.25
by Teddy Hogeborn
Added sample OpenVPN network hook. |
39 |
fi
|
40 |
||
41 |
openvpn=/usr/sbin/openvpn |
|
42 |
||
237.7.111
by Teddy Hogeborn
* network-hooks.d/bridge: Move "start" and "stop" commands to separate |
43 |
do_start(){
|
44 |
"$openvpn" --cd "$MANDOSNETHOOKDIR" --daemon 'openvpn(Mandos)' \ |
|
45 |
--writepid "$PIDFILE" --config "$CONFIG" |
|
46 |
sleep "$DELAY" |
|
47 |
}
|
|
48 |
||
49 |
do_stop(){
|
|
50 |
PID="`cat \"$PIDFILE\"`" |
|
51 |
if [ "$PID" -gt 0 ]; then |
|
52 |
kill "$PID" |
|
53 |
fi |
|
54 |
}
|
|
55 |
||
56 |
case "${MODE:-$1}" in |
|
57 |
start|stop) |
|
58 |
do_"${MODE:-$1}" |
|
237.16.25
by Teddy Hogeborn
Added sample OpenVPN network hook. |
59 |
;; |
60 |
files) |
|
61 |
echo "$openvpn" |
|
62 |
;; |
|
63 |
modules) |
|
64 |
echo tun |
|
65 |
;; |
|
66 |
esac
|