mirror of
https://github.com/bol-van/zapret.git
synced 2024-12-23 06:42:34 +00:00
ipset optimizations
This commit is contained in:
parent
eb9edbde6e
commit
d3e53ebede
@ -53,3 +53,7 @@ ISP support : added DNS filtering to ubuntu and debian scripts
|
|||||||
v10
|
v10
|
||||||
|
|
||||||
tpws : added split-pos option. split every message at specified position
|
tpws : added split-pos option. split every message at specified position
|
||||||
|
|
||||||
|
v11
|
||||||
|
|
||||||
|
ipset : scripts optimizations
|
||||||
|
10
ipset/def.sh
10
ipset/def.sh
@ -7,3 +7,13 @@ ZIPSET_IPBAN=ipban
|
|||||||
ZIPLIST_IPBAN=$EXEDIR/zapret-ip-ipban.txt
|
ZIPLIST_IPBAN=$EXEDIR/zapret-ip-ipban.txt
|
||||||
ZIPLIST_USER_IPBAN=$EXEDIR/zapret-ip-user-ipban.txt
|
ZIPLIST_USER_IPBAN=$EXEDIR/zapret-ip-user-ipban.txt
|
||||||
ZUSERLIST_IPBAN=$EXEDIR/zapret-hosts-user-ipban.txt
|
ZUSERLIST_IPBAN=$EXEDIR/zapret-hosts-user-ipban.txt
|
||||||
|
|
||||||
|
getuser()
|
||||||
|
{
|
||||||
|
[ -f $ZUSERLIST ] && {
|
||||||
|
dig A +short +time=8 +tries=2 -f $ZUSERLIST | 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 | uniq >$ZIPLIST_USER
|
||||||
|
}
|
||||||
|
[ -f $ZUSERLIST_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 | uniq >$ZIPLIST_USER_IPBAN
|
||||||
|
}
|
||||||
|
}
|
@ -9,7 +9,7 @@ EXEDIR=$(dirname $SCRIPT)
|
|||||||
ZURL=http://antizapret.prostovpn.org/proxy.pac
|
ZURL=http://antizapret.prostovpn.org/proxy.pac
|
||||||
ZIPLISTTMP=/tmp/zapret-ip.txt
|
ZIPLISTTMP=/tmp/zapret-ip.txt
|
||||||
|
|
||||||
$EXEDIR/get_user.sh
|
getuser
|
||||||
|
|
||||||
curl --fail --max-time 60 --max-filesize 4194304 "$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" >$ZIPLISTTMP &&
|
curl --fail --max-time 60 --max-filesize 4194304 "$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" >$ZIPLISTTMP &&
|
||||||
{
|
{
|
||||||
|
@ -11,7 +11,7 @@ ZDIG=/tmp/zapret-dig.txt
|
|||||||
ZIPLISTTMP=/tmp/zapret-ip.txt
|
ZIPLISTTMP=/tmp/zapret-ip.txt
|
||||||
ZURL=http://reestr.rublacklist.net/api/current
|
ZURL=http://reestr.rublacklist.net/api/current
|
||||||
|
|
||||||
$EXEDIR/get_user.sh
|
getuser
|
||||||
|
|
||||||
curl --fail --max-time 60 --max-filesize 20971520 "$ZURL" >$ZREESTR && {
|
curl --fail --max-time 60 --max-filesize 20971520 "$ZURL" >$ZREESTR && {
|
||||||
dlsize=$(wc -c "$ZREESTR" | cut -f 1 -d ' ')
|
dlsize=$(wc -c "$ZREESTR" | cut -f 1 -d ' ')
|
||||||
|
@ -6,8 +6,6 @@ EXEDIR=$(dirname $SCRIPT)
|
|||||||
|
|
||||||
. "$EXEDIR/def.sh"
|
. "$EXEDIR/def.sh"
|
||||||
|
|
||||||
$EXEDIR/get_user_ipban.sh
|
getuser
|
||||||
|
|
||||||
[ -f $ZUSERLIST ] && {
|
"$EXEDIR/create_ipset.sh"
|
||||||
dig A +short +time=8 +tries=2 -f $ZUSERLIST | 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 | uniq >$ZIPLIST_USER
|
|
||||||
}
|
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# resolve user host list
|
|
||||||
|
|
||||||
SCRIPT=$(readlink -f $0)
|
|
||||||
EXEDIR=$(dirname $SCRIPT)
|
|
||||||
|
|
||||||
. "$EXEDIR/def.sh"
|
|
||||||
|
|
||||||
[ -f $ZUSERLIST_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 | uniq >$ZIPLIST_USER_IPBAN
|
|
||||||
}
|
|
17
readme.txt
17
readme.txt
@ -1,4 +1,5 @@
|
|||||||
zapret v.10
|
zapret v.11
|
||||||
|
|
||||||
Для чего это надо
|
Для чего это надо
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
@ -115,6 +116,7 @@ tpws - это transparent proxy.
|
|||||||
--hostdot ; добавление точки после имени хоста : "Host: kinozal.tv."
|
--hostdot ; добавление точки после имени хоста : "Host: kinozal.tv."
|
||||||
--methodspace ; добавить пробел после метода : "GET /" => "GET /"
|
--methodspace ; добавить пробел после метода : "GET /" => "GET /"
|
||||||
Параметры манипуляции могут сочетаться в любых комбинациях.
|
Параметры манипуляции могут сочетаться в любых комбинациях.
|
||||||
|
Есть исключение : split-pos заменяет split-http-req.
|
||||||
|
|
||||||
Провайдеры
|
Провайдеры
|
||||||
----------
|
----------
|
||||||
@ -152,17 +154,23 @@ tiera : сама тиера до последнего ничего не бани
|
|||||||
несколько Мб и продолжает расти. На роутерах openwrt /tmp представляет собой tmpfs , то есть ramdisk.
|
несколько Мб и продолжает расти. На роутерах openwrt /tmp представляет собой tmpfs , то есть ramdisk.
|
||||||
В случае роутера с 32 мб памяти ее может не хватить, и будут проблемы. В этом случае используйте
|
В случае роутера с 32 мб памяти ее может не хватить, и будут проблемы. В этом случае используйте
|
||||||
следующий скрипт.
|
следующий скрипт.
|
||||||
Скрипт автоматически вызывает ipset/get_user.sh и обновляет ipset
|
|
||||||
|
|
||||||
3) ipset/get_anizapret.sh. быстро и без нагрузки на роутер получает лист с http://antizapret.prostovpn.org.
|
3) ipset/get_anizapret.sh. быстро и без нагрузки на роутер получает лист с http://antizapret.prostovpn.org.
|
||||||
Скрипт автоматически вызывает ipset/get_user.sh и обновляет ipset
|
|
||||||
|
Все варианты рассмотренных скриптов автоматически создают и заполняют ipset.
|
||||||
|
Варианты 2 и 3 дополнительно вызывают вариант 1.
|
||||||
|
|
||||||
На роутерах не рекомендуется вызывать эти скрипты чаще раза за 2 суток, поскольку сохранение идет
|
На роутерах не рекомендуется вызывать эти скрипты чаще раза за 2 суток, поскольку сохранение идет
|
||||||
либо во внутреннюю флэш память роутера, либо в случае extroot - на флэшку.
|
либо во внутреннюю флэш память роутера, либо в случае extroot - на флэшку.
|
||||||
В обоих случаях слишком частая запись может убить флэшку, но если это произойдет с внутренней
|
В обоих случаях слишком частая запись может убить флэшку, но если это произойдет с внутренней
|
||||||
флэш памятью, то вы просто убьете роутер.
|
флэш памятью, то вы просто убьете роутер.
|
||||||
|
|
||||||
Обновление ipset выполняет скрипт ipset/create_ipset.sh
|
Принудительное обновление ipset выполняет скрипт ipset/create_ipset.sh
|
||||||
|
|
||||||
|
Можно внести список доменов в ipset/zapret-hosts-user-ipban.txt. Их ip адреса будут помещены
|
||||||
|
в отдельный ipset "ipban". Он может использоваться для принудительного завертывания всех
|
||||||
|
соединений на прозрачный proxy "redsocks".
|
||||||
|
|
||||||
|
|
||||||
Пример установки на debian 7
|
Пример установки на debian 7
|
||||||
----------------------------
|
----------------------------
|
||||||
@ -207,6 +215,7 @@ ubuntu 12,14
|
|||||||
Имеется готовый конфиг для upstart : zapret.conf. Его нужно скопировать в /etc/init и настроить по аналогии с debian.
|
Имеется готовый конфиг для upstart : zapret.conf. Его нужно скопировать в /etc/init и настроить по аналогии с debian.
|
||||||
Запуск службы : "start zapret"
|
Запуск службы : "start zapret"
|
||||||
Останов службы : "stop zapret"
|
Останов службы : "stop zapret"
|
||||||
|
Ubuntu 12 так же, как и debian 7, оснащено ядром 3.2. См замечание в разделе "debian 7".
|
||||||
|
|
||||||
Другие linux системы
|
Другие linux системы
|
||||||
--------------------
|
--------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user