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
|
ZIPSET=zapret
|
||||||
ZIPLIST=$EXEDIR/zapret-ip.txt
|
ZIPLIST=$EXEDIR/zapret-ip.txt
|
||||||
ZIPLIST_EXCLUDE=$EXEDIR/zapret-ip-exclude.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
|
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=https://github.com/zapret-info/z-i/raw/master/dump.csv
|
||||||
ZURL=http://antizapret.prostovpn.org/iplist.txt
|
ZURL=http://antizapret.prostovpn.org/iplist.txt
|
||||||
ZIPLISTTMP=/tmp/zapret-ip.txt
|
ZIPLISTTMP=$TMPDIR/zapret-ip.txt
|
||||||
|
|
||||||
getuser
|
getuser
|
||||||
|
|
||||||
#curl --fail --max-time 300 --max-filesize 33554432 -k -L "$ZURL" \
|
curl --fail --max-time 120 --max-filesize 10485760 -k -L "$ZURL" | cut_local >$ZIPLISTTMP &&
|
||||||
# | 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 &&
|
|
||||||
{
|
{
|
||||||
dlsize=$(wc -c "$ZIPLISTTMP" | cut -f 1 -d ' ')
|
dlsize=$(wc -c "$ZIPLISTTMP" | cut -f 1 -d ' ')
|
||||||
if test $dlsize -lt 204800; then
|
if test $dlsize -lt 204800; then
|
||||||
|
@ -6,36 +6,37 @@ EXEDIR=$(dirname $SCRIPT)
|
|||||||
|
|
||||||
. "$EXEDIR/def.sh"
|
. "$EXEDIR/def.sh"
|
||||||
|
|
||||||
ZREESTR=/tmp/reestr.txt
|
ZREESTR=$TMPDIR/reestr.txt
|
||||||
ZANTIZAPRET=/tmp/antizapret.txt
|
ZURL_REESTR=http://reestr.rublacklist.net/api/current
|
||||||
ZURL_REESTR=http://reestr.rublacklist.net/api/ips
|
ZAZ=$TMPDIR/zapret-ip.txt
|
||||||
ZURL_ANTIZAPRET=http://antizapret.prostovpn.org/iplist.txt
|
ZURL_AZ=http://antizapret.prostovpn.org/iplist.txt
|
||||||
|
|
||||||
getuser
|
getuser
|
||||||
|
|
||||||
curl --fail --max-time 300 --max-filesize 41943040 "$ZURL_REESTR" |
|
# assume all https banned by ip
|
||||||
grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' |
|
curl --fail --max-time 300 --max-filesize 41943040 "$ZURL_REESTR" -o $ZREESTR
|
||||||
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
|
|
||||||
dlsize=$(wc -c "$ZREESTR" | cut -f 1 -d ' ')
|
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.
|
echo reestr ip list is too small. can be bad.
|
||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
curl --fail --max-time 300 --max-filesize 33554432 -k -L "$ZURL_ANTIZAPRET" |
|
sed -i 's/\\n/\r\n/g' $ZREESTR
|
||||||
grep -vE '^192\.168\.[0-9]+\.[0-9]+$' |
|
grep "https://" $ZREESTR |
|
||||||
grep -vE '^127\.[0-9]+\.[0-9]+\.[0-9]+$' |
|
grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' |
|
||||||
grep -vE '^10\.[0-9]+\.[0-9]+\.[0-9]+$' >$ZANTIZAPRET
|
cut_local |
|
||||||
dlsize=$(wc -c "$ZANTIZAPRET" | cut -f 1 -d ' ')
|
sort -u >$ZIPLIST_IPBAN
|
||||||
if test $dlsize -lt 10240; then
|
|
||||||
echo antizapret ip list is too small. can be bad.
|
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
|
exit 2
|
||||||
fi
|
fi
|
||||||
|
# do not include hosts banned by ip
|
||||||
grep -vFf $ZREESTR $ZANTIZAPRET >$ZIPLIST
|
grep -vFf $ZIPLIST_IPBAN $ZAZ >$ZIPLIST
|
||||||
mv -f $ZREESTR $ZIPLIST_IPBAN
|
rm -f $ZAZ
|
||||||
rm -f $ZANTIZAPRET
|
|
||||||
|
|
||||||
"$EXEDIR/create_ipset.sh"
|
"$EXEDIR/create_ipset.sh"
|
||||||
|
}
|
||||||
|
@ -6,9 +6,9 @@ EXEDIR=$(dirname $SCRIPT)
|
|||||||
|
|
||||||
. "$EXEDIR/def.sh"
|
. "$EXEDIR/def.sh"
|
||||||
|
|
||||||
ZREESTR=/tmp/zapret.txt
|
ZREESTR=$TMPDIR/zapret.txt
|
||||||
ZDIG=/tmp/zapret-dig.txt
|
ZDIG=$TMPDIR/zapret-dig.txt
|
||||||
ZIPLISTTMP=/tmp/zapret-ip.txt
|
ZIPLISTTMP=$TMPDIR/zapret-ip.txt
|
||||||
ZURL=http://reestr.rublacklist.net/api/current
|
ZURL=http://reestr.rublacklist.net/api/current
|
||||||
|
|
||||||
getuser
|
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 сессии.
|
Для обхода DPI работает замена windows size на 3, но была замечена нестабильность и подвисания. Лучше всего работает сплит запроса около метода в течение всей http сессии.
|
||||||
В https подменяется сертификат. Если у вас все блокируется по IP, то нет никакого способа, кроме как проксирование порта 80 по аналогии с 443.
|
В https подменяется сертификат. Если у вас все блокируется по IP, то нет никакого способа, кроме как проксирование порта 80 по аналогии с 443.
|
||||||
|
|
||||||
@ -184,13 +184,16 @@ tiera : Требуется сплит http запросов в течение в
|
|||||||
от IP адреса. Поэтому скрипт ресолвит все сам, хотя это и занимает много времени.
|
от IP адреса. Поэтому скрипт ресолвит все сам, хотя это и занимает много времени.
|
||||||
Дополнительное требование - объем памяти в /tmp для сохранения туда скачанного файла, размер которого
|
Дополнительное требование - объем памяти в /tmp для сохранения туда скачанного файла, размер которого
|
||||||
несколько Мб и продолжает расти. На роутерах openwrt /tmp представляет собой tmpfs , то есть ramdisk.
|
несколько Мб и продолжает расти. На роутерах 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.
|
Все варианты рассмотренных скриптов автоматически создают и заполняют ipset.
|
||||||
Варианты 2 и 3 дополнительно вызывают вариант 1.
|
Варианты 2-4 дополнительно вызывают вариант 1.
|
||||||
|
|
||||||
На роутерах не рекомендуется вызывать эти скрипты чаще раза за 2 суток, поскольку сохранение идет
|
На роутерах не рекомендуется вызывать эти скрипты чаще раза за 2 суток, поскольку сохранение идет
|
||||||
либо во внутреннюю флэш память роутера, либо в случае extroot - на флэшку.
|
либо во внутреннюю флэш память роутера, либо в случае extroot - на флэшку.
|
||||||
@ -201,7 +204,7 @@ tiera : Требуется сплит http запросов в течение в
|
|||||||
|
|
||||||
Можно внести список доменов в ipset/zapret-hosts-user-ipban.txt. Их ip адреса будут помещены
|
Можно внести список доменов в ipset/zapret-hosts-user-ipban.txt. Их ip адреса будут помещены
|
||||||
в отдельный ipset "ipban". Он может использоваться для принудительного завертывания всех
|
в отдельный ipset "ipban". Он может использоваться для принудительного завертывания всех
|
||||||
соединений на прозрачный proxy "redsocks".
|
соединений на прозрачный proxy "redsocks" или на VPN.
|
||||||
|
|
||||||
|
|
||||||
Пример установки на debian 7
|
Пример установки на debian 7
|
||||||
|
Loading…
Reference in New Issue
Block a user