mirror of
https://github.com/bol-van/zapret.git
synced 2024-12-02 14:40:52 +03:00
get_combined.sh http-https separation
This commit is contained in:
parent
4331604181
commit
b15afded1a
@ -1,3 +1,4 @@
|
||||
TMPDIR=/tmp
|
||||
ZIPSET=zapret
|
||||
ZIPLIST=$EXEDIR/zapret-ip.txt
|
||||
ZIPLIST_EXCLUDE=$EXEDIR/zapret-ip-exclude.txt
|
||||
@ -18,3 +19,10 @@ getuser()
|
||||
dig A +short +time=8 +tries=2 -f $ZUSERLIST_IPBAN | grep -E '^[^;].*[^.]$' | grep -vE '^192\.168\.[0-9]+\.[0-9]+$' | grep -vE '^127\.[0-9]+\.[0-9]+\.[0-9]+$' | grep -vE '^10\.[0-9]+\.[0-9]+\.[0-9]+$' | sort -u >$ZIPLIST_USER_IPBAN
|
||||
}
|
||||
}
|
||||
|
||||
cut_local()
|
||||
{
|
||||
grep -vE '^192\.168\.[0-9]+\.[0-9]+$' |
|
||||
grep -vE '^127\.[0-9]+\.[0-9]+\.[0-9]+$' |
|
||||
grep -vE '^10\.[0-9]+\.[0-9]+\.[0-9]+$'
|
||||
}
|
||||
|
@ -8,18 +8,11 @@ EXEDIR=$(dirname $SCRIPT)
|
||||
|
||||
#ZURL=https://github.com/zapret-info/z-i/raw/master/dump.csv
|
||||
ZURL=http://antizapret.prostovpn.org/iplist.txt
|
||||
ZIPLISTTMP=/tmp/zapret-ip.txt
|
||||
ZIPLISTTMP=$TMPDIR/zapret-ip.txt
|
||||
|
||||
getuser
|
||||
|
||||
#curl --fail --max-time 300 --max-filesize 33554432 -k -L "$ZURL" \
|
||||
# | sed -nre "s/([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})/\1\n/gp" \
|
||||
# | sed -nre "s/^[^0-9]*([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*$/\1/p" \
|
||||
# | grep -vE '^192\.168\.[0-9]+\.[0-9]+$' | grep -vE '^127\.[0-9]+\.[0-9]+\.[0-9]+$' | grep -vE '^10\.[0-9]+\.[0-9]+\.[0-9]+$' \
|
||||
# | sort -u \
|
||||
curl --fail --max-time 300 --max-filesize 33554432 -k -L "$ZURL" \
|
||||
| grep -vE '^192\.168\.[0-9]+\.[0-9]+$' | grep -vE '^127\.[0-9]+\.[0-9]+\.[0-9]+$' | grep -vE '^10\.[0-9]+\.[0-9]+\.[0-9]+$' \
|
||||
>$ZIPLISTTMP &&
|
||||
curl --fail --max-time 120 --max-filesize 10485760 -k -L "$ZURL" | cut_local >$ZIPLISTTMP &&
|
||||
{
|
||||
dlsize=$(wc -c "$ZIPLISTTMP" | cut -f 1 -d ' ')
|
||||
if test $dlsize -lt 204800; then
|
||||
|
@ -6,36 +6,37 @@ EXEDIR=$(dirname $SCRIPT)
|
||||
|
||||
. "$EXEDIR/def.sh"
|
||||
|
||||
ZREESTR=/tmp/reestr.txt
|
||||
ZANTIZAPRET=/tmp/antizapret.txt
|
||||
ZURL_REESTR=http://reestr.rublacklist.net/api/ips
|
||||
ZURL_ANTIZAPRET=http://antizapret.prostovpn.org/iplist.txt
|
||||
ZREESTR=$TMPDIR/reestr.txt
|
||||
ZURL_REESTR=http://reestr.rublacklist.net/api/current
|
||||
ZAZ=$TMPDIR/zapret-ip.txt
|
||||
ZURL_AZ=http://antizapret.prostovpn.org/iplist.txt
|
||||
|
||||
getuser
|
||||
|
||||
curl --fail --max-time 300 --max-filesize 41943040 "$ZURL_REESTR" |
|
||||
grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' |
|
||||
grep -vE '^192\.168\.[0-9]+\.[0-9]+$' |
|
||||
grep -vE '^127\.[0-9]+\.[0-9]+\.[0-9]+$' |
|
||||
grep -vE '^10\.[0-9]+\.[0-9]+\.[0-9]+$' |
|
||||
sort -u >$ZREESTR
|
||||
# assume all https banned by ip
|
||||
curl --fail --max-time 300 --max-filesize 41943040 "$ZURL_REESTR" -o $ZREESTR
|
||||
dlsize=$(wc -c "$ZREESTR" | cut -f 1 -d ' ')
|
||||
if test $dlsize -lt 10240; then
|
||||
if test $dlsize -lt 1048576; then
|
||||
echo reestr ip list is too small. can be bad.
|
||||
exit 2
|
||||
fi
|
||||
curl --fail --max-time 300 --max-filesize 33554432 -k -L "$ZURL_ANTIZAPRET" |
|
||||
grep -vE '^192\.168\.[0-9]+\.[0-9]+$' |
|
||||
grep -vE '^127\.[0-9]+\.[0-9]+\.[0-9]+$' |
|
||||
grep -vE '^10\.[0-9]+\.[0-9]+\.[0-9]+$' >$ZANTIZAPRET
|
||||
dlsize=$(wc -c "$ZANTIZAPRET" | cut -f 1 -d ' ')
|
||||
if test $dlsize -lt 10240; then
|
||||
echo antizapret ip list is too small. can be bad.
|
||||
sed -i 's/\\n/\r\n/g' $ZREESTR
|
||||
grep "https://" $ZREESTR |
|
||||
grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' |
|
||||
cut_local |
|
||||
sort -u >$ZIPLIST_IPBAN
|
||||
|
||||
rm -f $ZREESTR
|
||||
|
||||
curl --fail --max-time 120 --max-filesize 10485760 -k -L "$ZURL_AZ" | cut_local >$ZAZ &&
|
||||
{
|
||||
dlsize=$(wc -c "$ZAZ" | cut -f 1 -d ' ')
|
||||
if test $dlsize -lt 204800; then
|
||||
echo antizapret list file is too small. can be bad.
|
||||
exit 2
|
||||
fi
|
||||
|
||||
grep -vFf $ZREESTR $ZANTIZAPRET >$ZIPLIST
|
||||
mv -f $ZREESTR $ZIPLIST_IPBAN
|
||||
rm -f $ZANTIZAPRET
|
||||
|
||||
"$EXEDIR/create_ipset.sh"
|
||||
fi
|
||||
# do not include hosts banned by ip
|
||||
grep -vFf $ZIPLIST_IPBAN $ZAZ >$ZIPLIST
|
||||
rm -f $ZAZ
|
||||
"$EXEDIR/create_ipset.sh"
|
||||
}
|
||||
|
@ -6,9 +6,9 @@ EXEDIR=$(dirname $SCRIPT)
|
||||
|
||||
. "$EXEDIR/def.sh"
|
||||
|
||||
ZREESTR=/tmp/zapret.txt
|
||||
ZDIG=/tmp/zapret-dig.txt
|
||||
ZIPLISTTMP=/tmp/zapret-ip.txt
|
||||
ZREESTR=$TMPDIR/zapret.txt
|
||||
ZDIG=$TMPDIR/zapret-dig.txt
|
||||
ZIPLISTTMP=$TMPDIR/zapret-ip.txt
|
||||
ZURL=http://reestr.rublacklist.net/api/current
|
||||
|
||||
getuser
|
||||
|
15
readme.txt
15
readme.txt
@ -126,9 +126,9 @@ tpws - это transparent proxy.
|
||||
Провайдеры
|
||||
----------
|
||||
|
||||
mns.ru : нужна замена window size на 3. mns.ru убирает заблокированные домены из выдачи своих DNS серверов. меняем на сторонние. аплинк westcall банит некоторые сайты по IP адресу, закономерность не ясна.
|
||||
mns.ru : нужна замена window size на 3. mns.ru убирает заблокированные домены из выдачи своих DNS серверов. меняем на сторонние. аплинк westcall банит по IP адреса из списка РКН, где присутствует https
|
||||
|
||||
at-home.ru : при дефолтном подключении все блокировалось по IP. после заказа внешнего IP (static NAT) по IP блокируются немногие сайты. закономерность не ясна.
|
||||
at-home.ru : при дефолтном подключении все блокировалось по IP. после заказа внешнего IP (static NAT) банятся по IP https адреса
|
||||
Для обхода DPI работает замена windows size на 3, но была замечена нестабильность и подвисания. Лучше всего работает сплит запроса около метода в течение всей http сессии.
|
||||
В https подменяется сертификат. Если у вас все блокируется по IP, то нет никакого способа, кроме как проксирование порта 80 по аналогии с 443.
|
||||
|
||||
@ -184,13 +184,16 @@ tiera : Требуется сплит http запросов в течение в
|
||||
от IP адреса. Поэтому скрипт ресолвит все сам, хотя это и занимает много времени.
|
||||
Дополнительное требование - объем памяти в /tmp для сохранения туда скачанного файла, размер которого
|
||||
несколько Мб и продолжает расти. На роутерах openwrt /tmp представляет собой tmpfs , то есть ramdisk.
|
||||
В случае роутера с 32 мб памяти ее может не хватить, и будут проблемы. В этом случае используйте
|
||||
В случае роутера с 32 мб памяти ее не хватит, и будут проблемы. В этом случае используйте
|
||||
следующий скрипт.
|
||||
|
||||
3) ipset/get_anizapret.sh. быстро и без нагрузки на роутер получает лист с https://github.com/zapret-info .
|
||||
3) ipset/get_anizapret.sh. быстро и без нагрузки на роутер получает лист с antizapret.prostovpn.org.
|
||||
|
||||
4) ipset/get_combined.sh. для провайдеров, которые блокируют по IP https, а остальное по DPI. IP https заносится в ipset ipban, остальные в ipset zapret.
|
||||
Поскольку скачивается большой список РКН, требования к месту в /tmp аналоичны 2)
|
||||
|
||||
Все варианты рассмотренных скриптов автоматически создают и заполняют ipset.
|
||||
Варианты 2 и 3 дополнительно вызывают вариант 1.
|
||||
Варианты 2-4 дополнительно вызывают вариант 1.
|
||||
|
||||
На роутерах не рекомендуется вызывать эти скрипты чаще раза за 2 суток, поскольку сохранение идет
|
||||
либо во внутреннюю флэш память роутера, либо в случае extroot - на флэшку.
|
||||
@ -201,7 +204,7 @@ tiera : Требуется сплит http запросов в течение в
|
||||
|
||||
Можно внести список доменов в ipset/zapret-hosts-user-ipban.txt. Их ip адреса будут помещены
|
||||
в отдельный ipset "ipban". Он может использоваться для принудительного завертывания всех
|
||||
соединений на прозрачный proxy "redsocks".
|
||||
соединений на прозрачный proxy "redsocks" или на VPN.
|
||||
|
||||
|
||||
Пример установки на debian 7
|
||||
|
Loading…
Reference in New Issue
Block a user