From 5f3c334453a9e982caad8151bd3dab25c6df041f Mon Sep 17 00:00:00 2001 From: bolvan Date: Fri, 3 May 2019 17:36:30 +0300 Subject: [PATCH] easy install on debian/ubuntu for dummies --- install_debian_easy.sh | 119 +++++++++++++++++++++++++++++++++++++++ readme.txt | 25 +++++++- uninstall_debian_easy.sh | 66 ++++++++++++++++++++++ 3 files changed, 209 insertions(+), 1 deletion(-) create mode 100644 install_debian_easy.sh create mode 100644 uninstall_debian_easy.sh diff --git a/install_debian_easy.sh b/install_debian_easy.sh new file mode 100644 index 0000000..cbe8e1c --- /dev/null +++ b/install_debian_easy.sh @@ -0,0 +1,119 @@ +#!/bin/sh + +# automated script for easy installing zapret on debian or ubuntu based system +# system must use apt as package manager and systemd + +[ $(id -u) -ne "0" ] && { + echo root is required + exec sudo $0 +} + +SCRIPT=$(readlink -f $0) +EXEDIR=$(dirname $SCRIPT) +LSB_INSTALL=/usr/lib/lsb/install_initd +LSB_REMOVE=/usr/lib/lsb/remove_initd +INIT_SCRIPT_SRC=$EXEDIR/init.d/debian/zapret +INIT_SCRIPT=/etc/init.d/zapret +GET_IPLIST=$EXEDIR/ipset/get_antizapret.sh +GET_IPLIST_PREFIX=$EXEDIR/ipset/get_ + +echo \* checking system ... + +APTGET=$(which apt-get) +SYSTEMCTL=$(which systemctl) +[ ! -x "$APTGET" ] || [ ! -x "$SYSTEMCTL" ] && { + echo not debian-like system + exit 5 +} + + +echo \* installing prerequisites ... + +"$APTGET" update +"$APTGET" install -y --no-install-recommends ipset curl lsb-core dnsutils || { + echo could not install prerequisites + exit 6 +} + +[ ! -x "$LSB_INSTALL" ] || [ ! -x "$LSB_REMOVE" ] && { + echo lsb install scripts not found + exit 7 +} + + +echo \* installing binaries ... + +"$EXEDIR/install_bin.sh" + + +echo \* installing init script ... + +"$SYSTEMCTL" stop zapret 2>/dev/null + +script_mode=Y +[ -f "$INIT_SCRIPT" ] && +{ + cmp -s $INIT_SCRIPT $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 + ;; + esac + } +} + +if [ "$script_mode" = "Y" ] || [ "$script_mode" = "y" ]; then + echo -n "copying : " + cp -vf $INIT_SCRIPT_SRC $INIT_SCRIPT +fi + + +echo \* registering init script ... + +"$LSB_REMOVE" $INIT_SCRIPT +"$LSB_INSTALL" $INIT_SCRIPT || { + echo could not register $INIT_SCRIPT with LSB + exit 20 +} + + +echo \* downloading blocked ip list ... + +"$GET_IPLIST" || { + echo could not download ip list + exit 25 +} + + +echo \* adding crontab entry ... + +CRONTMP=/tmp/cron.tmp +crontab -l >$CRONTMP +if grep -q "$GET_IPLIST_PREFIX" $CRONTMP; then + echo some entries already exist in crontab. check if this is corrent : + grep "$GET_IPLIST_PREFIX" $CRONTMP +else + echo "0 12 * * */2 $GET_IPLIST" >>$CRONTMP + crontab $CRONTMP +fi + +rm -f $CRONTMP + + +echo \* starting zapret service ... + +systemctl start zapret || { + echo could not start zapret service + exit 30 +} + +exit 0 + diff --git a/readme.txt b/readme.txt index b87423b..53cb051 100644 --- a/readme.txt +++ b/readme.txt @@ -245,7 +245,7 @@ TPWS_OPT="--hostspell=HOST --split-http-req=method" название внутреннего сетевого интерфейса (LAN). Зарегистрировать init скрипт в systemd : - /usr/lib/lsb/install_initd zapret + /usr/lib/lsb/install_initd /etc/init.d/zapret Вручную первый раз получить новый список ip адресов (кроме hostlist) : /opt/zapret/ipset/get_antizapret.sh @@ -286,6 +286,29 @@ stop : systemctl stop zapret status, output messages : systemctl status zapret После изменения /etc/init.d/zapret : systemctl daemon-reload +Пример установки на debian 8,9 ubuntu 16,18 для чайников +-------------------------------------------------------- + +Ты простой юзер ? Не хочешь ни во что вникать, а хочешь нажать и чтобы сразу заработало ? +Пользуешься ubuntu или debian ? Тогда этот вариант для тебя. +Есть шансы, что оно заработает с минимумом усилий. Запусти терминал и в нем вбивай команды : + +# sudo apt-get update +# sudo apt-get install git +# cd /opt +# sudo git clone https://github.com/bol-van/zapret +# zapret/install_debian_easy.sh + +sudo попросит пароль текущего юзера для получения рута + +Надоело ? + +# /opt/zapret/uninstall_debian_easy.sh +# sudo rm -r /opt/zapret + +Скрипты простой установки могут быть удобны и для нечайников для первоначальной установки, +после которой можно поправить настройки вручную. Так устанавливать быстрее. + Другие linux системы -------------------- diff --git a/uninstall_debian_easy.sh b/uninstall_debian_easy.sh new file mode 100644 index 0000000..0f45d8e --- /dev/null +++ b/uninstall_debian_easy.sh @@ -0,0 +1,66 @@ +#!/bin/sh + +# automated script for easy installing zapret on debian or ubuntu based system +# system must use apt as package manager and systemd + +[ $(id -u) -ne "0" ] && { + echo root is required + exec sudo $0 +} + +SCRIPT=$(readlink -f $0) +EXEDIR=$(dirname $SCRIPT) +LSB_INSTALL=/usr/lib/lsb/install_initd +LSB_REMOVE=/usr/lib/lsb/remove_initd +INIT_SCRIPT_SRC=$EXEDIR/init.d/debian/zapret +INIT_SCRIPT=/etc/init.d/zapret +GET_IPLIST_PREFIX=$EXEDIR/ipset/get_ + +echo \* checking system ... + +APTGET=$(which apt-get) +SYSTEMCTL=$(which systemctl) +[ ! -x "$APTGET" ] || [ ! -x "$SYSTEMCTL" ] && { + echo not debian-like system + exit 5 +} + + +echo \* stopping service and unregistering init script with LSB ... + +"$SYSTEMCTL" stop zapret +[ -f "$INIT_SCRIPT" ] && "$LSB_REMOVE" $INIT_SCRIPT + +echo \* removing init script ... + +script_mode=Y +[ -f "$INIT_SCRIPT" ] && +{ + cmp -s $INIT_SCRIPT $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 +} + + +echo \* removing crontab entry ... + +CRONTMP=/tmp/cron.tmp +crontab -l >$CRONTMP +if grep -q "$GET_IPLIST_PREFIX" $CRONTMP; then + echo removing following entries from crontab : + grep "$GET_IPLIST_PREFIX" $CRONTMP + grep -v "$GET_IPLIST_PREFIX" $CRONTMP >$CRONTMP.2 + crontab $CRONTMP.2 + rm -f $CRONTMP 2 +fi +rm -f $CRONTMP + +exit 0 +