mirror of
https://github.com/bol-van/zapret.git
synced 2024-12-23 14:53:18 +00:00
ipset/get_antizapret.sh
This commit is contained in:
parent
f645ec7ab6
commit
539b44298c
@ -30,3 +30,7 @@ ISP support : TKT support
|
||||
v5
|
||||
|
||||
nfqws : ipv6 support in nfqws
|
||||
|
||||
v6
|
||||
|
||||
ipset : added "get_antizapret.sh"
|
||||
|
23
ipset/get_antizapret.sh
Executable file
23
ipset/get_antizapret.sh
Executable file
@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
# get ip list from antizapret.prostovpn.org
|
||||
|
||||
SCRIPT=$(readlink -f $0)
|
||||
EXEDIR=$(dirname $SCRIPT)
|
||||
|
||||
. "$EXEDIR/def.sh"
|
||||
|
||||
ZURL=http://antizapret.prostovpn.org/proxy.pac
|
||||
ZIPLISTTMP=/tmp/zapret-ip.txt
|
||||
|
||||
$EXEDIR/get_user.sh
|
||||
|
||||
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/p" >$ZIPLISTTMP &&
|
||||
{
|
||||
dlsize=$(wc -c "$ZIPLISTTMP" | cut -f 1 -d ' ')
|
||||
if test $dlsize -lt 20480; then
|
||||
echo list file is too small. can be bad.
|
||||
exit 2
|
||||
fi
|
||||
mv -f $ZIPLISTTMP $ZIPLIST
|
||||
"$EXEDIR/create_ipset.sh"
|
||||
}
|
36
readme.txt
36
readme.txt
@ -1,4 +1,4 @@
|
||||
zapret v.5
|
||||
zapret v.6
|
||||
|
||||
Для чего это надо
|
||||
-----------------
|
||||
@ -131,6 +131,33 @@ tkt : помогает разделение http запроса на сегме
|
||||
iptables -t raw -I PREROUTING -p tcp --sport 80 -m string --hex-string "|0D0A|Location: http://95.167.13.50" --algo bm -j DROP --from 40 --to 200
|
||||
Ростелеком : см tkt
|
||||
|
||||
Способы получения списка заблокированных IP
|
||||
-------------------------------------------
|
||||
|
||||
1) Внесите заблокирванные домены в ipset/zapret-hosts-user.txt и запустите ipset/get_user.sh
|
||||
На выходе получите ipset/zapret-ip-user.txt с IP адресами.
|
||||
|
||||
2) ipset/get_reestr.sh получает список доменов от rublacklist и дальше их ресолвит в ip адреса
|
||||
в файл ipset/zapret-ip.txt. В этом списке есть готовые IP адреса, но судя во всему они там в точности в том виде,
|
||||
что вносит в реестр РосКомПозор. Адреса могут меняться, позор не успевает их обновлять, а провайдеры редко
|
||||
банят по IP : вместо этого они банят http запросы с "нехорошим" заголовком "Host:" вне зависимости
|
||||
от IP адреса. Поэтому скрипт ресолвит все сам, хотя это и занимает много времени.
|
||||
Дополнительное требование - объем памяти в /tmp для сохранения туда скачанного файла, размер которого
|
||||
несколько Мб и продолжает расти. На роутерах openwrt /tmp представляет собой tmpfs , то есть ramdisk.
|
||||
В случае роутера с 32 мб памяти ее может не хватить, и будут проблемы. В этом случае используйте
|
||||
следующий скрипт.
|
||||
Скрипт автоматически вызывает ipset/get_user.sh и обновляет ipset
|
||||
|
||||
3) ipset/get_anizapret.sh. быстро и без нагрузки на роутер получает лист с http://antizapret.prostovpn.org.
|
||||
Скрипт автоматически вызывает ipset/get_user.sh и обновляет ipset
|
||||
|
||||
На роутерах не рекомендуется вызывать эти скрипты чаще раза за 2 суток, поскольку сохранение идет
|
||||
либо во внутреннюю флэш память роутера, либо в случае extroot - на флэшку.
|
||||
В обоих случаях слишком частая запись может убить флэшку, но если это произойдет с внутренней
|
||||
флэш памятью, то вы просто убьете роутер.
|
||||
|
||||
Обновление ipset выполняет скрипт ipset/create_ipset.sh
|
||||
|
||||
Пример установки на debian 7
|
||||
----------------------------
|
||||
Debian 7 изначально содержит ядро 3.2. Оно не умеет делать DNAT на localhost.
|
||||
@ -152,10 +179,10 @@ Debian 7 изначально содержит ядро 3.2. Оно не уме
|
||||
В /etc/init.d/zapret выбрать пераметр "ISP". В зависимости от него будут применены нужные правила.
|
||||
Там же выбрать параметр SLAVE_ETH, соответствующий названию внутреннего сетевого интерфейса.
|
||||
Включить автостарт : chkconfig zapret on
|
||||
(опционально) Вручную первый раз получить новый список ip адресов : /opt/zapret/ipset/get_reestr.sh
|
||||
(опционально) Вручную первый раз получить новый список ip адресов : /opt/zapret/ipset/get_antizapret.sh
|
||||
Зашедулить задание обновления листа :
|
||||
crontab -e
|
||||
Создать строчку "0 12 * * */2 /opt/zapret/ipset/get_reestr.sh". Это значит в 12:00 каждые 2 дня обновлять список.
|
||||
Создать строчку "0 12 * * */2 /opt/zapret/ipset/get_antizapret.sh". Это значит в 12:00 каждые 2 дня обновлять список.
|
||||
Запустить службу : service zapret start
|
||||
Попробовать зайти куда-нибудь : http://ej.ru, http://kinozal.tv, http://grani.ru.
|
||||
Если не работает, то остановить службу zapret, добавить правило в iptables вручную,
|
||||
@ -171,7 +198,6 @@ Debian 7 изначально содержит ядро 3.2. Оно не уме
|
||||
ubuntu 12,14
|
||||
------------
|
||||
|
||||
Для ubuntu 12 рекомендую обновить ядро до linux-image-generic-lts-trusty по причинам, аналогичным debian 7.
|
||||
Имеется готовый конфиг для upstart : zapret.conf. Его нужно скопировать в /etc/init и настроить по аналогии с debian.
|
||||
Запуск службы : "start zapret"
|
||||
Останов службы : "stop zapret"
|
||||
@ -219,7 +245,7 @@ opkg install iptables-mod-extra iptables-mod-nfqueue iptables-mod-filter iptable
|
||||
Посмотреть через iptables -L или через luci вкладку "firewall" появились ли нужные правила.
|
||||
Зашедулить задание обновления листа :
|
||||
crontab -e
|
||||
Создать строчку "0 12 * * */2 /opt/zapret/ipset/get_reestr.sh". Это значит в 12:00 каждые 2 дня обновлять список.
|
||||
Создать строчку "0 12 * * */2 /opt/zapret/ipset/get_antizapret.sh". Это значит в 12:00 каждые 2 дня обновлять список.
|
||||
|
||||
Если у вас linux x64, то вместо компиляции toolchain можно использовать пре-компилированный SDK от разработчиков openwrt.
|
||||
https://downloads.openwrt.org/
|
||||
|
Loading…
Reference in New Issue
Block a user