get_reestr_preresolved

This commit is contained in:
bol-van 2022-12-11 12:17:21 +03:00
parent fa1529f331
commit fe26745502
4 changed files with 109 additions and 21 deletions

View File

@ -695,42 +695,38 @@ Cкрипты с названием get_reestr_* оперируют дампом
банят по IP : вместо этого они банят http запросы с "нехорошим" заголовком "Host:" вне зависимости
от IP адреса. Поэтому скрипт ресолвит все сам, хотя это и занимает много времени.
Используется мультипоточный ресолвер mdig (собственная разработка).
Реестр РКН уже настолько огромен, что однопоточный ресолв займет вечность, а многопоточный хоть и тоже много времени,
но хотя бы оно конечно.
На роутерах с небольшим объемом RAM может сработать только с TMPDIR на внешнем носителе
3) ipset/get_reestr_ip.sh
взять все IP адреса из реестра и загнать в ipset zapret/zapret6
На роутерах с небольшим объемом RAM может сработать только с TMPDIR на внешнем носителе
4) ipset/get_reestr_combined.sh. для провайдеров, которые блокируют по IP https, а остальное по DPI.
IP https и IP без домена заносятся в ipset ipban, остальные в ipset zapret.
На роутерах с небольшим объемом RAM может сработать только с TMPDIR на внешнем носителе
5) ipset/get_reestr_preresolved.sh. то же самое, что и 2), только берется уже заресолвленый список
со стороннего ресурса.
6) ipset/get_reestr_preresolved_smart.sh. то же самое, что и 5), с добавлением всего диапазона некоторых
автономных систем (прыгающие IP адреса из cloudflare, facebook, ...) и некоторых поддоменов блокируемых сайтов
рипты с названием get_antifilter_* оперируют списками адресов и масок подсетей с сайтов antifilter.network и antifilter.download :
5) ipset/get_antifilter_ip.sh. получает лист https://antifilter.download/list/ip.lst.
7) ipset/get_antifilter_ip.sh. получает лист https://antifilter.download/list/ip.lst.
6) ipset/get_antifilter_ipsmart.sh. получает лист https://antifilter.network/download/ipsmart.lst.
это умная суммаризация отдельных адресов из ip.lst по маскам от /32 до /22
количество префиксов измеряется всего лишь десятками тысяч, потому это лучшее решение для роутера с 64 Mb RAM
8) ipset/get_antifilter_ipsmart.sh. получает лист https://antifilter.network/download/ipsmart.lst.
умная суммаризация отдельных адресов из ip.lst по маскам от /32 до /22
7) ipset/get_antifilter_ipsum.sh. получает лист https://antifilter.download/list/ipsum.lst.
это суммаризация отдельных адресов из ip.lst по маске /24
количество префиксов измеряется всего лишь десятками тысяч, потому можно использовать на роутерах с 64 Mb RAM
9) ipset/get_antifilter_ipsum.sh. получает лист https://antifilter.download/list/ipsum.lst.
суммаризация отдельных адресов из ip.lst по маске /24
8) ipset/get_antifilter_ipresolve.sh. получает лист https://antifilter.download/list/ipresolve.lst.
пре-ресолвленный список, аналогичный получаемый при помощи get_reestr_resolve
сотни тысяч IP, на роутерах с 64 Mb использовать не рекомендуется
10) ipset/get_antifilter_ipresolve.sh. получает лист https://antifilter.download/list/ipresolve.lst.
пре-ресолвленный список, аналогичный получаемый при помощи get_reestr_resolve. только ipv4.
9) ipset/get_antifilter_allyouneed.sh. получает лист https://antifilter.download/list/allyouneed.lst.
11) ipset/get_antifilter_allyouneed.sh. получает лист https://antifilter.download/list/allyouneed.lst.
Суммарный список префиксов, созданный из ipsum.lst и subnet.lst.
количество префиксов измеряется всего лишь десятками тысяч, потому можно использовать на роутерах с 64 Mb RAM
Все варианты рассмотренных скриптов автоматически создают и заполняют ipset.
Варианты 2-9 дополнительно вызывают вариант 1.
Варианты 2-11 дополнительно вызывают вариант 1.
10) ipset/get_config.sh. этот скрипт вызывает то, что прописано в переменной GETLIST из файла config
12) ipset/get_config.sh. этот скрипт вызывает то, что прописано в переменной GETLIST из файла config
Если переменная не определена, то ресолвятся лишь листы для ipset nozapret/nozapret6.
Листы РКН все время изменяются. Возникают новые тенденции. Требования к RAM могут меняться.
@ -738,6 +734,8 @@ Cкрипты с названием get_antifilter_* оперируют спис
Или вы можете узнать о проблеме лишь когда у вас начнет постоянно пропадать wifi, и вам придется
его перезагружать каждые 2 часа (метод кувалды).
Самый щадящие варианты по RAM - get_antifilter_allyouneed.sh, get_antifilter_ipsum.sh.
Листы zapret-ip.txt и zapret-ipban.txt сохраняются в сжатом виде в файлы .gz.
Это позволяет снизить их размер во много раз и сэкономить место на роутере.
Отключить сжатие листов можно параметром конфига GZIP_LISTS=0.

View File

@ -244,7 +244,7 @@ select_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"
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 get_reestr_preresolved.sh get_reestr_preresolved_smart.sh"
GETLIST_DEF="get_antifilter_allyouneed.sh"
fi
ask_list GETLIST "$GETLISTS" "$GETLIST_DEF" && write_config_var GETLIST

45
ipset/get_reestr_preresolved.sh Executable file
View File

@ -0,0 +1,45 @@
#!/bin/sh
IPSET_DIR="$(dirname "$0")"
IPSET_DIR="$(cd "$IPSET_DIR"; pwd)"
. "$IPSET_DIR/def.sh"
TMPLIST="$TMPDIR/list_nethub.txt"
URL4="http://list.nethub.fi/reestr_resolved4.txt"
URL6="http://list.nethub.fi/reestr_resolved6.txt"
getuser && {
[ "$DISABLE_IPV4" != "1" ] && {
curl -vH "Accept-Encoding: gzip" -k --fail --max-time 180 --connect-timeout 10 --retry 4 --max-filesize 33554432 "$URL4" | gunzip - >"$TMPLIST" ||
{
echo ipv4 list download failed
exit 2
}
dlsize=$(LANG=C wc -c "$TMPLIST" | xargs | cut -f 1 -d ' ')
if test $dlsize -lt 32768; then
echo list is too small. can be bad.
exit 2
fi
zz "$ZIPLIST" <"$TMPLIST"
rm -f "$TMPLIST"
}
[ "$DISABLE_IPV6" != "1" ] && {
curl -H "Accept-Encoding: gzip" -k --fail --max-time 180 --connect-timeout 10 --retry 4 --max-filesize 33554432 "$URL6" | gunzip - >"$TMPLIST" ||
{
echo ipv4 list download failed
exit 2
}
dlsize=$(LANG=C wc -c "$TMPLIST" | xargs | cut -f 1 -d ' ')
if test $dlsize -lt 32768; then
echo list is too small. can be bad.
exit 2
fi
zz "$ZIPLIST6" <"$TMPLIST"
rm -f "$TMPLIST"
}
}
"$IPSET_DIR/create_ipset.sh"

View File

@ -0,0 +1,45 @@
#!/bin/sh
IPSET_DIR="$(dirname "$0")"
IPSET_DIR="$(cd "$IPSET_DIR"; pwd)"
. "$IPSET_DIR/def.sh"
TMPLIST="$TMPDIR/list_nethub.txt"
URL4="http://list.nethub.fi/reestr_smart4.txt"
URL6="http://list.nethub.fi/reestr_smart6.txt"
getuser && {
[ "$DISABLE_IPV4" != "1" ] && {
curl -vH "Accept-Encoding: gzip" -k --fail --max-time 180 --connect-timeout 10 --retry 4 --max-filesize 33554432 "$URL4" | gunzip - >"$TMPLIST" ||
{
echo ipv4 list download failed
exit 2
}
dlsize=$(LANG=C wc -c "$TMPLIST" | xargs | cut -f 1 -d ' ')
if test $dlsize -lt 32768; then
echo list is too small. can be bad.
exit 2
fi
zz "$ZIPLIST" <"$TMPLIST"
rm -f "$TMPLIST"
}
[ "$DISABLE_IPV6" != "1" ] && {
curl -H "Accept-Encoding: gzip" -k --fail --max-time 180 --connect-timeout 10 --retry 4 --max-filesize 33554432 "$URL6" | gunzip - >"$TMPLIST" ||
{
echo ipv4 list download failed
exit 2
}
dlsize=$(LANG=C wc -c "$TMPLIST" | xargs | cut -f 1 -d ' ')
if test $dlsize -lt 32768; then
echo list is too small. can be bad.
exit 2
fi
zz "$ZIPLIST6" <"$TMPLIST"
rm -f "$TMPLIST"
}
}
"$IPSET_DIR/create_ipset.sh"