5 # Copyright 2010 Rene Ejury <opennet@absorb.it> 6 # Copyright 2015 Lars Kruse <devel@sumpfralle.de> 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 12 # http://www.apache.org/licenses/LICENSE-2.0 16 # shellcheck source=opennet/packages/on-core/files/usr/lib/opennet/on-helper.sh 17 .
"${IPKG_INSTROOT:-}/usr/lib/opennet/on-helper.sh" 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:-}}
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 33 get_servers_from_dhcp_options() {
37 # prüfe ob die "foreign_option_XXX"-Variable gesetzt ist 38 option=$(eval echo
"\${foreign_option_$index:-}")
39 [ -z
"$option" ] &&
break 42 done | awk
'{ if ($1 == "dhcp-option") print $2,$3 }' 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)
50 # Allgemeine openvpn-Ereignisbehandlung 53 # Sonder-Aktionen für mig-Verbindungen 54 case "$script_type" in
56 "$IP_BIN" route replace
default via
"$route_vpn_gateway" table
"$ROUTING_TABLE_ON_UPLINK" ||
true 57 # verhindere das Routing von explizit unerwuenschtem Verkehr ueber den Nutzer-Tunnel (falls die Regel noch nicht existiert)
58 "$IP_BIN" route replace
throw default table
"$ROUTING_TABLE_ON_UPLINK" tos
"$TOS_NON_TUNNEL" 2>/dev/
null ||
true 59 get_servers_from_dhcp_options >
"$MIG_PREFERRED_SERVERS_FILE" 63 # "route_vpn_gateway" ist eigentlich sinnvoller - aber er liefert keine Ping-Antwort 64 add_monitoring_multiping_host
"$route_network_1" "gateway" 65 add_monitoring_multiping_host
"$trusted_ip" "ugw" 69 # löse einen baldigen Verbindungsaufbau aus
72 && { echo
"on-function update_mig_connection_status" | schedule_task; }
74 rm -f
"$MIG_PREFERRED_SERVERS_FILE" 77 # die monitoring-Host-Eintraege (siehe oben) muessen nicht entfernt werden - dies geschieht bei der Paket-Deinstallation 79 esac 2>&1 | logger -t mig-updown
has_mig_openvpn_credentials()
Prüft, ob der Nutzer bereits einen Schlüssel und ein Zertifikat angelegt hat.
on core on function update_ntp_servers on function update_dns_servers
Übertrage die Liste der als DNS-Dienst announcierten Server in die dnsmasq-Konfiguration.
update_ntp_servers()
Übertrage die Liste der als NTP-Dienst announcierten Server in die sysntpd-Konfiguration.
log_openvpn_events_and_disconnect_if_requested()
Allgemeines Ereignisbehandlung fuer openvpn-Verbindungen: Logging und eventuell Dienst-Bereinigung (n...
set eu grep root::etc shadow exit if command v chpasswd dev null
is_on_module_installed_and_enabled(module)
Pruefe ob ein Modul sowohl installiert, als auch aktiv ist.