mirror of
https://github.com/bol-van/zapret.git
synced 2025-04-19 21:42:59 +03:00
move to native systemd. use links , no copy
This commit is contained in:
parent
cd059aefea
commit
73bf37ee8c
@ -118,3 +118,13 @@ v23
|
|||||||
major init system rewrite
|
major init system rewrite
|
||||||
openwrt : separate firewall include /etc/firewall.zapret
|
openwrt : separate firewall include /etc/firewall.zapret
|
||||||
install_easy.sh : easy setup on openwrt, debian, ubuntu, centos, fedora, opensuse
|
install_easy.sh : easy setup on openwrt, debian, ubuntu, centos, fedora, opensuse
|
||||||
|
|
||||||
|
v24
|
||||||
|
|
||||||
|
separate config from init scripts
|
||||||
|
gzip support in ipset/*.sh and tpws
|
||||||
|
|
||||||
|
v25
|
||||||
|
|
||||||
|
init : move to native systemd units
|
||||||
|
use links to units, init scripts and firewall includes, no more copying
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
zapret v.24
|
zapret v.25
|
||||||
|
|
||||||
Для чего это надо
|
Для чего это надо
|
||||||
-----------------
|
-----------------
|
||||||
@ -281,12 +281,12 @@ TPWS_OPT_HTTPS="--split-pos=3"
|
|||||||
/opt/zapret/install_bin.sh
|
/opt/zapret/install_bin.sh
|
||||||
АЛЬТЕРНАТИВА : зайти в tpws,nfq,ip2net,mdig, в каждом выполнить make. Получите динамические бинарики под вашу ось.
|
АЛЬТЕРНАТИВА : зайти в tpws,nfq,ip2net,mdig, в каждом выполнить make. Получите динамические бинарики под вашу ось.
|
||||||
|
|
||||||
Скопировать скрипт запуска :
|
|
||||||
cp /opt/zapret/init.d/sysv/zapret /etc/init.d
|
|
||||||
|
|
||||||
Настроить параметры согласно разделу "Выбор параметров".
|
Настроить параметры согласно разделу "Выбор параметров".
|
||||||
|
|
||||||
Принять изменения скрипта в systemd :
|
Создать ссылку на service unit в systemd :
|
||||||
|
ln -fs /opt/zapret/init.d/systemd/zapret.service /lib/systemd/system
|
||||||
|
|
||||||
|
Принять изменения в systemd :
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
|
|
||||||
Включить автозапуск службы :
|
Включить автозапуск службы :
|
||||||
@ -342,7 +342,22 @@ OpenSUSE
|
|||||||
Новые OpenSUSE основаны на systemd и менеджере пакетов zypper.
|
Новые OpenSUSE основаны на systemd и менеджере пакетов zypper.
|
||||||
|
|
||||||
Установить пакеты :
|
Установить пакеты :
|
||||||
zypper install curl ipset
|
zypper --non-interactive install curl ipset
|
||||||
|
|
||||||
|
Далее все аналогично debian, кроме расположения systemd.
|
||||||
|
В opensuse он находится не в /lib/systemd, а в /usr/lib/systemd.
|
||||||
|
Правильная команда будет :
|
||||||
|
|
||||||
|
ln -fs /opt/zapret/init.d/systemd/zapret.service /usr/lib/systemd/system
|
||||||
|
|
||||||
|
Arch linux
|
||||||
|
----------
|
||||||
|
|
||||||
|
Построен на базе systemd. По умолчанию отсутствует cron.
|
||||||
|
|
||||||
|
Установить пакеты :
|
||||||
|
pacman -Syy
|
||||||
|
pacman --noconfirm -S ipset curl cronie
|
||||||
|
|
||||||
Далее все аналогично debian.
|
Далее все аналогично debian.
|
||||||
|
|
||||||
@ -358,7 +373,12 @@ git и curl по умолчанию могут присутствовать, ips
|
|||||||
|
|
||||||
emerge ipset
|
emerge ipset
|
||||||
|
|
||||||
Настраиваем все как в debian, но опуская все, касаемое systemd.
|
Подключаем init скрипт :
|
||||||
|
|
||||||
|
ln -fs /opt/zapret/init.d/sysv/zapret /etc/init.d
|
||||||
|
rc-update add zapret
|
||||||
|
|
||||||
|
Далее все как в debian, исключая все, касаемое systemd.
|
||||||
|
|
||||||
Шпаргалка по управлению службой :
|
Шпаргалка по управлению службой :
|
||||||
|
|
||||||
@ -371,7 +391,7 @@ stop : rc-service zapret stop
|
|||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
Ты простой юзер ? Не хочешь ни во что вникать, а хочешь нажать и чтобы сразу заработало ?
|
Ты простой юзер ? Не хочешь ни во что вникать, а хочешь нажать и чтобы сразу заработало ?
|
||||||
Пользуешься ubuntu, debian , centos , fedora, opensuse ? Тогда этот вариант для тебя.
|
Пользуешься системой на базе systemd ? Тогда этот вариант для тебя.
|
||||||
Есть шансы, что оно заработает с минимумом усилий. Запусти терминал и в нем вбивай команды :
|
Есть шансы, что оно заработает с минимумом усилий. Запусти терминал и в нем вбивай команды :
|
||||||
|
|
||||||
# su
|
# su
|
||||||
@ -395,16 +415,9 @@ stop : rc-service zapret stop
|
|||||||
|
|
||||||
Для более гибкой настройки перед запуском инсталятора следует выполнить раздел "Выбор параметров".
|
Для более гибкой настройки перед запуском инсталятора следует выполнить раздел "Выбор параметров".
|
||||||
|
|
||||||
Эти скрипты будут работать и на других системах на базе systemd при условии, что
|
Если система на базе systemd, но используется не поддерживаемый инсталятором менеджер пакетов
|
||||||
systemd собран с поддержкой sysvinit и имеется следующий файл :
|
или названия пакетов не соответствуют прописанным в инсталятор, пакеты нужно установить вручную.
|
||||||
/lib/systemd/system-generators/systemd-sysv-generator
|
Требуется : ipset curl cron
|
||||||
ИЛИ
|
|
||||||
/usr/lib/systemd/system-generators/systemd-sysv-generator
|
|
||||||
К сожалению, некоторые дистрибутивы имеют systemd без sysvinit support (arch linux).
|
|
||||||
А так же есть необходимые программы :
|
|
||||||
ipset
|
|
||||||
curl
|
|
||||||
Их можно установить вручную при помощи менеджера пакетов вашей ОС.
|
|
||||||
|
|
||||||
Фаерволлы
|
Фаерволлы
|
||||||
---------
|
---------
|
||||||
@ -486,8 +499,8 @@ ipset можно выкинуть, если не будем пользовать
|
|||||||
Запустить автоинсталятор бинариков. Он сам определит рабочую архитектуру и настроит все бинарики.
|
Запустить автоинсталятор бинариков. Он сам определит рабочую архитектуру и настроит все бинарики.
|
||||||
/opt/zapret/install_bin.sh
|
/opt/zapret/install_bin.sh
|
||||||
|
|
||||||
Скопировать скрипт запуска :
|
Создать ссылку на скрипт запуска :
|
||||||
cp /opt/zapret/init.d/openwrt/zapret /etc/init.d
|
ln -fs /opt/zapret/init.d/openwrt/zapret /etc/init.d
|
||||||
|
|
||||||
Настроить параметры согласно разделу "Выбор параметров".
|
Настроить параметры согласно разделу "Выбор параметров".
|
||||||
|
|
||||||
|
17
init.d/systemd/zapret.service
Normal file
17
init.d/systemd/zapret.service
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
[Unit]
|
||||||
|
After=network-online.target
|
||||||
|
Wants=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=forking
|
||||||
|
Restart=no
|
||||||
|
TimeoutSec=30sec
|
||||||
|
IgnoreSIGPIPE=no
|
||||||
|
KillMode=process
|
||||||
|
GuessMainPID=no
|
||||||
|
RemainAfterExit=yes
|
||||||
|
ExecStart=/opt/zapret/init.d/sysv/zapret start
|
||||||
|
ExecStop=/opt/zapret/init.d/sysv/zapret stop
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
134
install_easy.sh
134
install_easy.sh
@ -9,11 +9,12 @@ ZAPRET_CONFIG=$EXEDIR/config
|
|||||||
|
|
||||||
. "$ZAPRET_CONFIG"
|
. "$ZAPRET_CONFIG"
|
||||||
|
|
||||||
SYSTEMD_SYSV_GENERATOR=/lib/systemd/system-generators/systemd-sysv-generator
|
|
||||||
SYSTEMD_SYSV_GENERATOR2=/usr$SYSTEMD_SYSV_GENERATOR
|
|
||||||
|
|
||||||
GET_LIST="$EXEDIR/ipset/get_config.sh"
|
GET_LIST="$EXEDIR/ipset/get_config.sh"
|
||||||
GET_LIST_PREFIX=/ipset/get_
|
GET_LIST_PREFIX=/ipset/get_
|
||||||
|
INIT_SCRIPT=/etc/init.d/zapret
|
||||||
|
|
||||||
|
SYSTEMD_SYSTEM_DIR=/lib/systemd/system
|
||||||
|
[ -d "$SYSTEMD_SYSTEM_DIR" ] || SYSTEMD_SYSTEM_DIR=/usr/lib/systemd/system
|
||||||
|
|
||||||
exists()
|
exists()
|
||||||
{
|
{
|
||||||
@ -66,17 +67,12 @@ random()
|
|||||||
|
|
||||||
check_system()
|
check_system()
|
||||||
{
|
{
|
||||||
echo \* checking system ...
|
echo \* checking system
|
||||||
|
|
||||||
SYSTEM=""
|
SYSTEM=""
|
||||||
SYSTEMCTL=$(whichq systemctl)
|
SYSTEMCTL=$(whichq systemctl)
|
||||||
|
|
||||||
if [ -x "$SYSTEMCTL" ] ; then
|
if [ -x "$SYSTEMCTL" ] ; then
|
||||||
[ -x "$SYSTEMD_SYSV_GENERATOR" ] || [ -x "$SYSTEMD_SYSV_GENERATOR2" ] || {
|
|
||||||
echo systemd is present but it does not support sysvinit compatibility
|
|
||||||
echo $SYSTEMD_SYSV_GENERATOR is required
|
|
||||||
exitp 5
|
|
||||||
}
|
|
||||||
SYSTEM=systemd
|
SYSTEM=systemd
|
||||||
elif [ -f "/etc/openwrt_release" ] && exists opkg && exists uci ; then
|
elif [ -f "/etc/openwrt_release" ] && exists opkg && exists uci ; then
|
||||||
SYSTEM=openwrt
|
SYSTEM=openwrt
|
||||||
@ -101,7 +97,7 @@ get_bin_arch()
|
|||||||
|
|
||||||
install_binaries()
|
install_binaries()
|
||||||
{
|
{
|
||||||
echo \* installing binaries ...
|
echo \* installing binaries
|
||||||
|
|
||||||
call_install_bin
|
call_install_bin
|
||||||
}
|
}
|
||||||
@ -168,13 +164,14 @@ select_getlist()
|
|||||||
read A
|
read A
|
||||||
if [ "$A" != 'N' ] && [ "$A" != 'n' ]; then
|
if [ "$A" != 'N' ] && [ "$A" != 'n' ]; then
|
||||||
if [ "${MODE%hostlist*}" != "$MODE" ] ; then
|
if [ "${MODE%hostlist*}" != "$MODE" ] ; then
|
||||||
GETLISTS="get_hostlist.sh"
|
local GL_OLD=$GETLIST
|
||||||
GETLIST_DEF="get_hostlist.sh"
|
GETLIST="get_hostlist.sh"
|
||||||
|
[ "$GL_OLD" != "$GET_LIST" ] && write_config_var GETLIST
|
||||||
else
|
else
|
||||||
GETLISTS="get_user.sh get_antizapret.sh get_combined.sh get_reestr.sh"
|
GETLISTS="get_user.sh get_antizapret.sh get_combined.sh get_reestr.sh"
|
||||||
GETLIST_DEF="get_antizapret.sh"
|
GETLIST_DEF="get_antizapret.sh"
|
||||||
|
ask_list GETLIST "$GETLISTS" "$GETLIST_DEF" && write_config_var GETLIST
|
||||||
fi
|
fi
|
||||||
ask_list GETLIST "$GETLISTS" "$GETLIST_DEF" && write_config_var GETLIST
|
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -210,7 +207,7 @@ check_location()
|
|||||||
{
|
{
|
||||||
# $1 - copy function
|
# $1 - copy function
|
||||||
|
|
||||||
echo \* checking location ...
|
echo \* checking location
|
||||||
|
|
||||||
# use inodes in case something is linked
|
# use inodes in case something is linked
|
||||||
[ -d "$ZAPRET_BASE" ] && [ $(get_dir_inode "$EXEDIR") = $(get_dir_inode "$ZAPRET_BASE") ] || {
|
[ -d "$ZAPRET_BASE" ] && [ $(get_dir_inode "$EXEDIR") = $(get_dir_inode "$ZAPRET_BASE") ] || {
|
||||||
@ -247,7 +244,7 @@ crontab_add()
|
|||||||
# $1 - hour min
|
# $1 - hour min
|
||||||
# $2 - hour max
|
# $2 - hour max
|
||||||
[ -x "$GET_LIST" ] && {
|
[ -x "$GET_LIST" ] && {
|
||||||
echo \* adding crontab entry ...
|
echo \* adding crontab entry
|
||||||
|
|
||||||
CRONTMP=/tmp/cron.tmp
|
CRONTMP=/tmp/cron.tmp
|
||||||
crontab -l >$CRONTMP
|
crontab -l >$CRONTMP
|
||||||
@ -265,12 +262,13 @@ crontab_add()
|
|||||||
|
|
||||||
check_prerequisites_linux()
|
check_prerequisites_linux()
|
||||||
{
|
{
|
||||||
echo \* checking prerequisites ...
|
echo \* checking prerequisites
|
||||||
|
|
||||||
if exists ipset && exists curl ; then
|
# arch linux can miss cron
|
||||||
|
if exists ipset && exists curl && exists crontab ; then
|
||||||
echo everything is present
|
echo everything is present
|
||||||
else
|
else
|
||||||
echo \* installing prerequisites ...
|
echo \* installing prerequisites
|
||||||
|
|
||||||
APTGET=$(whichq apt-get)
|
APTGET=$(whichq apt-get)
|
||||||
YUM=$(whichq yum)
|
YUM=$(whichq yum)
|
||||||
@ -278,23 +276,23 @@ check_prerequisites_linux()
|
|||||||
ZYPPER=$(whichq zypper)
|
ZYPPER=$(whichq zypper)
|
||||||
if [ -x "$APTGET" ] ; then
|
if [ -x "$APTGET" ] ; then
|
||||||
"$APTGET" update
|
"$APTGET" update
|
||||||
"$APTGET" install -y --no-install-recommends ipset curl dnsutils || {
|
"$APTGET" install -y --no-install-recommends ipset curl dnsutils cron || {
|
||||||
echo could not install prerequisites
|
echo could not install prerequisites
|
||||||
exitp 6
|
exitp 6
|
||||||
}
|
}
|
||||||
elif [ -x "$YUM" ] ; then
|
elif [ -x "$YUM" ] ; then
|
||||||
"$YUM" -y install curl ipset || {
|
"$YUM" -y install curl ipset cronie || {
|
||||||
echo could not install prerequisites
|
echo could not install prerequisites
|
||||||
exitp 6
|
exitp 6
|
||||||
}
|
}
|
||||||
elif [ -x "$PACMAN" ] ; then
|
elif [ -x "$PACMAN" ] ; then
|
||||||
"$PACMAN" -Syy
|
"$PACMAN" -Syy
|
||||||
"$PACMAN" --noconfirm -S ipset curl || {
|
"$PACMAN" --noconfirm -S ipset curl cronie || {
|
||||||
echo could not install prerequisites
|
echo could not install prerequisites
|
||||||
exitp 6
|
exitp 6
|
||||||
}
|
}
|
||||||
elif [ -x "$ZYPPER" ] ; then
|
elif [ -x "$ZYPPER" ] ; then
|
||||||
"$ZYPPER" --non-interactive install ipset curl || {
|
"$ZYPPER" --non-interactive install ipset curl cron || {
|
||||||
echo could not install prerequisites
|
echo could not install prerequisites
|
||||||
exitp 6
|
exitp 6
|
||||||
}
|
}
|
||||||
@ -306,63 +304,43 @@ check_prerequisites_linux()
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
install_sysv_init()
|
|
||||||
|
service_install_systemd()
|
||||||
{
|
{
|
||||||
echo \* installing init script ...
|
echo \* installing zapret service
|
||||||
|
|
||||||
[ -x "$INIT_SCRIPT" ] && "$INIT_SCRIPT" stop
|
|
||||||
|
|
||||||
script_mode=Y
|
|
||||||
[ -f "$INIT_SCRIPT" ] &&
|
|
||||||
{
|
|
||||||
[ $(md5file "$INIT_SCRIPT") = $(md5file "$INIT_SCRIPT_SRC") ] ||
|
|
||||||
{
|
|
||||||
echo $INIT_SCRIPT already exists and differs from $INIT_SCRIPT_SRC
|
|
||||||
echo Y = overwrite with new version
|
|
||||||
echo N = exit
|
|
||||||
echo L = leave current version and continue
|
|
||||||
read script_mode
|
|
||||||
case "${script_mode}" in
|
|
||||||
Y|y|L|l)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo aborted
|
|
||||||
exitp 3
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ "$script_mode" = "Y" ] || [ "$script_mode" = "y" ]; then
|
|
||||||
echo "copying : $INIT_SCRIPT_SRC => $INIT_SCRIPT"
|
|
||||||
cp -f "$INIT_SCRIPT_SRC" "$INIT_SCRIPT"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
register_sysv_init_systemd()
|
|
||||||
{
|
|
||||||
echo \* registering init script ...
|
|
||||||
|
|
||||||
|
[ -f "$INIT_SCRIPT" ] && rm -f "$INIT_SCRIPT"
|
||||||
|
ln -fs "$EXEDIR/init.d/systemd/zapret.service" "$SYSTEMD_SYSTEM_DIR"
|
||||||
"$SYSTEMCTL" daemon-reload
|
"$SYSTEMCTL" daemon-reload
|
||||||
"$SYSTEMCTL" enable zapret || {
|
"$SYSTEMCTL" enable zapret || {
|
||||||
echo could not register $INIT_SCRIPT with systemd
|
echo could not enable systemd service
|
||||||
exitp 20
|
exitp 20
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
service_stop_systemd()
|
service_stop_systemd()
|
||||||
{
|
{
|
||||||
echo \* stopping service and unregistering init script
|
echo \* stopping zapret service
|
||||||
|
|
||||||
|
"$SYSTEMCTL" daemon-reload
|
||||||
"$SYSTEMCTL" disable zapret
|
"$SYSTEMCTL" disable zapret
|
||||||
"$SYSTEMCTL" stop zapret
|
"$SYSTEMCTL" stop zapret
|
||||||
}
|
}
|
||||||
|
|
||||||
|
service_start_systemd()
|
||||||
|
{
|
||||||
|
echo \* starting zapret service
|
||||||
|
|
||||||
|
systemctl start zapret || {
|
||||||
|
echo could not start zapret service
|
||||||
|
exitp 30
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
download_list()
|
download_list()
|
||||||
{
|
{
|
||||||
[ -x "$GET_LIST" ] && {
|
[ -x "$GET_LIST" ] && {
|
||||||
echo \* downloading blocked ip/host list ...
|
echo \* downloading blocked ip/host list
|
||||||
|
|
||||||
# can be txt or txt.gz
|
# can be txt or txt.gz
|
||||||
rm -f "$EXEDIR/ipset/zapret-ip.txt"* "$EXEDIR/ipset/zapret-ip-user.txt"* \
|
rm -f "$EXEDIR/ipset/zapret-ip.txt"* "$EXEDIR/ipset/zapret-ip-user.txt"* \
|
||||||
@ -375,28 +353,16 @@ download_list()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
service_start_systemd()
|
|
||||||
{
|
|
||||||
echo \* starting zapret service ...
|
|
||||||
|
|
||||||
systemctl start zapret || {
|
|
||||||
echo could not start zapret service
|
|
||||||
exitp 30
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
install_systemd()
|
install_systemd()
|
||||||
{
|
{
|
||||||
INIT_SCRIPT_SRC=$EXEDIR/init.d/sysv/zapret
|
INIT_SCRIPT_SRC=$EXEDIR/init.d/sysv/zapret
|
||||||
INIT_SCRIPT=/etc/init.d/zapret
|
|
||||||
|
|
||||||
check_location copy_all
|
check_location copy_all
|
||||||
check_prerequisites_linux
|
check_prerequisites_linux
|
||||||
service_stop_systemd
|
service_stop_systemd
|
||||||
install_binaries
|
install_binaries
|
||||||
ask_config
|
ask_config
|
||||||
install_sysv_init
|
service_install_systemd
|
||||||
register_sysv_init_systemd
|
|
||||||
download_list
|
download_list
|
||||||
# desktop system : likely it will be up at daytime
|
# desktop system : likely it will be up at daytime
|
||||||
crontab_add 9 21
|
crontab_add 9 21
|
||||||
@ -428,7 +394,7 @@ check_packages_openwrt()
|
|||||||
|
|
||||||
check_prerequisites_openwrt()
|
check_prerequisites_openwrt()
|
||||||
{
|
{
|
||||||
echo \* checking prerequisites ...
|
echo \* checking prerequisites
|
||||||
|
|
||||||
local PKGS="iptables-mod-extra iptables-mod-nfqueue iptables-mod-filter iptables-mod-ipopt ipset curl"
|
local PKGS="iptables-mod-extra iptables-mod-nfqueue iptables-mod-filter iptables-mod-ipopt ipset curl"
|
||||||
local UPD=0
|
local UPD=0
|
||||||
@ -437,7 +403,7 @@ check_prerequisites_openwrt()
|
|||||||
if check_kmod iptable_raw && check_packages_openwrt $PKGS ; then
|
if check_kmod iptable_raw && check_packages_openwrt $PKGS ; then
|
||||||
echo everything is present
|
echo everything is present
|
||||||
else
|
else
|
||||||
echo \* installing prerequisites ...
|
echo \* installing prerequisites
|
||||||
|
|
||||||
opkg update
|
opkg update
|
||||||
UPD=1
|
UPD=1
|
||||||
@ -530,7 +496,7 @@ openwrt_fw_section_configure()
|
|||||||
|
|
||||||
install_openwrt_firewall()
|
install_openwrt_firewall()
|
||||||
{
|
{
|
||||||
echo \* installing firewall script ...
|
echo \* installing firewall script
|
||||||
|
|
||||||
[ -n "MODE" ] || {
|
[ -n "MODE" ] || {
|
||||||
echo should specify MODE in $ZAPRET_CONFIG
|
echo should specify MODE in $ZAPRET_CONFIG
|
||||||
@ -543,15 +509,15 @@ install_openwrt_firewall()
|
|||||||
openwrt_fw_section_del
|
openwrt_fw_section_del
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
echo "copying : $FW_SCRIPT_SRC => $OPENWRT_FW_INCLUDE"
|
echo "linking : $FW_SCRIPT_SRC => $OPENWRT_FW_INCLUDE"
|
||||||
cp -f "$FW_SCRIPT_SRC" "$OPENWRT_FW_INCLUDE"
|
ln -fs "$FW_SCRIPT_SRC" "$OPENWRT_FW_INCLUDE"
|
||||||
|
|
||||||
openwrt_fw_section_configure
|
openwrt_fw_section_configure
|
||||||
}
|
}
|
||||||
|
|
||||||
restart_openwrt_firewall()
|
restart_openwrt_firewall()
|
||||||
{
|
{
|
||||||
echo \* restarting firewall ...
|
echo \* restarting firewall
|
||||||
|
|
||||||
fw3 -q restart || {
|
fw3 -q restart || {
|
||||||
echo could not restart firewall
|
echo could not restart firewall
|
||||||
@ -559,16 +525,18 @@ restart_openwrt_firewall()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
register_sysv_init()
|
install_sysv_init()
|
||||||
{
|
{
|
||||||
echo \* registering init script ...
|
echo \* installing init script
|
||||||
|
|
||||||
|
[ -x "$INIT_SCRIPT" ] && "$INIT_SCRIPT" stop
|
||||||
|
ln -fs "$INIT_SCRIPT_SRC" "$INIT_SCRIPT"
|
||||||
"$INIT_SCRIPT" enable
|
"$INIT_SCRIPT" enable
|
||||||
}
|
}
|
||||||
|
|
||||||
service_start_sysv()
|
service_start_sysv()
|
||||||
{
|
{
|
||||||
echo \* starting zapret service ...
|
echo \* starting zapret service
|
||||||
|
|
||||||
"$INIT_SCRIPT" start || {
|
"$INIT_SCRIPT" start || {
|
||||||
echo could not start zapret service
|
echo could not start zapret service
|
||||||
@ -581,7 +549,6 @@ service_start_sysv()
|
|||||||
install_openwrt()
|
install_openwrt()
|
||||||
{
|
{
|
||||||
INIT_SCRIPT_SRC=$EXEDIR/init.d/openwrt/zapret
|
INIT_SCRIPT_SRC=$EXEDIR/init.d/openwrt/zapret
|
||||||
INIT_SCRIPT=/etc/init.d/zapret
|
|
||||||
FW_SCRIPT_SRC_DIR=$EXEDIR/init.d/openwrt/firewall.zapret
|
FW_SCRIPT_SRC_DIR=$EXEDIR/init.d/openwrt/firewall.zapret
|
||||||
OPENWRT_FW_INCLUDE=/etc/firewall.zapret
|
OPENWRT_FW_INCLUDE=/etc/firewall.zapret
|
||||||
|
|
||||||
@ -590,7 +557,6 @@ install_openwrt()
|
|||||||
install_binaries
|
install_binaries
|
||||||
ask_config
|
ask_config
|
||||||
install_sysv_init
|
install_sysv_init
|
||||||
register_sysv_init
|
|
||||||
download_list
|
download_list
|
||||||
# router system : works 24/7. night is the best time
|
# router system : works 24/7. night is the best time
|
||||||
crontab_add 0 6
|
crontab_add 0 6
|
||||||
|
@ -5,6 +5,8 @@
|
|||||||
SCRIPT=$(readlink -f "$0")
|
SCRIPT=$(readlink -f "$0")
|
||||||
EXEDIR=$(dirname "$SCRIPT")
|
EXEDIR=$(dirname "$SCRIPT")
|
||||||
GET_IPLIST_PREFIX=/ipset/get_
|
GET_IPLIST_PREFIX=/ipset/get_
|
||||||
|
SYSTEMD_SYSTEM_DIR=/lib/systemd/system
|
||||||
|
[ -d "$SYSTEMD_SYSTEM_DIR" ] || SYSTEMD_SYSTEM_DIR=/usr/lib/systemd/system
|
||||||
|
|
||||||
exists()
|
exists()
|
||||||
{
|
{
|
||||||
@ -39,7 +41,7 @@ md5file()
|
|||||||
|
|
||||||
check_system()
|
check_system()
|
||||||
{
|
{
|
||||||
echo \* checking system ...
|
echo \* checking system
|
||||||
|
|
||||||
SYSTEM=""
|
SYSTEM=""
|
||||||
SYSTEMCTL=$(whichq systemctl)
|
SYSTEMCTL=$(whichq systemctl)
|
||||||
@ -56,44 +58,9 @@ check_system()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
service_stop_systemd()
|
|
||||||
{
|
|
||||||
echo \* stopping service and unregistering init script
|
|
||||||
|
|
||||||
"$SYSTEMCTL" disable zapret
|
|
||||||
"$SYSTEMCTL" stop zapret
|
|
||||||
}
|
|
||||||
|
|
||||||
remove_sysv_init()
|
|
||||||
{
|
|
||||||
echo \* removing init script ...
|
|
||||||
|
|
||||||
script_mode=Y
|
|
||||||
[ -f "$INIT_SCRIPT" ] &&
|
|
||||||
{
|
|
||||||
[ $(md5file "$INIT_SCRIPT") = $(md5file "$INIT_SCRIPT_SRC") ] ||
|
|
||||||
{
|
|
||||||
echo $INIT_SCRIPT already exists and differs from $INIT_SCRIPT_SRC
|
|
||||||
echo Y = remove it
|
|
||||||
echo L = leave it
|
|
||||||
read script_mode
|
|
||||||
}
|
|
||||||
if [ "$script_mode" = "Y" ] || [ "$script_mode" = "y" ]; then
|
|
||||||
rm -vf $INIT_SCRIPT
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
cleanup_systemd()
|
|
||||||
{
|
|
||||||
echo \* systemd cleanup ...
|
|
||||||
|
|
||||||
"$SYSTEMCTL" daemon-reload
|
|
||||||
}
|
|
||||||
|
|
||||||
crontab_del()
|
crontab_del()
|
||||||
{
|
{
|
||||||
echo \* removing crontab entry ...
|
echo \* removing crontab entry
|
||||||
|
|
||||||
CRONTMP=/tmp/cron.tmp
|
CRONTMP=/tmp/cron.tmp
|
||||||
crontab -l >$CRONTMP
|
crontab -l >$CRONTMP
|
||||||
@ -108,19 +75,39 @@ crontab_del()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
service_stop_systemd()
|
||||||
|
{
|
||||||
|
echo \* stopping zapret service
|
||||||
|
|
||||||
|
"$SYSTEMCTL" daemon-reload
|
||||||
|
"$SYSTEMCTL" disable zapret
|
||||||
|
"$SYSTEMCTL" stop zapret
|
||||||
|
}
|
||||||
|
|
||||||
|
service_remove_systemd()
|
||||||
|
{
|
||||||
|
echo \* removing zapret service
|
||||||
|
|
||||||
|
rm -f "$SYSTEMD_SYSTEM_DIR/zapret.service"
|
||||||
|
"$SYSTEMCTL" daemon-reload
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
remove_systemd()
|
remove_systemd()
|
||||||
{
|
{
|
||||||
INIT_SCRIPT_SRC=$EXEDIR/init.d/sysv/zapret
|
INIT_SCRIPT_SRC=$EXEDIR/init.d/sysv/zapret
|
||||||
INIT_SCRIPT=/etc/init.d/zapret
|
INIT_SCRIPT=/etc/init.d/zapret
|
||||||
|
|
||||||
service_stop_systemd
|
service_stop_systemd
|
||||||
remove_sysv_init
|
service_remove_systemd
|
||||||
cleanup_systemd
|
|
||||||
crontab_del
|
crontab_del
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
openwrt_fw_section_find()
|
openwrt_fw_section_find()
|
||||||
{
|
{
|
||||||
# echoes section number
|
# echoes section number
|
||||||
@ -150,7 +137,7 @@ openwrt_fw_section_del()
|
|||||||
|
|
||||||
remove_openwrt_firewall()
|
remove_openwrt_firewall()
|
||||||
{
|
{
|
||||||
echo \* removing firewall script ...
|
echo \* removing firewall script
|
||||||
|
|
||||||
openwrt_fw_section_del
|
openwrt_fw_section_del
|
||||||
[ -f "$OPENWRT_FW_INCLUDE" ] && rm -f "$OPENWRT_FW_INCLUDE"
|
[ -f "$OPENWRT_FW_INCLUDE" ] && rm -f "$OPENWRT_FW_INCLUDE"
|
||||||
@ -158,7 +145,7 @@ remove_openwrt_firewall()
|
|||||||
|
|
||||||
restart_openwrt_firewall()
|
restart_openwrt_firewall()
|
||||||
{
|
{
|
||||||
echo \* restarting firewall ...
|
echo \* restarting firewall
|
||||||
|
|
||||||
fw3 -q restart || {
|
fw3 -q restart || {
|
||||||
echo could not restart firewall
|
echo could not restart firewall
|
||||||
@ -169,7 +156,7 @@ restart_openwrt_firewall()
|
|||||||
|
|
||||||
service_remove_sysv()
|
service_remove_sysv()
|
||||||
{
|
{
|
||||||
echo \* removing zapret service ...
|
echo \* removing zapret service
|
||||||
|
|
||||||
[ -x "$INIT_SCRIPT" ] && {
|
[ -x "$INIT_SCRIPT" ] && {
|
||||||
"$INIT_SCRIPT" disable
|
"$INIT_SCRIPT" disable
|
||||||
|
Loading…
x
Reference in New Issue
Block a user