diff --git a/readme.txt b/readme.txt index 62fb863..301df40 100644 --- a/readme.txt +++ b/readme.txt @@ -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 -Такии образом воздействие будет производиться только на ip адреса, относящиеся к заблокированным сайтам. +Таким образом воздействие будет производиться только на ip адреса, относящиеся к заблокированным сайтам. Список можно обновлять через cron раз в несколько дней. Если обновлять через rublacklist, то это займет довольно долго. Более часа. Но ресурсов этот процесс не отнимает, так что никаких проблем это не вызовет, особенно, если система @@ -77,7 +77,7 @@ iptables -t mangle -I POSTROUTING -p tcp --dport 80 -m set --match-set zapret ds В этом случае так же возможны дополнительные моменты. DPI может ловить только первый http запрос, игнорируя последующие запросы в 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 запросами. В этом случае недостаточно ограничивать TCP window при установлении соединения. Необходимо посылать отдельными @@ -246,20 +246,23 @@ ubuntu 16,debian 8 Именно так решается вопрос в случае с openwrt, поскольку там своя система управления фаерволом. При повторном применении правил она могла бы поломать настройки iptables, сделанные скриптом из init.d. -Что делать с openwrt --------------------- +Что делать с openwrt/LEDE +------------------------- Установить дополнительные пакеты : opkg update opkg install iptables-mod-extra iptables-mod-nfqueue iptables-mod-filter iptables-mod-ipopt ipset curl bind-tools -Самая главная трудность - скомпилировать программы на C. -Это можно сделать средствами кросс-компиляции на любой традиционной linux системе. -Читайте compile/build_howto_openwrt.txt. -Ваша задача - получить ipk файлы для tpws и nfqws. +Самая главная трудность - скомпилировать программы на C. Это можно сделать на linux x64 при помощи SDK, который +можно скачать с официального сайта openwrt или LEDE. Но процесс кросс компиляции - это всегда сложности. +Недостаточно запустить make как на традиционной linux системе. +Поэтому в binaries имеются готовые статические бинарики для всех самых распространенных архитектур. +Статическая сборка означает, что бинарик не зависит от типа libc (glibc, uclibc или musl) и наличия установленных so - его можно использовать сразу. +Лишь бы подходил тип CPU. У ARM и MIPS есть несколько версий. Найдите работающий на вашей системе вариант. +Скорее всего таковой найдется. Если нет - вам придется собирать самостоятельно. + Скопировать директорию "zapret" в /opt на роутер. -Установить ipk. Для этого сначала копируем на роутер ipk в /tmp, потом opkg install /tmp/*.ipk. -Смотрим, что появились исполняемые файлы /opt/zapret/tpws/tpws, /opt/zapret/nfq/nfqws. +Скопировать работающий бинарик nfqws в /opt/zapret/nfq, tpws в /opt/zapret/tpws. Скопировать /opt/zapret/init.d/zapret в /etc/init.d. В /etc/init.d/zapret выбрать пераметр "ISP". В зависимости от него будут применены нужные правила. /etc/init.d/zapret enable @@ -271,22 +274,6 @@ opkg install iptables-mod-extra iptables-mod-nfqueue iptables-mod-filter iptable crontab -e Создать строчку "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 ----------------------