ipset: get_antizapret_domains.sh

This commit is contained in:
bol-van 2022-03-17 14:13:21 +03:00
parent e079e3a607
commit 3cac53eb80
3 changed files with 56 additions and 9 deletions

View File

@ -810,13 +810,14 @@ ip2net фильтрует входные данные, выкидывая неп
Альтернативой ipset является использование tpws или nfqws со списком доменов. Альтернативой ipset является использование tpws или nfqws со списком доменов.
Может быть только один hostlist. Может быть только один hostlist.
Поддерживаются 2 варианта : Поддерживаются следующие варианты :
1) Внесите домены для дурения в ipset/zapret-hosts-users.txt. Удалите ipset/zapret-hosts.txt.gz. 1) Внесите домены для дурения в ipset/zapret-hosts-users.txt. Удалите ipset/zapret-hosts.txt.gz.
Тогда init скрипт будет запускать tpws с листом zapret-hosts-users.txt. Тогда init скрипт будет запускать tpws/nfqws с листом zapret-hosts-users.txt.
2) Список доменов РКН может быть получен скриптом ipset/get_reestr_hostlist.sh - кладется в ipset/zapret-hosts.txt.gz. 2) Список доменов РКН может быть получен скриптами ipset/get_reestr_hostlist.sh или ipset/get_antizapret_domains.sh
- кладется в ipset/zapret-hosts.txt.gz.
Этот скрипт автоматически добавляет к списку РКН домены из zapret-hosts-user.txt и исключает zapret-hosts-exclude.txt. Этот скрипт автоматически добавляет к списку РКН домены из zapret-hosts-user.txt и исключает zapret-hosts-exclude.txt.
init скрипт будет запускать tpws с листом zapret-hosts.txt.gz. init скрипт будет запускать tpws/nfqws с листом zapret-hosts.txt.gz.
При фильтрации по именам доменов демон должен запускаться без фильтрации по ipset. При фильтрации по именам доменов демон должен запускаться без фильтрации по ipset.
tpws и nfqws решают нужно ли применять дурение в зависимости от поля Host: в http запросе или SNI в TLS ClientHello. tpws и nfqws решают нужно ли применять дурение в зависимости от поля Host: в http запросе или SNI в TLS ClientHello.

View File

@ -240,14 +240,13 @@ select_getlist()
echo echo
if ask_yes_no $D "do you want to auto download ip/host list"; then if ask_yes_no $D "do you want to auto download ip/host list"; then
if [ "$MODE_FILTER" = "hostlist" ] ; then if [ "$MODE_FILTER" = "hostlist" ] ; then
local GL_OLD=$GETLIST GETLISTS="get_antizapret_domains.sh get_reestr_hostlist.sh"
GETLIST="get_reestr_hostlist.sh" GETLIST_DEF="get_antizapret_domains.sh"
[ "$GL_OLD" != "$GET_LIST" ] && write_config_var GETLIST
else else
GETLISTS="get_user.sh get_antifilter_ip.sh get_antifilter_ipsmart.sh get_antifilter_ipsum.sh get_antifilter_ipresolve.sh get_antifilter_allyouneed.sh get_reestr_ip.sh get_reestr_combined.sh get_reestr_resolve.sh" GETLISTS="get_user.sh get_antifilter_ip.sh get_antifilter_ipsmart.sh get_antifilter_ipsum.sh get_antifilter_ipresolve.sh get_antifilter_allyouneed.sh get_reestr_ip.sh get_reestr_combined.sh get_reestr_resolve.sh"
GETLIST_DEF="get_antifilter_ipsmart.sh" GETLIST_DEF="get_antifilter_allyouneed.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

47
ipset/get_antizapret_domains.sh Executable file
View File

@ -0,0 +1,47 @@
#!/bin/sh
IPSET_DIR="$(dirname "$0")"
IPSET_DIR="$(cd "$IPSET_DIR"; pwd)"
. "$IPSET_DIR/def.sh"
# useful in case ipban set is used in custom scripts
FAIL=
getuser || FAIL=1
"$IPSET_DIR/create_ipset.sh"
[ -n "$FAIL" ] && exit
ZURL=https://antizapret.prostovpn.org/domains-export.txt
ZDOM="$TMPDIR/zapret.txt"
curl -k --fail --max-time 600 --connect-timeout 5 --retry 3 --max-filesize 251658240 "$ZURL" >"$ZDOM" ||
{
echo domain list download failed
exit 2
}
composite_list()
{
# combine reestr and user list
if [ -f "$ZUSERLIST_EXCLUDE" ]; then
nice -n 5 $GREP -xvFf "$ZUSERLIST_EXCLUDE" "$ZDOM"
else
cat "$ZDOM"
fi
[ -f "$ZUSERLIST" ] && $AWK '{ print tolower($0) }' <"$ZUSERLIST"
}
dlsize=$(LANG=C wc -c "$ZDOM" | xargs | cut -f 1 -d ' ')
if test $dlsize -lt 102400; then
echo list file is too small. can be bad.
exit 2
fi
composite_list | sort -u | zz "$ZHOSTLIST"
rm -f "$ZDOM"
hup_zapret_daemons
exit 0