mirror of
https://github.com/bol-van/zapret.git
synced 2025-04-19 21:42:59 +03:00
separate config from init script
This commit is contained in:
parent
b1c4f42d08
commit
5cdf6b3469
27
config
Normal file
27
config
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# this file is included from init scripts
|
||||||
|
# change values here
|
||||||
|
|
||||||
|
# CHOOSE OPERATION MODE
|
||||||
|
# use nfqws : nfqws_ipset nfqws_ipset_https nfqws_all nfqws_all_https
|
||||||
|
# use tpws : tpws_ipset tpws_ipset_https tpws_all tpws_all_https tpws_hostlist
|
||||||
|
# no daemon, just ipset : ipset
|
||||||
|
# custom mode : custom . should modify init script and add your own code
|
||||||
|
MODE=tpws_ipset_https
|
||||||
|
|
||||||
|
# CHOOSE NFQWS DAEMON OPTIONS. run "nfq/nfqws --help" for option list
|
||||||
|
NFQWS_OPT="--wsize=3 --hostspell=HOST"
|
||||||
|
|
||||||
|
# CHOOSE TPWS DAEMON OPTIONS. run "tpws/tpws --help" for option list
|
||||||
|
TPWS_OPT_HTTP="--hostspell=HOST --split-http-req=method"
|
||||||
|
TPWS_OPT_HTTPS="--split-pos=3"
|
||||||
|
|
||||||
|
# for routers based on desktop linux only. has not effect in openwrt.
|
||||||
|
# CHOSE NETWORK INTERFACE BEHIND NAT (LAN)
|
||||||
|
# or leave it commented if its not router
|
||||||
|
#SLAVE_ETH=eth0
|
||||||
|
|
||||||
|
|
||||||
|
# for install_easy select which init script will be used to get ip or host list
|
||||||
|
# possible value : get_user.sh get_antizapret.sh get_combined.sh get_reestr.sh get_hostlist.sh
|
||||||
|
# comment if not required
|
||||||
|
GETLIST="get_antizapret.sh"
|
@ -199,15 +199,15 @@ tpws должен запускаться без фильтрации по ipset.
|
|||||||
Например : 8.8.8.8, 8.8.4.4, 1.1.1.1, 1.0.0.1, 9.9.9.9
|
Например : 8.8.8.8, 8.8.4.4, 1.1.1.1, 1.0.0.1, 9.9.9.9
|
||||||
Если DNS подменяется и провайдер перехватывает обращения к сторонним DNS, настройте dnscrypt.
|
Если DNS подменяется и провайдер перехватывает обращения к сторонним DNS, настройте dnscrypt.
|
||||||
|
|
||||||
Проанализируйте какие методы дурения DPI работают, в соответствии с ними настройте init скрипт.
|
Проанализируйте какие методы дурения DPI работают, в соответствии с ними настройте /opt/zapret/config.
|
||||||
|
|
||||||
Выбор режима в init скрипте
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
После установки init скрипта на систему (индивидуально для разных ОС) нужно его настроить.
|
Выбор параметров
|
||||||
|
----------------
|
||||||
|
|
||||||
Отредактируйте /etc/init.d/zapret.
|
Файл /opt/zapret/config
используется различными компонентами системы и содержит основные настройки.
|
||||||
Выберите MODE. Снимите комментарий только с одного из присваиваний.
|
Его нужно просмотреть и при необходимости отредактировать.
|
||||||
|
Выберите MODE :
|
||||||
|
|
||||||
nfqws_ipset - использовать nfqws для модификации трафика на порт 80 только на IP из ipset "zapret"
|
nfqws_ipset - использовать nfqws для модификации трафика на порт 80 только на IP из ipset "zapret"
|
||||||
nfqws_ipset_https - использовать nfqws для модификации трафика на порты 80 и 443 только на IP из ipset "zapret"
|
nfqws_ipset_https - использовать nfqws для модификации трафика на порты 80 и 443 только на IP из ipset "zapret"
|
||||||
@ -219,7 +219,7 @@ tpws_all - использовать tpws для модификации траф
|
|||||||
tpws_all_https - использовать tpws для модификации трафика на порты 80 и 443 для всех IP
|
tpws_all_https - использовать tpws для модификации трафика на порты 80 и 443 для всех IP
|
||||||
tpws_hostlist - пропускать через tpws весь трафик на порт 80. tpws применяет дурение только к хостам из hostlist.
|
tpws_hostlist - пропускать через tpws весь трафик на порт 80. tpws применяет дурение только к хостам из hostlist.
|
||||||
ipset - только заполнить ipset. ipset может быть применен для заворота трафика на прокси или на VPN
|
ipset - только заполнить ipset. ipset может быть применен для заворота трафика на прокси или на VPN
|
||||||
custom - нужно самому запрограммировать запуск демонов и правила iptables
|
custom - нужно самому запрограммировать запуск демонов в init скрипте и правила iptables
|
||||||
|
|
||||||
Можно изменить опции дурения, применяемые демонами nfqws и tpws :
|
Можно изменить опции дурения, применяемые демонами nfqws и tpws :
|
||||||
|
|
||||||
@ -227,6 +227,13 @@ NFQWS_OPT="--wsize=3 --hostspell=HOST"
|
|||||||
TPWS_OPT_HTTP="--hostspell=HOST --split-http-req=method"
|
TPWS_OPT_HTTP="--hostspell=HOST --split-http-req=method"
|
||||||
TPWS_OPT_HTTPS="--split-pos=3"
|
TPWS_OPT_HTTPS="--split-pos=3"
|
||||||
|
|
||||||
|
Если ваша система не openwrt и работает как роутер, то нужно раскомментировать параметр SLAVE_ETH и вписать в него
|
||||||
|
название внутреннего сетевого интерфейса (LAN).
|
||||||
|
|
||||||
|
Параметр GETLIST указывает инсталятору install_easy.sh какой скрипт дергать
|
||||||
|
для обновления списка заблокированных ip или хостов.
|
||||||
|
|
||||||
|
|
||||||
Пример установки на debian-подобную систему
|
Пример установки на debian-подобную систему
|
||||||
-------------------------------------------
|
-------------------------------------------
|
||||||
|
|
||||||
@ -250,9 +257,7 @@ TPWS_OPT_HTTPS="--split-pos=3"
|
|||||||
Скопировать скрипт запуска :
|
Скопировать скрипт запуска :
|
||||||
cp /opt/zapret/init.d/sysv/zapret /etc/init.d
|
cp /opt/zapret/init.d/sysv/zapret /etc/init.d
|
||||||
|
|
||||||
В /etc/init.d/zapret настроить параметры согласно разделу "Выбор режима в init скрипте".
|
Настроить параметры согласно разделу "Выбор параметров".
|
||||||
Если ваша система - роутер, то раскомментировать параметр SLAVE_ETH и вписать в него
|
|
||||||
название внутреннего сетевого интерфейса (LAN).
|
|
||||||
|
|
||||||
Принять изменения скрипта в systemd :
|
Принять изменения скрипта в systemd :
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
@ -260,7 +265,7 @@ TPWS_OPT_HTTPS="--split-pos=3"
|
|||||||
Включить автозапуск службы :
|
Включить автозапуск службы :
|
||||||
systemctl enable zapret
|
systemctl enable zapret
|
||||||
|
|
||||||
В зависимости от выбранного в init скрипте MODE :
|
В зависимости от выбранного MODE :
|
||||||
|
|
||||||
MODE содержит "ipset" :
|
MODE содержит "ipset" :
|
||||||
Удалить старые ip листы, если они были созданы ранее :
|
Удалить старые ip листы, если они были созданы ранее :
|
||||||
@ -361,8 +366,13 @@ OpenSUSE
|
|||||||
# /opt/zapret/uninstall_easy.sh
|
# /opt/zapret/uninstall_easy.sh
|
||||||
# rm -r /opt/zapret
|
# rm -r /opt/zapret
|
||||||
|
|
||||||
Скрипты простой установки могут быть удобны и для нечайников для первоначальной установки,
|
Это самый необходимый миниум действий.
|
||||||
после которой можно поправить настройки вручную. Так устанавливать быстрее.
|
Если zapret уже куда-то был скачан, то можно запустить install_easy.sh прямо оттуда.
|
||||||
|
Инсталятор сам запросит рута, скопирует файлы куда надо.
|
||||||
|
Можно даже запускать инсталятор из "проводника" через функцию "запустить в терминале", если
|
||||||
|
"проводник" такое позволяет.
|
||||||
|
|
||||||
|
Для более гибкой настройки перед запуском инсталятора следует выполнить раздел "Выбор параметров".
|
||||||
|
|
||||||
Эти скрипты будут работать и на других системах на базе systemd при условии, что
|
Эти скрипты будут работать и на других системах на базе systemd при условии, что
|
||||||
systemd собран с поддержкой sysvinit и имеется следующий файл :
|
systemd собран с поддержкой sysvinit и имеется следующий файл :
|
||||||
@ -428,9 +438,9 @@ ipset можно выкинуть, если не будем пользовать
|
|||||||
Скопировать скрипт запуска :
|
Скопировать скрипт запуска :
|
||||||
cp /opt/zapret/init.d/openwrt/zapret /etc/init.d
|
cp /opt/zapret/init.d/openwrt/zapret /etc/init.d
|
||||||
|
|
||||||
В /etc/init.d/zapret настроить параметры согласно разделу "Выбор режима в init скрипте".
|
Настроить параметры согласно разделу "Выбор параметров".
|
||||||
|
|
||||||
В зависимости от выбранного в init скрипте MODE :
|
В зависимости от выбранного MODE :
|
||||||
|
|
||||||
MODE содержит "ipset" :
|
MODE содержит "ipset" :
|
||||||
Удалить старые ip листы, если они были созданы ранее :
|
Удалить старые ip листы, если они были созданы ранее :
|
||||||
@ -493,9 +503,12 @@ MODE=custom
|
|||||||
ЕСЛИ ВСЕ ПЛОХО С МЕСТОМ : тогда берите SDK и собирайте динамические бинарики. они весят меньше.
|
ЕСЛИ ВСЕ ПЛОХО С МЕСТОМ : тогда берите SDK и собирайте динамические бинарики. они весят меньше.
|
||||||
откажитесь от работы со списком РКН. используйте только get_user.sh
|
откажитесь от работы со списком РКН. используйте только get_user.sh
|
||||||
|
|
||||||
ЕСЛИ СОВСЕМ ВСЕ УЖАСНО С МЕСТОМ : не надо устанавливать дополнительные пакеты через opkg. оставьте лишь один tpws
|
ЕСЛИ СОВСЕМ ВСЕ УЖАСНО С МЕСТОМ : не надо устанавливать дополнительные пакеты через opkg.
|
||||||
и init скрипт, в firewall.user перенаправляйте весь трафик на порт 80 на tpws. такой вариант потребует менее 100 кб места
|
оставьте лишь /opt/zapret/tpws/tpws, /opt/zapret/config, /etc/init.d/zapret, /etc/firewall.zapret
|
||||||
и полностью статичен. отсутствуют любые загрузки, обновления, изменения файлов.
|
используйте MODE=tpws_all или tpws_all_https
|
||||||
|
такой вариант потребует около 100 кб места
и полностью статичен.
|
||||||
|
отсутствуют любые загрузки, обновления, изменения файлов.
|
||||||
|
tpws без ipset использует всего лишь DNAT, который есть по умолчанию
|
||||||
|
|
||||||
СОВЕТ : Покупайте только роутеры с USB. В USB можно воткнуть флэшку и вынести на нее корневую файловую систему
|
СОВЕТ : Покупайте только роутеры с USB. В USB можно воткнуть флэшку и вынести на нее корневую файловую систему
|
||||||
или использовать ее в качестве оверлея. Не надо мучать себя, запихивая незапихиваемое в 8 мб встроенной флэшки.
|
или использовать ее в качестве оверлея. Не надо мучать себя, запихивая незапихиваемое в 8 мб встроенной флэшки.
|
||||||
@ -507,7 +520,7 @@ MODE=custom
|
|||||||
|
|
||||||
Работает только если у вас на роутере достаточно много места.
|
Работает только если у вас на роутере достаточно много места.
|
||||||
Схема примерно такая же, как и на десктопе. Помещаем на роутер /opt/zapret,
|
Схема примерно такая же, как и на десктопе. Помещаем на роутер /opt/zapret,
|
||||||
запускаем install_easy.sh
|
выполняем раздел "Выбор параметров", запускаем install_easy.sh
|
||||||
|
|
||||||
Если места достаточно, можно прямо на роутер установить git и скачать с github :
|
Если места достаточно, можно прямо на роутер установить git и скачать с github :
|
||||||
|
|
||||||
@ -527,8 +540,9 @@ init.d/openwrt
|
|||||||
ipset/*
|
ipset/*
|
||||||
binaries/<ваша архитектура>/{tpws,nfqws,ip2net,mdig}
|
binaries/<ваша архитектура>/{tpws,nfqws,ip2net,mdig}
|
||||||
|
|
||||||
Чтобы сменить MODE, перед установкой можно отредактировать /opt/zapret/init.d/openwrt/zapret, изменить MODE там
|
Если вы закачаете zapret не в /opt/zapret, а, например, в /tmp, и запустите install_easy.sh оттуда,
|
||||||
и согласиться на перезапись init скрипта. По умолчанию используется MODE=tpws_ipset_https.
|
то инсталятор сам скопирует только необходимый минимум в /opt/zapret.
|
||||||
|
|
||||||
|
|
||||||
Другие прошивки
|
Другие прошивки
|
||||||
---------------
|
---------------
|
@ -1,51 +1,16 @@
|
|||||||
#!/bin/sh /etc/rc.common
|
#!/bin/sh /etc/rc.common
|
||||||
# Copyright (C) 2006-2011 OpenWrt.org
|
|
||||||
|
|
||||||
USE_PROCD=1
|
USE_PROCD=1
|
||||||
# start betfore firewall - we need ipset populated
|
# start betfore firewall - we need ipset populated
|
||||||
START=18
|
START=18
|
||||||
|
|
||||||
|
ZAPRET_BASE=/opt/zapret
|
||||||
|
# SHOULD EDIT config
|
||||||
|
. "$ZAPRET_BASE/config"
|
||||||
|
|
||||||
# +++ REVIEW CONFIG HERE +++
|
# !!!!! in openwrt firewall rules are configured separately
|
||||||
|
|
||||||
# CHOOSE OPERATION MODE
|
|
||||||
# leave only one MODE= uncommented
|
|
||||||
|
|
||||||
# using nfqws with ipset
|
|
||||||
#MODE=nfqws_ipset
|
|
||||||
#MODE=nfqws_ipset_https
|
|
||||||
# using nfqws for all
|
|
||||||
#MODE=nfqws_all
|
|
||||||
#MODE=nfqws_all_https
|
|
||||||
# CHOOSE NFQWS DAEMON OPTIONS. run "nfq/nfqws --help" for option list
|
|
||||||
NFQWS_OPT="--wsize=3 --hostspell=HOST"
|
|
||||||
|
|
||||||
# using tpws with ipset
|
|
||||||
#MODE=tpws_ipset
|
|
||||||
MODE=tpws_ipset_https
|
|
||||||
# using tpws for all
|
|
||||||
#MODE=tpws_all
|
|
||||||
#MODE=tpws_all_https
|
|
||||||
# using tpws with hostlist
|
|
||||||
#MODE=tpws_hostlist
|
|
||||||
# CHOOSE TPWS DAEMON OPTIONS. run "tpws/tpws --help" for option list
|
|
||||||
TPWS_OPT_HTTP="--hostspell=HOST --split-http-req=method"
|
|
||||||
TPWS_OPT_HTTPS="--split-pos=3"
|
|
||||||
|
|
||||||
# only fill ipset, do not run daemons
|
|
||||||
#MODE=ipset
|
|
||||||
|
|
||||||
# Custom mode
|
|
||||||
# Find out what works for you and modify "# PLACEHOLDER" parts of this script
|
|
||||||
#MODE=custom
|
|
||||||
|
|
||||||
# --- REVIEW CONFIG HERE ---
|
|
||||||
|
|
||||||
# !!!!! in openwrt you need to add firewall rules manually to /etc/firewall.user
|
|
||||||
|
|
||||||
|
|
||||||
PIDDIR=/var/run
|
PIDDIR=/var/run
|
||||||
ZAPRET_BASE=/opt/zapret
|
|
||||||
IPSET_CR=$ZAPRET_BASE/ipset/create_ipset.sh
|
IPSET_CR=$ZAPRET_BASE/ipset/create_ipset.sh
|
||||||
|
|
||||||
QNUM=200
|
QNUM=200
|
||||||
|
@ -10,53 +10,14 @@
|
|||||||
# Default-Stop: 0 1 6
|
# Default-Stop: 0 1 6
|
||||||
### END INIT INFO
|
### END INIT INFO
|
||||||
|
|
||||||
|
ZAPRET_BASE=/opt/zapret
|
||||||
# +++ REVIEW CONFIG HERE +++
|
# SHOULD EDIT config
|
||||||
|
. "$ZAPRET_BASE/config"
|
||||||
# CHOOSE OPERATION MODE
|
|
||||||
# leave only one MODE= uncommented
|
|
||||||
|
|
||||||
# using nfqws with ipset
|
|
||||||
#MODE=nfqws_ipset
|
|
||||||
#MODE=nfqws_ipset_https
|
|
||||||
# using nfqws for all
|
|
||||||
#MODE=nfqws_all
|
|
||||||
#MODE=nfqws_all_https
|
|
||||||
# CHOOSE NFQWS DAEMON OPTIONS. run "nfq/nfqws --help" for option list
|
|
||||||
NFQWS_OPT="--wsize=3 --hostspell=HOST"
|
|
||||||
|
|
||||||
# using tpws with ipset
|
|
||||||
#MODE=tpws_ipset
|
|
||||||
MODE=tpws_ipset_https
|
|
||||||
# using tpws for all
|
|
||||||
#MODE=tpws_all
|
|
||||||
#MODE=tpws_all_https
|
|
||||||
# using tpws with hostlist
|
|
||||||
#MODE=tpws_hostlist
|
|
||||||
# CHOOSE TPWS DAEMON OPTIONS. run "tpws/tpws --help" for option list
|
|
||||||
TPWS_OPT_HTTP="--hostspell=HOST --split-http-req=method"
|
|
||||||
TPWS_OPT_HTTPS="--split-pos=3"
|
|
||||||
|
|
||||||
# only fill ipset, do not run daemons
|
|
||||||
#MODE=ipset
|
|
||||||
|
|
||||||
# Custom mode
|
|
||||||
# Find out what works for you and modify "# PLACEHOLDER" parts of this script
|
|
||||||
#MODE=custom
|
|
||||||
|
|
||||||
# router only: CHOSE NETWORK INTERFACE BEHIND NAT (LAN)
|
|
||||||
# or leave it commented if its not router
|
|
||||||
#SLAVE_ETH=eth0
|
|
||||||
|
|
||||||
# --- REVIEW CONFIG HERE ---
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
NAME=zapret
|
NAME=zapret
|
||||||
DESC=anti-zapret
|
DESC=anti-zapret
|
||||||
PIDDIR=/var/run
|
PIDDIR=/var/run
|
||||||
|
|
||||||
ZAPRET_BASE=/opt/zapret
|
|
||||||
IPSET_CR=$ZAPRET_BASE/ipset/create_ipset.sh
|
IPSET_CR=$ZAPRET_BASE/ipset/create_ipset.sh
|
||||||
|
|
||||||
QNUM=200
|
QNUM=200
|
||||||
|
@ -20,7 +20,19 @@ ccp()
|
|||||||
#cp -f "$BINDIR/$1" "$EXEDIR/$2" && echo copying : "$BINDIR/$1" =\> "$EXEDIR/$2"
|
#cp -f "$BINDIR/$1" "$EXEDIR/$2" && echo copying : "$BINDIR/$1" =\> "$EXEDIR/$2"
|
||||||
}
|
}
|
||||||
|
|
||||||
for arch in aarch64 armhf mips64r2-msb mips32r1-lsb mips32r1-msb ppc x86_64 x86
|
ARCHLIST="aarch64 armhf mips64r2-msb mips32r1-lsb mips32r1-msb ppc x86_64 x86"
|
||||||
|
|
||||||
|
if [ "$1" == "getarch" ]; then
|
||||||
|
for arch in $ARCHLIST
|
||||||
|
do
|
||||||
|
if check_dir $arch; then
|
||||||
|
echo $arch
|
||||||
|
true
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
for arch in $ARCHLIST
|
||||||
do
|
do
|
||||||
if check_dir $arch; then
|
if check_dir $arch; then
|
||||||
echo $arch is OK
|
echo $arch is OK
|
||||||
@ -29,9 +41,12 @@ do
|
|||||||
ccp $arch/mdig mdig
|
ccp $arch/mdig mdig
|
||||||
ccp $arch/nfqws nfq
|
ccp $arch/nfqws nfq
|
||||||
ccp $arch/tpws tpws
|
ccp $arch/tpws tpws
|
||||||
break
|
true
|
||||||
|
return
|
||||||
else
|
else
|
||||||
echo $arch is NOT OK
|
echo $arch is NOT OK
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
false
|
||||||
|
@ -5,11 +5,15 @@
|
|||||||
SCRIPT=$(readlink -f $0)
|
SCRIPT=$(readlink -f $0)
|
||||||
EXEDIR=$(dirname $SCRIPT)
|
EXEDIR=$(dirname $SCRIPT)
|
||||||
ZAPRET_BASE=/opt/zapret
|
ZAPRET_BASE=/opt/zapret
|
||||||
|
ZAPRET_CONFIG=$EXEDIR/config
|
||||||
|
|
||||||
|
. "$ZAPRET_CONFIG"
|
||||||
|
|
||||||
SYSTEMD_SYSV_GENERATOR=/lib/systemd/system-generators/systemd-sysv-generator
|
SYSTEMD_SYSV_GENERATOR=/lib/systemd/system-generators/systemd-sysv-generator
|
||||||
SYSTEMD_SYSV_GENERATOR2=/usr$SYSTEMD_SYSV_GENERATOR
|
SYSTEMD_SYSV_GENERATOR2=/usr$SYSTEMD_SYSV_GENERATOR
|
||||||
|
|
||||||
GET_IPLIST=$EXEDIR/ipset/get_antizapret.sh
|
[ -n "$GETLIST" ] && GET_LIST="$EXEDIR/ipset/$GETLIST"
|
||||||
GET_IPLIST_PREFIX=/ipset/get_
|
GET_LIST_PREFIX=/ipset/get_
|
||||||
|
|
||||||
exists()
|
exists()
|
||||||
{
|
{
|
||||||
@ -46,6 +50,7 @@ md5file()
|
|||||||
md5sum "$1" | cut -f1 -d ' '
|
md5sum "$1" | cut -f1 -d ' '
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
check_system()
|
check_system()
|
||||||
{
|
{
|
||||||
echo \* checking system ...
|
echo \* checking system ...
|
||||||
@ -69,12 +74,53 @@ check_system()
|
|||||||
echo system is based on $SYSTEM
|
echo system is based on $SYSTEM
|
||||||
}
|
}
|
||||||
|
|
||||||
|
call_install_bin()
|
||||||
|
{
|
||||||
|
"$EXEDIR/install_bin.sh" $1 || {
|
||||||
|
echo binaries compatible with your system not found
|
||||||
|
exitp 8
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
install_binaries()
|
||||||
|
{
|
||||||
|
echo \* installing binaries ...
|
||||||
|
|
||||||
|
call_install_bin
|
||||||
|
}
|
||||||
|
|
||||||
|
get_bin_arch()
|
||||||
|
{
|
||||||
|
call_install_bin getarch
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
copy_all()
|
||||||
|
{
|
||||||
|
cp -R "$1" "$2"
|
||||||
|
}
|
||||||
|
copy_minimal()
|
||||||
|
{
|
||||||
|
local ARCH=$(get_bin_arch)
|
||||||
|
local BINDIR="$1/binaries/$ARCH"
|
||||||
|
|
||||||
|
[ -d "$2" ] || mkdir -p "$2"
|
||||||
|
|
||||||
|
mkdir "$2/tpws" "$2/nfq" "$2/ip2net" "$2/mdig" "$2/binaries" "$2/binaries/$ARCH"
|
||||||
|
cp -R "$1/ipset" "$2"
|
||||||
|
cp -R "$1/init.d" "$2"
|
||||||
|
cp "$1/install_easy.sh" "$1/uninstall_easy.sh" "$1/install_bin.sh" "$2"
|
||||||
|
cp "$BINDIR/tpws" "$BINDIR/nfqws" "$BINDIR/ip2net" "$BINDIR/mdig" "$2/binaries/$ARCH"
|
||||||
|
}
|
||||||
|
|
||||||
check_location()
|
check_location()
|
||||||
{
|
{
|
||||||
|
# $1 - copy function
|
||||||
|
|
||||||
echo \* checking location ...
|
echo \* checking location ...
|
||||||
|
|
||||||
# use inodes in case something is linked
|
# use inodes in case something is linked
|
||||||
[ $(get_dir_inode "$EXEDIR") = $(get_dir_inode "$ZAPRET_BASE") ] || {
|
[ -d "$ZAPRET_BASE" ] && [ $(get_dir_inode "$EXEDIR") = $(get_dir_inode "$ZAPRET_BASE") ] || {
|
||||||
echo easy install is supported only from default location : $ZAPRET_BASE
|
echo easy install is supported only from default location : $ZAPRET_BASE
|
||||||
echo currenlty its run from $EXEDIR
|
echo currenlty its run from $EXEDIR
|
||||||
echo -n "do you want the installer to copy it for you (Y/N) ? "
|
echo -n "do you want the installer to copy it for you (Y/N) ? "
|
||||||
@ -91,7 +137,7 @@ check_location()
|
|||||||
exitp 3
|
exitp 3
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
cp -R $EXEDIR $ZAPRET_BASE
|
$1 "$EXEDIR" "$ZAPRET_BASE"
|
||||||
echo relaunching itself from $ZAPRET_BASE
|
echo relaunching itself from $ZAPRET_BASE
|
||||||
exec $ZAPRET_BASE/$(basename $0)
|
exec $ZAPRET_BASE/$(basename $0)
|
||||||
else
|
else
|
||||||
@ -102,28 +148,24 @@ check_location()
|
|||||||
echo running from $EXEDIR
|
echo running from $EXEDIR
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
crontab_add()
|
crontab_add()
|
||||||
{
|
{
|
||||||
|
[ -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
|
||||||
if grep -q "$GET_IPLIST_PREFIX" $CRONTMP; then
|
if grep -q "$GET_LIST_PREFIX" $CRONTMP; then
|
||||||
echo some entries already exist in crontab. check if this is corrent :
|
echo some entries already exist in crontab. check if this is corrent :
|
||||||
grep "$GET_IPLIST_PREFIX" $CRONTMP
|
grep "$GET_LIST_PREFIX" $CRONTMP
|
||||||
else
|
else
|
||||||
echo "0 12 * * */2 $GET_IPLIST" >>$CRONTMP
|
echo "0 12 * * */2 $GET_LIST" >>$CRONTMP
|
||||||
crontab $CRONTMP
|
crontab $CRONTMP
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -f $CRONTMP
|
rm -f $CRONTMP
|
||||||
}
|
}
|
||||||
|
|
||||||
install_binaries()
|
|
||||||
{
|
|
||||||
echo \* installing binaries ...
|
|
||||||
|
|
||||||
"$EXEDIR/install_bin.sh"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
check_preprequisites_linux()
|
check_preprequisites_linux()
|
||||||
@ -213,15 +255,20 @@ register_sysv_init_systemd()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
download_ip_list()
|
download_list()
|
||||||
{
|
{
|
||||||
echo \* downloading blocked ip list ...
|
[ -x "$GET_LIST" ] && {
|
||||||
|
echo \* downloading blocked ip/host list ...
|
||||||
|
|
||||||
"$GET_IPLIST" || {
|
rm -f "$EXEDIR/ipset/zapret-ip.txt" "$EXEDIR/ipset/zapret-ip-user.txt" \
|
||||||
|
"$EXEDIR/ipset/zapret-ip-ipban.txt" "$EXEDIR/ipset/zapret-ip-user-ipban.txt" \
|
||||||
|
"$EXEDIR/ipset/zapret-hosts.txt"
|
||||||
|
"$GET_LIST" || {
|
||||||
echo could not download ip list
|
echo could not download ip list
|
||||||
exitp 25
|
exitp 25
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
service_start_systemd()
|
service_start_systemd()
|
||||||
{
|
{
|
||||||
@ -238,11 +285,12 @@ install_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
|
||||||
|
|
||||||
|
check_location copy_all
|
||||||
check_preprequisites_linux
|
check_preprequisites_linux
|
||||||
install_binaries
|
install_binaries
|
||||||
install_sysv_init
|
install_sysv_init
|
||||||
register_sysv_init_systemd
|
register_sysv_init_systemd
|
||||||
download_ip_list
|
download_list
|
||||||
crontab_add
|
crontab_add
|
||||||
service_start_systemd
|
service_start_systemd
|
||||||
}
|
}
|
||||||
@ -345,9 +393,8 @@ install_openwrt_firewall()
|
|||||||
{
|
{
|
||||||
echo \* installing firewall script ...
|
echo \* installing firewall script ...
|
||||||
|
|
||||||
local MODE=$(sed -nre 's/^MODE=([^[:space:]]+)/\1/p' "$INIT_SCRIPT" | tail -n 1)
|
|
||||||
[ -n "MODE" ] || {
|
[ -n "MODE" ] || {
|
||||||
echo could not get MODE from $INIT_SCRIPT
|
echo should specify MODE in $ZAPRET_CONFIG
|
||||||
exitp 7
|
exitp 7
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -399,11 +446,12 @@ install_openwrt()
|
|||||||
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
|
||||||
|
|
||||||
|
check_location copy_minimal
|
||||||
check_preprequisites_openwrt
|
check_preprequisites_openwrt
|
||||||
install_binaries
|
install_binaries
|
||||||
install_sysv_init
|
install_sysv_init
|
||||||
register_sysv_init
|
register_sysv_init
|
||||||
download_ip_list
|
download_list
|
||||||
crontab_add
|
crontab_add
|
||||||
service_start_sysv
|
service_start_sysv
|
||||||
install_openwrt_firewall
|
install_openwrt_firewall
|
||||||
@ -413,7 +461,6 @@ install_openwrt()
|
|||||||
|
|
||||||
|
|
||||||
check_system
|
check_system
|
||||||
check_location
|
|
||||||
|
|
||||||
case $SYSTEM in
|
case $SYSTEM in
|
||||||
systemd)
|
systemd)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user