Opennet Firmware
 Alle Dateien Funktionen Variablen Gruppen Seiten
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 . "${IPKG_INSTROOT:-}/usr/lib/opennet/on-helper.sh"
17 
18 
19 # parse die foreign-Options, beispielsweise:
20 # foreign_option_4='dhcp-option DNS 10.1.0.1'
21 # Ergebnis: zeilenweise Auflistung von DHCP-Options und zugehoerigem Wert
22 # Beispielsweise:
23 # DNS 10.1.0.1
24 # NTP 10.1.0.1
25 get_servers_from_dhcp_options() {
26  local index=1
27  local option
28  while true; do
29  # prüfe ob die "foreign_option_XXX"-Variable gesetzt ist
30  option=$(eval echo "\${foreign_option_$index:-}")
31  [ -z "$option" ] && break
32  echo "$option"
33  : $((index++))
34  done | awk '{ if ($1 == "dhcp-option") print $2,$3 }'
35 }
36 
37 
38 # die PATH-Umgebungsvariable beim Ausfuehren des openvpn-Skripts beinhaltet leider nicht die sbin-Verzeichnisse
39 IP_BIN=$(PATH=$PATH:/sbin:/usr/sbin which ip)
40 
41 
42 # Allgemeine openvpn-Ereignisbehandlung
43 log_openvpn_events_and_disconnect_if_requested "mig-openvpn-connections"
44 
45 # Sonder-Aktionen für mig-Verbindungen
46 case "$script_type" in
47  up)
48  "$IP_BIN" route add default via "$route_vpn_gateway" table "$ROUTING_TABLE_ON_UPLINK" || true
49  # verhindere das Routing von explizit unerwuenschtem Verkehr ueber den Nutzer-Tunnel (falls die Regel noch nicht existiert)
50  "$IP_BIN" route add throw default table "$ROUTING_TABLE_ON_UPLINK" tos "$TOS_NON_TUNNEL" 2>/dev/null || true
51  get_servers_from_dhcp_options >"$MIG_PREFERRED_SERVERS_FILE"
54  ;;
55  down)
56  # löse einen baldigen Verbindungsaufbau aus
59  && { echo "on-function update_mig_connection_status" | schedule_task; }
60  true
61  rm -f "$MIG_PREFERRED_SERVERS_FILE"
64  ;;
65 esac 2>&1 | logger -t mig-updown
66 
67 exit 0
has_mig_openvpn_credentials()
Prüft, ob der Nutzer bereits einen Schlüssel und ein Zertifikat angelegt hat.
Definition: on-openvpn.sh:14
update_ntp_servers()
Übertrage die Liste der als NTP-Dienst announcierten Server in die sysntpd-Konfiguration.
Definition: core.sh:62
update_dns_servers()
Übertrage die Liste der als DNS-Dienst announcierten Server in die dnsmasq-Konfiguration.
Definition: core.sh:55
log_openvpn_events_and_disconnect_if_requested()
Allgemeines Ereignisbehandlung fuer openvpn-Verbindungen: Logging und eventuell Dienst-Bereinigung (n...
Definition: openvpn.sh:59
set eu grep root::etc shadow exit if which chpasswd dev null
Definition: on-password:12
done
Definition: core.sh:81
is_on_module_installed_and_enabled(module)
Pruefe ob ein Modul sowohl installiert, als auch aktiv ist.
Definition: modules.sh:9