ipset optimizations

This commit is contained in:
bolvan 2016-03-16 08:33:26 +03:00
parent eb9edbde6e
commit d3e53ebede
7 changed files with 31 additions and 21 deletions

View File

@ -53,3 +53,7 @@ ISP support : added DNS filtering to ubuntu and debian scripts
v10
tpws : added split-pos option. split every message at specified position
v11
ipset : scripts optimizations

View File

@ -7,3 +7,13 @@ ZIPSET_IPBAN=ipban
ZIPLIST_IPBAN=$EXEDIR/zapret-ip-ipban.txt
ZIPLIST_USER_IPBAN=$EXEDIR/zapret-ip-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
}
}

View File

@ -9,7 +9,7 @@ EXEDIR=$(dirname $SCRIPT)
ZURL=http://antizapret.prostovpn.org/proxy.pac
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 &&
{

View File

@ -11,7 +11,7 @@ ZDIG=/tmp/zapret-dig.txt
ZIPLISTTMP=/tmp/zapret-ip.txt
ZURL=http://reestr.rublacklist.net/api/current
$EXEDIR/get_user.sh
getuser
curl --fail --max-time 60 --max-filesize 20971520 "$ZURL" >$ZREESTR && {
dlsize=$(wc -c "$ZREESTR" | cut -f 1 -d ' ')

View File

@ -6,8 +6,6 @@ EXEDIR=$(dirname $SCRIPT)
. "$EXEDIR/def.sh"
$EXEDIR/get_user_ipban.sh
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
}
"$EXEDIR/create_ipset.sh"

View File

@ -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
}

View File

@ -1,4 +1,5 @@
zapret v.10
zapret v.11
Для чего это надо
-----------------
@ -115,6 +116,7 @@ tpws - это transparent proxy.
--hostdot ; добавление точки после имени хоста : "Host: kinozal.tv."
--methodspace ; добавить пробел после метода : "GET /" => "GET /"
Параметры манипуляции могут сочетаться в любых комбинациях.
Есть исключение : split-pos заменяет split-http-req.
Провайдеры
----------
@ -152,17 +154,23 @@ tiera : сама тиера до последнего ничего не бани
несколько Мб и продолжает расти. На роутерах openwrt /tmp представляет собой tmpfs , то есть ramdisk.
В случае роутера с 32 мб памяти ее может не хватить, и будут проблемы. В этом случае используйте
следующий скрипт.
Скрипт автоматически вызывает ipset/get_user.sh и обновляет ipset
3) ipset/get_anizapret.sh. быстро и без нагрузки на роутер получает лист с http://antizapret.prostovpn.org.
Скрипт автоматически вызывает ipset/get_user.sh и обновляет ipset
Все варианты рассмотренных скриптов автоматически создают и заполняют ipset.
Варианты 2 и 3 дополнительно вызывают вариант 1.
На роутерах не рекомендуется вызывать эти скрипты чаще раза за 2 суток, поскольку сохранение идет
либо во внутреннюю флэш память роутера, либо в случае extroot - на флэшку.
В обоих случаях слишком частая запись может убить флэшку, но если это произойдет с внутренней
флэш памятью, то вы просто убьете роутер.
Обновление ipset выполняет скрипт ipset/create_ipset.sh
Принудительное обновление ipset выполняет скрипт ipset/create_ipset.sh
Можно внести список доменов в ipset/zapret-hosts-user-ipban.txt. Их ip адреса будут помещены
в отдельный ipset "ipban". Он может использоваться для принудительного завертывания всех
соединений на прозрачный proxy "redsocks".
Пример установки на debian 7
----------------------------
@ -207,6 +215,7 @@ ubuntu 12,14
Имеется готовый конфиг для upstart : zapret.conf. Его нужно скопировать в /etc/init и настроить по аналогии с debian.
Запуск службы : "start zapret"
Останов службы : "stop zapret"
Ubuntu 12 так же, как и debian 7, оснащено ядром 3.2. См замечание в разделе "debian 7".
Другие linux системы
--------------------