bzr branch
http://bzr.recompile.se/loggerhead/mandos/trunk
505.3.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 |
||
505.3.26
by teddy at bsnet
* network-hooks.d/openvpn: Tolerate relative MANDOSNETHOOKDIR path. |
16 |
CONFIG="openvpn.conf" |
505.3.25
by Teddy Hogeborn
Added sample OpenVPN network hook. |
17 |
|
18 |
# Extract the "dev" setting from the config file
|
|
505.3.26
by teddy at bsnet
* network-hooks.d/openvpn: Tolerate relative MANDOSNETHOOKDIR path. |
19 |
VPNDEVICE="`sed -n -e 's/#.*//' -e 's/^[[:space:]]*dev[[:space:]]\+//p' \"$MANDOSNETHOOKDIR/$CONFIG\"`" |
505.3.25
by Teddy Hogeborn
Added sample OpenVPN network hook. |
20 |
|
21 |
PIDFILE=/run/openvpn-mandos.pid |
|
22 |
||
23 |
# Exit if no device set in config
|
|
24 |
if [ -z "$VPNDEVICE" ]; then |
|
25 |
exit |
|
26 |
fi
|
|
27 |
||
28 |
# Exit if DEVICE is set and it doesn't match the VPN interface
|
|
29 |
if [ -n "$DEVICE" -a "$DEVICE" = "${DEVICE#$VPNDEVICE}" ]; then |
|
30 |
exit |
|
31 |
fi
|
|
32 |
||
33 |
openvpn=/usr/sbin/openvpn |
|
34 |
||
35 |
case "$1" in |
|
36 |
start) |
|
37 |
"$openvpn" --cd "$MANDOSNETHOOKDIR" --daemon 'openvpn(Mandos)' --writepid "$PIDFILE" --config "$CONFIG" |
|
38 |
sleep "$DELAY" |
|
39 |
;; |
|
40 |
stop) |
|
505.3.26
by teddy at bsnet
* network-hooks.d/openvpn: Tolerate relative MANDOSNETHOOKDIR path. |
41 |
PID="`cat \"$PIDFILE\"`" |
505.3.25
by Teddy Hogeborn
Added sample OpenVPN network hook. |
42 |
if [ "$PID" -gt 0 ]; then |
43 |
kill "$PID" |
|
44 |
fi |
|
45 |
;; |
|
46 |
files) |
|
47 |
echo "$openvpn" |
|
48 |
;; |
|
49 |
modules) |
|
50 |
echo tun |
|
51 |
;; |
|
52 |
esac
|