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 |
#
|
|
9 |
# Copying and distribution of this file, with or without modification,
|
|
10 |
# are permitted in any medium without royalty provided the copyright
|
|
11 |
# notice and this notice are preserved. This file is offered as-is,
|
|
12 |
# without any warranty.
|
|
13 |
||
14 |
set -e |
|
15 |
||
237.16.26
by teddy at bsnet
* network-hooks.d/openvpn: Tolerate relative MANDOSNETHOOKDIR path. |
16 |
CONFIG="openvpn.conf" |
237.16.25
by Teddy Hogeborn
Added sample OpenVPN network hook. |
17 |
|
18 |
# 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 |
19 |
VPNDEVICE=`sed -n -e 's/[[:space:]]#.*//' \ |
20 |
-e 's/^[[:space:]]*dev[[:space:]]\+//p' \ |
|
21 |
"$MANDOSNETHOOKDIR/$CONFIG"` |
|
237.16.25
by Teddy Hogeborn
Added sample OpenVPN network hook. |
22 |
|
23 |
PIDFILE=/run/openvpn-mandos.pid |
|
24 |
||
25 |
# Exit if no device set in config
|
|
26 |
if [ -z "$VPNDEVICE" ]; then |
|
27 |
exit |
|
28 |
fi
|
|
29 |
||
30 |
# Exit if DEVICE is set and it doesn't match the VPN interface
|
|
31 |
if [ -n "$DEVICE" -a "$DEVICE" = "${DEVICE#$VPNDEVICE}" ]; then |
|
32 |
exit |
|
33 |
fi
|
|
34 |
||
35 |
openvpn=/usr/sbin/openvpn |
|
36 |
||
37 |
case "$1" in |
|
38 |
start) |
|
237.17.9
by teddy at recompile
* network-hooks.s/bridge: Don't use interface names directly; search |
39 |
"$openvpn" --cd "$MANDOSNETHOOKDIR" \ |
40 |
--daemon 'openvpn(Mandos)' --writepid "$PIDFILE" \ |
|
41 |
--config "$CONFIG" |
|
237.16.25
by Teddy Hogeborn
Added sample OpenVPN network hook. |
42 |
sleep "$DELAY" |
43 |
;; |
|
44 |
stop) |
|
237.16.26
by teddy at bsnet
* network-hooks.d/openvpn: Tolerate relative MANDOSNETHOOKDIR path. |
45 |
PID="`cat \"$PIDFILE\"`" |
237.16.25
by Teddy Hogeborn
Added sample OpenVPN network hook. |
46 |
if [ "$PID" -gt 0 ]; then |
47 |
kill "$PID" |
|
48 |
fi |
|
49 |
;; |
|
50 |
files) |
|
51 |
echo "$openvpn" |
|
52 |
;; |
|
53 |
modules) |
|
54 |
echo tun |
|
55 |
;; |
|
56 |
esac
|