3 # Dieses Skript enthaelt Funktionen, die fuer Updates altes Firmware-Versionen notwendig sind.
4 # Alle Funktionen muessen idempotent sein.
6 # Dieses Skript wird nach jedem Booten ausgeführt.
7 # Damit ermöglichen wir das Laden eines alten Backups auf eine neue Firmware.
8 # Ausserdem wird dieses Skript als Teil des uci-defaults-Konzepts beim ersten Booten nach einer
9 # Aktualisierung ausgefuehrt. Dies ist erforderlich, um alle notwendigen Vorbereitungen fuer
10 # die erste Ausfuehrung des "on-core"-Init-Skripts zu treffen (z.B. crontab-Einrichtung).
14 .
"${IPKG_INSTROOT:-}/usr/lib/opennet/on-helper.sh"
17 # bis Version v0.4-5: openvpn.opennet_user.comp_lzo=1
18 # seit Version v0.5 muss die Einstellung einen der folgenden Werte haben: yes/no/adaptive
19 # bzw. seit Version v0.5 gibt es Sektion nicht mehr (openvpn.opennet_user)
21 # ~# uci show | grep lzo
22 # on-usergw.opennet_ugw.comp_lzo=1
23 # openvpn.opennet_user.comp_lzo=1
24 # openvpn.opennet_ugw_erina_on_i_de.comp_lzo=1
25 # openvpn.opennet_ugw_subaru_on_i_de.comp_lzo=1
26 coerce_openvpn_comp_lzo() {
29 # wir wissen nicht genau, ob on-usergw und openvpn existiert - also lieber vorsichtig fragen
30 (uci -q show openvpn; uci -q show on-usergw) | grep
"\.comp_lzo=[01]$" |
while read line;
do
32 echo
"$line" | grep -q
"1$" && new_value=yes
33 key=$(echo
"$line" | cut -f 1 -
d =)
34 uci set
"$key=$new_value"
36 if [ -n
"$(uci -q changes openvpn)" -o -n
"$(uci changes | grep "^on-usergw\.
")" ]; then
37 msg_info "MIGRATION: coerce_openvpn_comp_lzo"
38 uci changes | grep -q
"^on-usergw\." && uci commit on-usergw
44 # bis Version v0.4-5: die Opennet-Firmware hat die /etc/passwd durch einen Symlink auf /etc/etc_preset/passwd ersetzt
45 # Bei einem Update wird das symlink-Ziel ersetzt und somit gibt es keine Nutzerdatenbank mehr.
46 # Dies verhindert jeden telnet/ssh-Login-Versuch. Lediglich das Web-Interface ist nutzbar.
47 fix_passwd_broken_symlink() {
48 local target=/etc/passwd
49 if [ -h
"$target" -a ! -e
"$target" ]; then
50 msg_info "MIGRATION: fix_passwd_broken_symlink"
52 # ein huebscheres here-Document mit Tabulator-Bereinigung ("<<-") funktioniert leider nicht mit busybox
54 root:x:0:0:root:/root:/bin/ash
55 daemon:*:1:1:daemon:/var:/bin/
false
56 ftp:*:55:55:ftp:/home/ftp:/bin/
false
57 network:*:101:101:network:/var:/bin/
false
58 nobody:*:65534:65534:nobody:/var:/bin/
false
60 # Ein paar Dienste schlugen aufgrund der fehlenden Nutzerdatenbank fehl.
61 # Ein reboot waere schoen - aber kann zukuenftig eventuell irgendwann zu einer Schleife fuehren.
62 # Also: manuell einzelne Dienste neu starten.
63 /etc/init.d/dnsmasq restart
68 # bis Version v0.4-5 war /etc/rc.local ein Symlink nach /etc/etc_presets/rc.local
69 # In den folgenden Versionen gibt es kein /etc/etc_presets/ mehr.
70 # Der Symlink kann dann durch den ueblichen Kommentar-Text ersetzt werden.
71 fix_rclocal_broken_symlink() {
72 local target=/etc/rc.local
73 # die Datei existiert, bzw. der Symlink zeigt nicht ins Leere
74 [ -e
"$target" ] &&
return 0
75 # falls die Datei kein Symlink ist, dann fassen wir sie lieber nicht an
76 [ -h
"$target" ] ||
return 0
77 # die Datei ist ein kaputter Symlink - wir ersetzen sie
79 # ein huebscheres here-Document mit Tabulator-Bereinigung ("<<-") funktioniert leider nicht mit busybox
81 # Put your custom commands here that should be executed once
82 # the system init finished. By default this file does nothing.
91 # wandele Leerzeichen-getrennte "option"-Eintraege in "list"-Eintraege um
92 _convert_uci_option_to_list() {
95 local filename=
"/etc/config/$config"
96 # Zeilen der Form " option $optname 'foo bar'" werden in mehrere " option $optname '$ITEM'"-Zeilen verwandelt
98 if (($1 == "option") && ($2 == "'$optname
'")) {
102 printf
" list %s '"'%s'"'\n", $2, $i
107 }}
' | update_file_if_changed "$filename" && apply_changes "$config"
112 # Gelegentlich ändert openwrt die Definition einzelner Variablen. Dies müssen wir via Migration nachbereiten.
113 migrate_uci_definition_changes() {
114 # vor Barrier Breaker war "firewall.ZONE.network" eine "option" - anschliessed wurde es zur "list"
115 _convert_uci_option_to_list "firewall" "network"
119 # bis Version v0.4-5: "firewall reload" fuehrte auch die "include"-Dateien aus (z.B. /etc/firewall.opennet)
120 # Ab Version v0.5 verwenden wir diese Datei nicht mehr.
122 # ~# uci show firewall | grep @include
123 # firewall.@include[0]=include
124 # firewall.@include[0].path=/etc/firewall.opennet
125 # firewall.@include[1]=include
126 # firewall.@include[1].path=/etc/firewall.user
127 fix_firewall_reload() {
128 local filename=/etc/firewall.opennet
130 find_all_uci_sections "firewall" "include" | while read uci_prefix; do
131 [ "$(uci_get "${uci_prefix}.path")" != "$filename" ] && continue
132 # gesamte "include"-Abzweigung loeschen
133 uci_delete "$uci_prefix"
134 apply_changes "firewall"
142 # bis Version 0.4-5 sind die folgenden beiden Firewall-Einstellungen gesetzt:
143 # firewall.zone_on_vpn.forward=ACCEPT
144 # firewall.zone_on_mesh.forward=ACCEPT
145 # Diese erlauben die Paketweiterleitung aus unerwuenschten Netzen heraus.
146 disable_unwanted_forward() {
149 find_all_uci_sections firewall zone "forward=ACCEPT" | while read uci_prefix; do
150 zone_name=$(uci_get "${uci_prefix}.name")
151 # eventuell ist ZONE_TUNNEL nicht definiert (falls on-openvpn nicht installiert ist)
152 if [ "$zone_name" = "$ZONE_MESH" -o "$zone_name" = "${ZONE_TUNNEL:-on_vpn}" ]; then
153 uci set "${uci_prefix}.forward=REJECT" && echo "$uci_prefix"
156 done | grep -q . && {
157 # sicherstellen, dass die als Ersatz fuer "forward=ACCEPT" noetige Weiterleitung existiert
158 add_zone_forward "$ZONE_MESH" "$ZONE_MESH"
159 apply_changes "firewall"
165 # bis Version 0.4-5 wurden die folgenden Einstellungen fuer die Reihenfolge der VPN-Gateways verwendet:
166 # * on-openvpn.gateways.vpn_sort_criteria=metric|etx
167 # * on-openvpn.gateways.autosearch=on|off
168 # Die darauffolgenden Firrmware-Versionen verwenden stattdessen die Einstellung 'on-core.settings.service_sorting
'.
169 transfer_vpn_sort_criteria_and_autosearch() {
173 sort_criteria=$(uci_get on-openvpn.gateways.vpn_sort_criteria)
174 autosearch=$(uci_get on-openvpn.gateways.autosearch)
175 if [ -z "$autosearch" -a -z "$sort_criteria" ]; then
176 # die Einstellungen wurden bereits uebertragen
178 elif [ "$autosearch" = "off" ]; then
180 elif [ "$sort_criteria" = "metric" ]; then
185 uci set "on-core.settings.service_sorting=$result"
189 # bis Version 0.4-5 verwendeten wir vollstaendige uci-Sektionen fuer die VPN-Server
190 # z.B. openvpn.opennet_user
191 remove_tunnel_openvpn_settings() {
192 local uci_prefix=openvpn.opennet_user
194 # Abbruch falls die Einstellungen bereits entfernt wurden
195 [ -z "$(uci_get "$uci_prefix")" ] && return
196 uci delete "$uci_prefix"
201 # bis Version 0.4-5 wurde folgende Zeile ausgefuehrt:
202 # lua -e "require('luci.model.opennet.on_usergw
') upgrade()" 2>/dev/null
203 # Dadurch wurden openvpn-uci-Konfigurationen (z.B. openvpn.opennet_ugw_erina_on_i_de) nach on-usergw.opennet_ugw* übertragen.
204 # Da die openvpn-Konfigurationen nun ein anderes Namensformat haben, loeschen wir sie.
205 remove_usergw_openvpn_configs() {
207 find_all_uci_sections "openvpn" "openvpn" | grep "^openvpn\.opennet_ugw_" | while read uci_prefix; do
208 uci delete "$uci_prefix"
214 # Die uci-Sektion on-core.defaults und on-core.openssl wurde nur bis v0.4-5 verwendet.
215 # Anschliessend wanderten diese Einstellungen nach /usr/share/opennet/core.defaults.
216 # Ausserdem sind die folgenden Schluessel nach v0.4-5 nicht mehr in Verwendung:
217 # on-openvpn.gateways.searchmask
218 # on-openvpn.gateways.gw_dns
219 # on-openvpn.gateways.gw_ntp
220 # on-openvpn.gateways.better_gw
221 # on-openvpn.gateways.autosearch
222 # on-openvpn.gateways.vpn_nonworking_timeout
223 # on-openvpn.gateways.vpn_bettergateway_timeout
224 # on-openvpn.gateways.vpn_sort_criteria
225 # on-openvpn.gateways.vpn_recheck_age
226 remove_obsolete_on_core_settings() {
231 on-openvpn.gateways.gateways.searchmask \
232 on-openvpn.gateways.gateways.gw_dns \
233 on-openvpn.gateways.gateways.gw_ntp \
234 on-openvpn.gateways.gateways.better_gw \
235 on-openvpn.gateways.gateways.autosearch \
236 on-openvpn.gateways.gateways.vpn_nonworking_timeout \
237 on-openvpn.gateways.gateways.vpn_bettergateway_timeout \
238 on-openvpn.gateways.gateways.vpn_sort_criteria \
239 on-openvpn.gateways.gateways.vpn_recheck_age; do
240 [ -n "$(uci_get "$key")" ] && uci_delete "$key" || true
246 # bis Version 0.4-5 wurde die Variable "on-usergw.ugwng_hna_mask" verwendet.
247 remove_obsolete_usergw_settings() {
248 [ -n "$(uci_get "on-usergw.ugwng_hna_mask")" ] && uci delete "on-usergw.ugwng_hna_mask"
253 # Die uci-Einstellungen "on-openvpn.gate_XY.*" waren bis Version 0.4-5 in Verwendung.
254 # In den darauffolgenden Firmware-Versionen werden diese Informationen im Dateisystem gespeichert.
255 # Im Zweifelsfall (z.B. falls gerade keine Verbindung zum mesh existiert), werden die
256 # zu uebertragenden Informationen (die Offsets der Gateways oder ihre manuelle Reihenfolge) verworfen.
257 transfer_gateway_uci_settings() {
263 find_all_uci_sections on-openvpn gateway | while read uci_prefix; do
264 host=$(uci_get "${uci_prefix}.ipaddr")
265 offset=$(uci_get "${uci_prefix}.etx_offset")
266 rank="${uci_prefix#on-openvpn.gate_}"
267 # ermittle alle passenden Dienste dieses Hosts (es koennen mehrere Dienste pro Host vorhanden sein)
268 get_services "gw" | filter_services_by_value "host" "$host" | while read service_name; do
269 # Offset fuer automatische Sortierung uebertragen
270 [ -n "$offset" ] && set_service_value "$service_name" "offset" "$offset"
271 # Rang fuer manuelle Sortierung uebertragen
272 [ -n "$rank" -a "$rank" != "$uci_prefix" ] && set_service_value "$service_name" "rank" "$rank" || true
274 uci_delete "$uci_prefix"
276 uci_delete on-openvpn.gateways
280 # Bis Version 0.4-5 wurde die Datei /etc/crontabs/root einfach ueberschrieben (bzw. erzeugt).
281 # In Version 0.5 wurde die busybox-Funktion "run-parts" verwendet. Zugunsten der separaten
282 # Paketierung wollen wir dies nicht mehr verwenden.
283 # Fortan werden die Eintraege manuell hinzugefuegt (siehe /etc/uci-defaults/on-core-init).
284 remove_crontab_entries() {
285 local crontab_file=/etc/crontabs/root
286 [ -e "$crontab_file" ] || return 0
287 # Verwendung des alten shell-Skripts
288 sed -i '/\/usr\/bin\/run-parts\.sh/
d' "$crontab_file"
289 # Verwendung der busybox-Funktion
290 sed -i '/\trun-parts /
d' "$crontab_file"
294 # Bis Version 0.4-5 wurde der Port des httpinfo-Plugins mit der Variable "olsrd.@LoadPlugin[1].Port" festgelegt.
295 # uci-typisch sind jedoch Attribute mit Kleinbuchstaben.
296 rename_olsrd_port_to_port() {
299 find_all_uci_sections olsrd LoadPlugin | while read uci_prefix; do
300 library="$(uci_get "${uci_prefix}.library")"
301 # falsche Bibliothek?
302 [ "$library" != "${library#olsrd_httpinfo}" ] || continue
303 if [ -n "$(uci_get "${uci_prefix}.Port")" ]; then
304 # Wert von "Port" nach "port" uebertragen; "Port" loeschen
305 uci set "${uci_prefix}.port=$(uci_get "${uci_prefix}.Port")"
306 uci_delete "${uci_prefix}.Port"
313 # Bis Version 0.4-5 gab es anscheinend die veraltete "mtu_fix"-Option in firewall-Weiterleitungen.
314 # Seit OpenWRT 8.09.2 befindet sich diese Option jedoch nicht mehr in den Weiterleitungen, sondern in der Zielzone.
315 move_mtu_fix_to_target_zone() {
319 local zone_uci_prefix
320 find_all_uci_sections firewall forwarding | while read uci_prefix; do
321 mtu_value=$(uci_get "${uci_prefix}.mtu_fix")
322 # leer? Es gibt nichts zu uebertragen ...
323 [ -z "$mtu_value" ] && continue
324 target_zone=$(uci_get "${uci_prefix}.dest")
325 zone_uci_prefix=$(find_first_uci_section firewall zone "name=$target_zone")
326 # mtu-Wert uebertragen
327 [ -n "$zone_uci_prefix" ] && uci set "${zone_uci_prefix}.mtu_fix=$mtu_value"
328 # alten Wert loeschen
329 uci_delete "${uci_prefix}.mtu_fix"
331 apply_changes firewall
335 # Bis Version 0.4-5 verwendeten wir ntpclient anstelle des integrierten ntpd
336 # Die alten Einstellungen koennen also entfernt werden, da die Hosts automatisch gewaehlt werden.
337 remove_ntpclient_config() {
338 # keine config-Datei? Fertig ...
339 [ -e /etc/config/ntpclient ] || return 0
340 # ntpclient ist installiert? Konfiguration belassen ...
341 is_package_installed "ntpclient" && return 0
342 rm -f /etc/config/ntpclient
346 ## @fn rename_firewall_zone()
347 ## @brief Ändere den Namen einer Firewall-Zone (definiert im alten Barrier-Breaker-Stil).
348 ## @param old_zone Bisheriger Name der Firewall-Zone
349 ## @param new_zone Zukünftiger Name der Firewall-Zone
350 ## @details Alle abhängigen Firewall-Regeln (offene Ports, Weiterleitungen, Umleitungen) werden auf die neue Zone umgelenkt.
351 ## Die Umbenennung ist auf alte "benannte" Firewll-Zonen ausgelegt. Die Zone wird in eine neue "unbenannte" verwandelt.
352 rename_firewall_zone() {
353 trap "error_trap rename_firewall_zone '$*
'" $GUARD_TRAPS
358 uci_prefix=$(find_first_uci_section firewall zone "name=$old_zone")
359 # die Zone existiert nicht (mehr)
360 [ -z "$uci_prefix" ] && return 0
361 # "name"-Attribut der alten Zone neu setzen
362 uci set "${uci_prefix}.name=$new_zone"
363 # benannte Zone in eine unbenannte umwandeln
364 sed -i "s/^config zone 'zone_$old_zone
'$/config zone/g" /etc/config/firewall
365 # aktualisiere alle Forwardings, Redirects und Regeln
366 for section in "forwarding" "redirect" "rule"; do
367 for key in "src" "dest"; do
368 find_all_uci_sections firewall "$section" "${key}=$old_zone" | while read uci_prefix; do
369 uci set "${uci_prefix}.${key}=$new_zone"
373 apply_changes firewall
377 ## @fn move_wifidog_networks_to_captive_portal()
378 ## @brief Änderung des Netzwerk-Namens für offene Zugangspunkte von "free" zu "on_free".
379 ## @details Bis v0.4-5 hieß das wifidog-Netzwerk "free". Ab v0.5.2 heißt es "on_free".
380 move_wifidog_networks_to_captive_portal() {
381 local old_name="free"
382 local new_name="${NETWORK_FREE:-}"
383 # das on-captive-portal-Paket ist nicht installiert - keine Aenderungen
384 [ -z "$new_name" ] && return 0
387 # das alte Interface existiert nicht? Weitermachen ...
388 [ -z "$(uci_get "network.$old_name")" ] && return 0
389 # neues Interface anlegen, falls es noch nicht existieren sollte
390 # (das migrations-Skript wird vor dem on-captive-portal-Skript via uci-defaults ausgefuehrt)
391 configure_free_network
392 # die nicht-wifi-Netzwerke übertragen
393 old_interfaces=$(uci_get "network.${old_name}.ifname")
394 # das Interface muss immer angegeben sein (oder "none")
395 uci set "network.${new_name}.ifname=${old_interfaces:-none}"
396 # alle wifi-Interfaces verschieben
397 find_all_uci_sections "wireless" "wifi-iface" "network=$old_name" | while read uci_prefix; do
398 uci set "${uci_prefix}.network=$new_name"
400 # fertig: wir ignorieren das Bridge-Attribute - es ist nicht mehr erforderlich (und selten noetig)
401 uci_delete "network.$old_name"
402 apply_changes network wireless
406 ## @fn remove_wifidog_alias_interface()
407 ## @brief Entferne ein Alias-Interface, das für das wifidog-Setup verwendet wurde.
408 ## @details Bis Version 0.4-5 wurde wifidog mit einem lokalen Alias-Interface konfiguriert, um
409 ## die Umlenkung von Paketen via REDIRECT zu ermöglichen.
410 remove_wifidog_alias_interface() {
412 find_all_uci_sections "network" "alias" "interface=free" | while read uci_prefix; do
413 uci_delete "$uci_prefix"
415 apply_changes network
419 ## @fn remove_opennet_ca_certificates_from_previous_location()
420 ## @brief Löschung alter CA-Dateien an nicht mehr verwendeten Orten.
421 ## @details Bis Version v0.5.1 wurden die CA-Zertifikate für die OpenVPN-Verbindungen
422 ## im openvpn-Verzeichnis neben den persönlichen Schlüsseln und Zertifikaten gespeichert.
423 ## Da diese Verzeichnisse jedoch von luci als zu erhaltender Bereich bei einem Upgrade
424 ## konfiguriert ist (luci.flash_keep.openvpn=/etc/openvpn), blieben diese Dateien bei einem
425 ## Upgrade der Firmware unverändert. Der Austausch eines CA-Zertifikats war somit nicht
427 ## Mit der Verschiebung aller Opennet-Zertifikate an einen nicht-zu-sichernden Ort
428 ## (/etc/ssl/certs/opennet-initiative.de) können nun die alten CA-Zertifikate an ihrem ursprünglichen
429 ## Ort gelöscht werden.
430 ## Folgende Orte sind betroffen:
431 ## /etc/openvpn/opennet_user/opennet-ca.crt
432 ## /etc/openvpn/opennet_ugw/opennet-ca_ugws.crt
433 ## /etc/openvpn/opennet_vpntest/opennet-ca.crt
434 remove_opennet_ca_certificates_from_previous_location() {
435 rm -f /etc/openvpn/opennet_user/opennet-ca.crt
436 rm -f /etc/openvpn/opennet_ugw/opennet-ca_ugws.crt
437 rm -f /etc/openvpn/opennet_vpntest/opennet-ca.crt
441 ## @fn remove_openvpn_vpntest_keydir()
442 ## @brief Dieses Verzeichnis ist mindestens seit v0.5.2 nicht mehr in Nutzung.
443 remove_openvpn_vpntest_keydir() {
444 rm -rf /etc/openvpn/vpntest/
448 ## @fn remove_wifidog_config()
449 ## @brief Lösche die nicht mehr verwendete Konfiguration von "wifidog" und "on-wifidog".
450 ## @details Die Konfiguration enthält keine relevanten Inhalte mehr, die zu übertragen wären.
451 remove_wifidog_config() {
452 rm -f /etc/config/on-wifidog
453 uci_delete luci.flash_keep.wifidog
454 rm -f /etc/wifidog.conf
458 ## @fn enable_uhttpd_redirect()
459 ## @brief Aktiviere die automatische https-Weiterleitung
460 ## @details Bei einer Aktualisierung von v0.5.1 auf v0.5.2 fehlt diese Einstellung andernfalls, da
461 ## zuvor keine https-Unterstützung in der Firmware aktiviert war.
462 enable_uhttpd_redirect() {
463 local uci_key="uhttpd.main.redirect_https"
464 [ -n "$(uci_get "$uci_key")" ] && return 0
471 ## @fn guess_previously_used_modules()
472 ## @brief Versuche nach der Aktualisierung von einer Version vor v0.5.2 die zuvor verwendeten Module zu erraten.
473 ## @details Die Firmware-Versionen vor v0.5.2 enthielten alle Module vorinstalliert. Ab v0.5.2 werden Module bei
474 ## Bedarf nachinstalliert. Beim Übergang von Komplett- zu Bedarfsinstallation versuchen wir die vorherige
475 ## Nutzungsform zu erraten und die dazu passende Modulliste zu speichern.
476 guess_previously_used_modules() {
477 # falls bereits etwas in der uci-Sektion gespeichert wurde, ist keine Nachbereitung noetig
478 [ -n "$(uci -q show "on-core.modules")" ] && return 0
480 uci set "on-core.modules=modules"
481 # prüfe ob relevante Dateien vorhanden sind, die die jeweiligen Module benutzen würden
482 [ -e "/etc/openvpn/opennet_user/on_aps.crt" ] \
483 && uci_add_list "on-core.modules.installed" "on-openvpn"
484 [ -e "/etc/openvpn/opennet_ugw/on_aps.crt" ] \
485 && uci_add_list "on-core.modules.installed" "on-usergw"
486 [ -e "/etc/wifidog.conf" ] \
487 && uci_add_list "on-core.modules.installed" "on-captive-portal"
488 [ -e "/etc/xinetd.d/munin" ] \
489 && uci_add_list "on-core.modules.installed" "on-monitoring"
494 coerce_openvpn_comp_lzo
495 fix_passwd_broken_symlink
496 fix_rclocal_broken_symlink
497 migrate_uci_definition_changes
499 transfer_vpn_sort_criteria_and_autosearch
500 remove_tunnel_openvpn_settings
501 remove_obsolete_on_core_settings
502 remove_obsolete_usergw_settings
503 remove_usergw_openvpn_configs
504 remove_crontab_entries
505 rename_olsrd_port_to_port
506 remove_ntpclient_config
508 # Bis Version 0.4-5 hiess die Opennet-Mesh-Firewall-Zone "opennet".
509 # Mit Version 0.5 wurde die Zone in "on_mesh" umbenannt.
510 rename_firewall_zone "opennet" "$ZONE_MESH"
512 # mit Version 0.5.2 wird wifidog durch on-captive-portal ersetzt
513 move_wifidog_networks_to_captive_portal
514 remove_wifidog_alias_interface
515 # Bis Version 0.4-5 hieß die wifidog-Zone "free".
516 # Mit Version 0.5.2 wurde die Zone in "on_free" umbenannt.
517 # Da die alte Zone falsch konfiguriert war ("FORWARD=yes"), werfen wir sie lieber einfach weg.
518 delete_firewall_zone "free"
519 apply_changes firewall
521 disable_unwanted_forward
522 move_mtu_fix_to_target_zone
524 # Bis Version 0.4-5 wurden ins lokale Netz eingehende Pakete (z.B. Portweiterleitungen) via SNAT maskiert.
525 # siehe https://dev.on-i.de/ticket/73
526 uci_delete firewall.zone_local.masq
527 apply_changes firewall
529 # Bis Version 0.4-5 hiess die lokale Zone "local" - bei barrier breaker heisst sie nun "lan"
530 rename_firewall_zone "local" "$ZONE_LOCAL"
532 # Diese Aktion startet mit 10 Minuten Verzoegerung im Hintergrund, um vorher ein Empfangen der
533 # olsrd-Announcements zu ermoeglichen. Falls keine alten Gateway-Definitionen vorhanden sind,
534 # ist dies nicht noetig.
535 [ -n "$(uci_get on-openvpn.gateway)" ] && run_delayed_in_background 600 transfer_gateway_uci_settings
537 remove_opennet_ca_certificates_from_previous_location
538 remove_openvpn_vpntest_keydir
539 # die Pruefung muss vor der Loeschung der wifidog-Konfiguration stattfinden
540 guess_previously_used_modules
541 remove_wifidog_config
542 enable_uhttpd_redirect
msg_info(message)
Informationen und Fehlermeldungen ins syslog schreiben.
set eu on function print_services services log for dir in etc on services d var on services volatile d