Opennet Firmware
mig_openvpn_updown.sh
gehe zur Dokumentation dieser Datei
1
#!/bin/sh
2
#
3
# Opennet Firmware
4
#
5
# Copyright 2010 Rene Ejury <opennet@absorb.it>
6
# Copyright 2015 Lars Kruse <devel@sumpfralle.de>
7
#
8
# Licensed under the Apache License, Version 2.0 (the "License"
);
9
# you may not use this file except in compliance with the License.
10
# You may obtain a copy of the License at
11
#
12
# http:
//www.apache.org/licenses/LICENSE-2.0
13
#
14
15
16
# shellcheck source=opennet/packages/on-core/files/usr/lib/opennet/on-helper.sh
17
.
"${IPKG_INSTROOT:-}/usr/lib/opennet/on-helper.sh"
18
19
# die folgenden Variablen stammen aus der OpenVPN-Umgebung
20
script_type=
$
{script_type:-}
21
route_vpn_gateway=
$
{route_vpn_gateway:-}
22
route_network_1=
$
{route_network_1:-}
23
# use either IPv4 or IPv6 Address of peer/server
24
trusted_ip=
$
{trusted_ip:-
$
{trusted_ip6:-}}
25
26
27
# parse die foreign-Options, beispielsweise:
28
# foreign_option_4='dhcp-option DNS 10.1.0.1'
29
# Ergebnis: zeilenweise Auflistung von DHCP-Options und zugehoerigem Wert
30
# Beispielsweise:
31
# DNS 10.1.0.1
32
# NTP 10.1.0.1
33
get_servers_from_dhcp_options() {
34
local index=1
35
local option
36
while
true
;
do
37
# prüfe ob die "foreign_option_XXX"
-Variable gesetzt ist
38
option=
$
(eval echo
"\${foreign_option_$index:-}"
)
39
[ -z
"$option"
] &&
break
40
echo
"$option"
41
index=
$
((index + 1))
42
done
| awk '{
if
($1 ==
"dhcp-option"
) print $2,$3 }
'
43
}
44
45
46
# die PATH-Umgebungsvariable beim Ausfuehren des openvpn-Skripts beinhaltet leider nicht die sbin-Verzeichnisse
47
IP_BIN=$(PATH=$PATH:/sbin:/usr/sbin command -v ip)
48
49
50
# Allgemeine openvpn-Ereignisbehandlung
51
log_openvpn_events_and_disconnect_if_requested "mig-openvpn-connections"
52
53
# Sonder-Aktionen für mig-Verbindungen
54
case "$script_type" in
55
up)
56
"$IP_BIN" route replace default via "$route_vpn_gateway" table "$ROUTING_TABLE_ON_UPLINK" || true
57
get_servers_from_dhcp_options >"$MIG_PREFERRED_SERVERS_FILE"
58
update_dns_servers
59
update_ntp_servers
60
is_on_module_installed_and_enabled "on-monitoring" && {
61
# "route_vpn_gateway" ist eigentlich sinnvoller - aber er liefert keine Ping-Antwort
62
add_monitoring_multiping_host "$route_network_1" "gateway"
63
add_monitoring_multiping_host "$trusted_ip" "ugw"
64
}
65
;;
66
down)
67
# löse einen baldigen Verbindungsaufbau aus
68
is_on_module_installed_and_enabled "on-openvpn" \
69
&& has_mig_openvpn_credentials \
70
&& { echo "on-function update_mig_connection_status" | schedule_task; }
71
true
72
rm -f "$MIG_PREFERRED_SERVERS_FILE"
73
update_dns_servers
74
update_ntp_servers
75
# die monitoring-Host-Eintraege (siehe oben) muessen nicht entfernt werden - dies geschieht bei der Paket-Deinstallation
76
;;
77
esac 2>&1 | logger -t mig-updown
78
79
exit 0
done
done
Definition:
core.sh:85
$
$
Definition:
on-version-banner:12
packages
on-openvpn
files
usr
lib
opennet
events
mig_openvpn_updown.sh
Erzeugt am Sam Sep 28 2024 23:02:30 für Opennet Firmware von
1.9.4