From 7ea288f93a2a07c53d3e6157a48693d1ec3164e3 Mon Sep 17 00:00:00 2001 From: bolvan Date: Tue, 14 May 2019 20:49:33 +0300 Subject: [PATCH] openwrt init : more no running at boot hunting --- docs/readme.txt | 7 +++++-- init.d/openwrt/90-zapret | 7 +++++++ install_easy.sh | 14 ++++++++++++-- uninstall_easy.sh | 10 ++++++++-- 4 files changed, 32 insertions(+), 6 deletions(-) create mode 100644 init.d/openwrt/90-zapret diff --git a/docs/readme.txt b/docs/readme.txt index 9b222ae..2cd6a1b 100644 --- a/docs/readme.txt +++ b/docs/readme.txt @@ -607,6 +607,8 @@ ipset можно выкинуть, если не будем пользовать Создать ссылку на скрипт запуска : ln -fs /opt/zapret/init.d/openwrt/zapret /etc/init.d +Создать ссылку на скрипт события поднятия интерфейса : + ln -fs /opt/zapret/init.d/openwrt/90-zapret /etc/hotplug.d/iface Настроить параметры согласно разделу "Выбор параметров". @@ -619,9 +621,10 @@ ipset можно выкинуть, если не будем пользовать crontab -e Создать строчку "0 12 */2 * * /opt/zapret/ipset/get_config.sh" -Включить автозапуск службы и запустить ее : - /etc/init.d/zapret enable +Запустить службу : /etc/init.d/zapret start +ПРИМЕЧАНИЕ : не нужно включать службу командой enable. Ее запускает скрипт из /etc/hotplug.d/iface +после поднятия интерфейса lan. Если не включен параметр DISABLE_IPV4 : В зависимости от выбранного в файле config MODE создать ссылку на нужный файл настроек фаервола : diff --git a/init.d/openwrt/90-zapret b/init.d/openwrt/90-zapret new file mode 100644 index 0000000..94cfe95 --- /dev/null +++ b/init.d/openwrt/90-zapret @@ -0,0 +1,7 @@ +#!/bin/sh + +ZAPRET=/etc/init.d/zapret +[ -x "$ZAPRET" ] && [ "$INTERFACE" = "lan" ] && { + [ "$ACTION" = "ifup" ] && $ZAPRET start + [ "$ACTION" = "ifdown" ] && $ZAPRET stop +} diff --git a/install_easy.sh b/install_easy.sh index eb17ac8..b94d1b2 100755 --- a/install_easy.sh +++ b/install_easy.sh @@ -646,8 +646,16 @@ remove_openwrt_firewall() openwrt_fw_section_del 6 } +install_openwrt_iface_hook() +{ + echo \* installing ifup hook + + ln -fs "$OPENWRT_IFACE_HOOK" /etc/hotplug.d/iface +} + install_sysv_init() { + # $1 - "0"=disable echo \* installing init script [ -x "$INIT_SCRIPT" ] && { @@ -655,7 +663,7 @@ install_sysv_init() "$INIT_SCRIPT" disable } ln -fs "$INIT_SCRIPT_SRC" "$INIT_SCRIPT" - "$INIT_SCRIPT" enable + [ "$1" != "0" ] && "$INIT_SCRIPT" enable } service_start_sysv() @@ -675,13 +683,14 @@ install_openwrt() INIT_SCRIPT_SRC=$EXEDIR/init.d/openwrt/zapret FW_SCRIPT_SRC_DIR=$EXEDIR/init.d/openwrt/firewall.zapret OPENWRT_FW_INCLUDE=/etc/firewall.zapret + OPENWRT_IFACE_HOOK=$EXEDIR/init.d/openwrt/90-zapret check_location copy_minimal select_ipv6 check_prerequisites_openwrt install_binaries ask_config - install_sysv_init + install_sysv_init 0 # can be previous firewall preventing access remove_openwrt_firewall restart_openwrt_firewall @@ -689,6 +698,7 @@ install_openwrt() # router system : works 24/7. night is the best time crontab_add 0 6 service_start_sysv + install_openwrt_iface_hook install_openwrt_firewall_all restart_openwrt_firewall } diff --git a/uninstall_easy.sh b/uninstall_easy.sh index 25924bd..e314326 100755 --- a/uninstall_easy.sh +++ b/uninstall_easy.sh @@ -109,7 +109,6 @@ timer_remove_systemd() remove_systemd() { - INIT_SCRIPT_SRC=$EXEDIR/init.d/sysv/zapret INIT_SCRIPT=/etc/init.d/zapret service_stop_systemd @@ -171,6 +170,13 @@ restart_openwrt_firewall() } } +remove_openwrt_iface_hook() +{ + echo \* removing ifup hook + + rm -f /etc/hotplug.d/iface/??-zapret +} + service_remove_sysv() { @@ -185,13 +191,13 @@ service_remove_sysv() remove_openwrt() { - INIT_SCRIPT_SRC=$EXEDIR/init.d/openwrt/zapret INIT_SCRIPT=/etc/init.d/zapret OPENWRT_FW_INCLUDE=/etc/firewall.zapret remove_openwrt_firewall restart_openwrt_firewall service_remove_sysv + remove_openwrt_iface_hook crontab_del }