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 |
#
|
|
549
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 |
#
|
|
505.3.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 |
||
505.3.26
by teddy at bsnet
* network-hooks.d/openvpn: Tolerate relative MANDOSNETHOOKDIR path. |
19 |
CONFIG="openvpn.conf" |
505.3.25
by Teddy Hogeborn
Added sample OpenVPN network hook. |
20 |
|
21 |
# Extract the "dev" setting from the config file
|
|
535.1.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"` |
|
505.3.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
|
|
34 |
if [ -n "$DEVICE" -a "$DEVICE" = "${DEVICE#$VPNDEVICE}" ]; then |
|
35 |
exit |
|
36 |
fi
|
|
37 |
||
38 |
openvpn=/usr/sbin/openvpn |
|
39 |
||
563
by Teddy Hogeborn
* network-hooks.d/bridge: Move "start" and "stop" commands to separate |
40 |
do_start(){
|
41 |
"$openvpn" --cd "$MANDOSNETHOOKDIR" --daemon 'openvpn(Mandos)' \ |
|
42 |
--writepid "$PIDFILE" --config "$CONFIG" |
|
43 |
sleep "$DELAY" |
|
44 |
}
|
|
45 |
||
46 |
do_stop(){
|
|
47 |
PID="`cat \"$PIDFILE\"`" |
|
48 |
if [ "$PID" -gt 0 ]; then |
|
49 |
kill "$PID" |
|
50 |
fi |
|
51 |
}
|
|
52 |
||
53 |
case "${MODE:-$1}" in |
|
54 |
start|stop) |
|
55 |
do_"${MODE:-$1}" |
|
505.3.25
by Teddy Hogeborn
Added sample OpenVPN network hook. |
56 |
;; |
57 |
files) |
|
58 |
echo "$openvpn" |
|
59 |
;; |
|
60 |
modules) |
|
61 |
echo tun |
|
62 |
;; |
|
63 |
esac
|