easy install on debian/ubuntu for dummies

This commit is contained in:
bolvan 2019-05-03 17:36:30 +03:00
parent 35774c04c6
commit 5f3c334453
3 changed files with 209 additions and 1 deletions

119
install_debian_easy.sh Normal file
View File

@ -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

View File

@ -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 системы
--------------------

66
uninstall_debian_easy.sh Normal file
View File

@ -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