readme update

This commit is contained in:
bolvan 2016-12-09 12:41:48 +03:00
parent 9e0f96648c
commit 37e373ef31

View File

@ -62,7 +62,7 @@ iptables -t raw -I PREROUTING -p tcp --sport 80 --tcp-flags SYN,ACK SYN,ACK -j N
iptables -t raw -I PREROUTING -p tcp --sport 80 --tcp-flags SYN,ACK SYN,ACK -m set --match-set zapret src -j NFQUEUE --queue-num 200 --queue-bypass iptables -t raw -I PREROUTING -p tcp --sport 80 --tcp-flags SYN,ACK SYN,ACK -m set --match-set zapret src -j NFQUEUE --queue-num 200 --queue-bypass
Такии образом воздействие будет производиться только на ip адреса, относящиеся к заблокированным сайтам. Таким образом воздействие будет производиться только на ip адреса, относящиеся к заблокированным сайтам.
Список можно обновлять через cron раз в несколько дней. Список можно обновлять через cron раз в несколько дней.
Если обновлять через rublacklist, то это займет довольно долго. Более часа. Но ресурсов Если обновлять через rublacklist, то это займет довольно долго. Более часа. Но ресурсов
этот процесс не отнимает, так что никаких проблем это не вызовет, особенно, если система этот процесс не отнимает, так что никаких проблем это не вызовет, особенно, если система
@ -77,7 +77,7 @@ iptables -t mangle -I POSTROUTING -p tcp --dport 80 -m set --match-set zapret ds
В этом случае так же возможны дополнительные моменты. DPI может ловить только первый http запрос, игнорируя В этом случае так же возможны дополнительные моменты. DPI может ловить только первый http запрос, игнорируя
последующие запросы в keep-alive сессии. Тогда можем уменьшить нагрузку на проц, отказавшись от процессинга ненужных пакетов. последующие запросы в keep-alive сессии. Тогда можем уменьшить нагрузку на проц, отказавшись от процессинга ненужных пакетов.
iptables -t mangle -I POSTROUTING -p tcp --dport 80 -m set --match-set zapret dst -m connbytes --connbytes-dir=original --connbytes-mode=packets --connbytes 1:5 -j NFQUEUE --queue-num 200 --queue-bypass iptables -t mangle -I POSTROUTING -p tcp --dport 80 -m connbytes --connbytes-dir=original --connbytes-mode=packets --connbytes 1:5 -m set --match-set zapret dst -j NFQUEUE --queue-num 200 --queue-bypass
Случается так, что провайдер мониторит всю HTTP сессию с keep-alive запросами. В этом случае Случается так, что провайдер мониторит всю HTTP сессию с keep-alive запросами. В этом случае
недостаточно ограничивать TCP window при установлении соединения. Необходимо посылать отдельными недостаточно ограничивать TCP window при установлении соединения. Необходимо посылать отдельными
@ -246,20 +246,23 @@ ubuntu 16,debian 8
Именно так решается вопрос в случае с openwrt, поскольку там своя система управления фаерволом. Именно так решается вопрос в случае с openwrt, поскольку там своя система управления фаерволом.
При повторном применении правил она могла бы поломать настройки iptables, сделанные скриптом из init.d. При повторном применении правил она могла бы поломать настройки iptables, сделанные скриптом из init.d.
Что делать с openwrt Что делать с openwrt/LEDE
-------------------- -------------------------
Установить дополнительные пакеты : Установить дополнительные пакеты :
opkg update opkg update
opkg install iptables-mod-extra iptables-mod-nfqueue iptables-mod-filter iptables-mod-ipopt ipset curl bind-tools opkg install iptables-mod-extra iptables-mod-nfqueue iptables-mod-filter iptables-mod-ipopt ipset curl bind-tools
Самая главная трудность - скомпилировать программы на C. Самая главная трудность - скомпилировать программы на C. Это можно сделать на linux x64 при помощи SDK, который
Это можно сделать средствами кросс-компиляции на любой традиционной linux системе. можно скачать с официального сайта openwrt или LEDE. Но процесс кросс компиляции - это всегда сложности.
Читайте compile/build_howto_openwrt.txt. Недостаточно запустить make как на традиционной linux системе.
Ваша задача - получить ipk файлы для tpws и nfqws. Поэтому в binaries имеются готовые статические бинарики для всех самых распространенных архитектур.
Статическая сборка означает, что бинарик не зависит от типа libc (glibc, uclibc или musl) и наличия установленных so - его можно использовать сразу.
Лишь бы подходил тип CPU. У ARM и MIPS есть несколько версий. Найдите работающий на вашей системе вариант.
Скорее всего таковой найдется. Если нет - вам придется собирать самостоятельно.
Скопировать директорию "zapret" в /opt на роутер. Скопировать директорию "zapret" в /opt на роутер.
Установить ipk. Для этого сначала копируем на роутер ipk в /tmp, потом opkg install /tmp/*.ipk. Скопировать работающий бинарик nfqws в /opt/zapret/nfq, tpws в /opt/zapret/tpws.
Смотрим, что появились исполняемые файлы /opt/zapret/tpws/tpws, /opt/zapret/nfq/nfqws.
Скопировать /opt/zapret/init.d/zapret в /etc/init.d. Скопировать /opt/zapret/init.d/zapret в /etc/init.d.
В /etc/init.d/zapret выбрать пераметр "ISP". В зависимости от него будут применены нужные правила. В /etc/init.d/zapret выбрать пераметр "ISP". В зависимости от него будут применены нужные правила.
/etc/init.d/zapret enable /etc/init.d/zapret enable
@ -271,22 +274,6 @@ opkg install iptables-mod-extra iptables-mod-nfqueue iptables-mod-filter iptable
crontab -e crontab -e
Создать строчку "0 12 * * */2 /opt/zapret/ipset/get_antizapret.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/
Найдите вашу версию openwrt, найдите вашу архитектуру, скачайте файл "OpenWrt-SDK-*".
Фактически это тот же buildroot, только в нем уже подготовлен toolchain для нужной версии openwrt,
нужной target архитектуры и хост-системы linux x64.
Прекомпилированые бинарики
--------------------------
Компилировать для роутеров может быть непростой задачей, требующей изучения вопроса и гугления "глюков из коробки" в openwrt SDK.
Нет кое-каких бинариков, нет кое-каких линков, в результате из коробки SDK может выдавать ошибки.
Для самых распространенных архитектур собраны статические бинарики. См binaries.
Статическая сборка означает, что бинарик не зависит от типа libc (uclibc или musl) и наличия установленных so - его можно использовать сразу.
Лишь бы подходил тип CPU. У ARM и MIPS есть несколько версий. Если на вашей версии выдаются ошибки при запуске - придется собирать самостоятельно под вашу систему.
Обход блокировки https Обход блокировки https
---------------------- ----------------------