Skip to content

Commit

Permalink
ipset: get_antizapret_domains.sh
Browse files Browse the repository at this point in the history
  • Loading branch information
bol-van committed Mar 17, 2022
1 parent e079e3a commit 3cac53e
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 9 deletions.
9 changes: 5 additions & 4 deletions docs/readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -810,13 +810,14 @@ ip2net фильтрует входные данные, выкидывая неп
Альтернативой ipset является использование tpws или nfqws со списком доменов.
Может быть только один hostlist.

Поддерживаются 2 варианта :
Поддерживаются следующие варианты :
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.
init скрипт будет запускать tpws с листом zapret-hosts.txt.gz.
init скрипт будет запускать tpws/nfqws с листом zapret-hosts.txt.gz.

При фильтрации по именам доменов демон должен запускаться без фильтрации по ipset.
tpws и nfqws решают нужно ли применять дурение в зависимости от поля Host: в http запросе или SNI в TLS ClientHello.
Expand Down
9 changes: 4 additions & 5 deletions install_easy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -240,14 +240,13 @@ select_getlist()
echo
if ask_yes_no $D "do you want to auto download ip/host list"; then
if [ "$MODE_FILTER" = "hostlist" ] ; then
local GL_OLD=$GETLIST
GETLIST="get_reestr_hostlist.sh"
[ "$GL_OLD" != "$GET_LIST" ] && write_config_var GETLIST
GETLISTS="get_antizapret_domains.sh get_reestr_hostlist.sh"
GETLIST_DEF="get_antizapret_domains.sh"
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"
GETLIST_DEF="get_antifilter_ipsmart.sh"
ask_list GETLIST "$GETLISTS" "$GETLIST_DEF" && write_config_var GETLIST
GETLIST_DEF="get_antifilter_allyouneed.sh"
fi
ask_list GETLIST "$GETLISTS" "$GETLIST_DEF" && write_config_var GETLIST
return
fi
fi
Expand Down
47 changes: 47 additions & 0 deletions ipset/get_antizapret_domains.sh
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 3cac53e

Please sign in to comment.