|
|
@ -237,32 +237,37 @@ tpws должен запускаться без фильтрации по ipset. |
|
|
|
Сам поиск по доменам работает очень быстро, нагрузка связана с прокачиванием объема данных через процесс. |
|
|
|
Вариант хорошо подходит для тех, у кого быстрая система с 128+ Мб памяти и провайдер применяет DPI. |
|
|
|
|
|
|
|
Пример установки на debian 7 |
|
|
|
---------------------------- |
|
|
|
Debian 7 изначально содержит ядро 3.2. Оно не умеет делать DNAT на localhost. |
|
|
|
Конечно, можно не привязывать tpws к 127.0.0.1 и заменить в правилах iptables "DNAT 127.0.0.1" на "REDIRECT", |
|
|
|
но лучше установить более свежее ядро. Оно есть в стабильном репозитории : |
|
|
|
apt-get update |
|
|
|
apt-get install linux-image-3.16 |
|
|
|
Пример установки на debian 8,9 ubuntu 16,18 |
|
|
|
------------------------------------------- |
|
|
|
|
|
|
|
Установить пакеты : |
|
|
|
apt-get update |
|
|
|
apt-get install libnetfilter-queue-dev ipset curl |
|
|
|
Скопировать директорию "zapret" в /opt. |
|
|
|
apt-get install ipset curl lsb-core dnsutils git |
|
|
|
Скопировать директорию zapret в /opt или скачать через git : |
|
|
|
cd /opt |
|
|
|
git clone https://github.com/bol-van/zapret |
|
|
|
Запустить /opt/zapret/install_bin.sh. Он сам определит рабочую архитектуру и настроит все бинарики. |
|
|
|
АЛЬТЕРНАТИВА : зайти в tpws,nfq,ip2net,mdig, в каждом выполнить make. Получите динамические бинарики под вашу ось. |
|
|
|
Скопировать /opt/zapret/init.d/debian7/zapret в /etc/init.d. |
|
|
|
Скопировать скрипт запуска : |
|
|
|
cp /opt/zapret/init.d/debian7/zapret /etc/init.d |
|
|
|
В /etc/init.d/zapret выбрать пераметр "ISP". В зависимости от него будут применены нужные правила. |
|
|
|
Там же выбрать параметр SLAVE_ETH, соответствующий названию внутреннего сетевого интерфейса. |
|
|
|
Включить автостарт : chkconfig zapret on |
|
|
|
(опционально) Вручную первый раз получить новый список ip адресов : /opt/zapret/ipset/get_antizapret.sh |
|
|
|
Зарегистрировать init скрипт в systemd : |
|
|
|
/usr/lib/lsb/install_initd zapret |
|
|
|
Вручную первый раз получить новый список ip адресов : |
|
|
|
/opt/zapret/ipset/get_antizapret.sh |
|
|
|
ИЛИ |
|
|
|
/opt/zapret/ipset/get_user.sh |
|
|
|
Зашедулить задание обновления листа (кроме hostlist) : |
|
|
|
crontab -e |
|
|
|
Создать строчку "0 12 * * */2 /opt/zapret/ipset/get_antizapret.sh" |
|
|
|
ИЛИ |
|
|
|
Создать строчку "0 12 * * */2 /opt/zapret/ipset/get_user.sh" |
|
|
|
Зашедулить задание обновления листа (только для hostlist): |
|
|
|
crontab -e |
|
|
|
Создать строчку "0 12 * * */2 /opt/zapret/ipset/get_hostlist.sh" |
|
|
|
Это значит в 12:00 каждые 2 дня обновлять список. |
|
|
|
Запустить службу : service zapret start |
|
|
|
Запустить службу : systemctl start zapret |
|
|
|
Попробовать зайти куда-нибудь : http://ej.ru, http://kinozal.tv, http://grani.ru. |
|
|
|
Если не работает, то остановить службу zapret, добавить правило в iptables вручную, |
|
|
|
запустить nfqws или tpws в терминале под рутом с нужными параметрами. |
|
|
@ -274,20 +279,13 @@ Debian 7 изначально содержит ядро 3.2. Оно не уме |
|
|
|
Попробуйте снять дамп в wireshark или "tcpdump -vvv -X host <ip>", посмотрите действительно ли первый |
|
|
|
сегмент TCP уходит коротким и меняется ли регистр "Host:". |
|
|
|
|
|
|
|
ubuntu 16,debian 8 |
|
|
|
------------------ |
|
|
|
|
|
|
|
Процесс аналогичен debian 7, однако требуется зарегистрировать init скрипты в systemd после их копирования в /etc/init.d. |
|
|
|
По умолчанию lsb-core может быть не установлен. |
|
|
|
apt-get update |
|
|
|
apt-get --no-install-recommends install lsb-core |
|
|
|
Шпаргалка по управлению службой : |
|
|
|
|
|
|
|
install : /usr/lib/lsb/install_initd zapret |
|
|
|
remove : /usr/lib/lsb/remove_initd zapret |
|
|
|
start : sytemctl start zapret |
|
|
|
stop : systemctl stop zapret |
|
|
|
status, output messages : systemctl status zapret |
|
|
|
|
|
|
|
После изменения /etc/init.d/zapret : systemctl daemon-reload |
|
|
|
|
|
|
|
Другие linux системы |
|
|
@ -299,7 +297,6 @@ status, output messages : systemctl status zapret |
|
|
|
при необходимости почитывая документацию по системе запуска. |
|
|
|
Нужные команды можно взять из предложенных скриптов. |
|
|
|
|
|
|
|
|
|
|
|
Фаерволлы |
|
|
|
--------- |
|
|
|
|
|
|
@ -331,8 +328,8 @@ ipset можно выкинуть, если не будем пользовать |
|
|
|
можно скачать с официального сайта openwrt или LEDE. Но процесс кросс компиляции - это всегда сложности. |
|
|
|
Недостаточно запустить make как на традиционной linux системе. |
|
|
|
Поэтому в binaries имеются готовые статические бинарики для всех самых распространенных архитектур. |
|
|
|
Статическая сборка означает, что бинарик не зависит от типа libc (glibc, uclibc или musl) и наличия установленных so - его можно использовать сразу. |
|
|
|
Лишь бы подходил тип CPU. У ARM и MIPS есть несколько версий. |
|
|
|
Статическая сборка означает, что бинарик не зависит от типа libc (glibc, uclibc или musl) и наличия установленных so. |
|
|
|
Его можно использовать сразу. Лишь бы подходил тип CPU. У ARM и MIPS есть несколько версий. |
|
|
|
Скорее всего найдется рабочий вариант. Если нет - вам придется собирать самостоятельно. |
|
|
|
|
|
|
|
Скопировать директорию "zapret" в /opt на роутер. |
|
|
@ -364,6 +361,43 @@ ipset можно выкинуть, если не будем пользовать |
|
|
|
и init скрипт, в firewall.user перенаправляйте весь трафик на порт 80 на tpws. такой вариант потребует менее 100 кб места |
|
|
|
и полностью статичен. отсутствуют любые загрузки, обновления, изменения файлов. |
|
|
|
|
|
|
|
Другие прошивки |
|
|
|
--------------- |
|
|
|
|
|
|
|
Для статических бинариков не имеет значения на чем они запущены : PC, android, приставка, роутер, любой другой девайс. |
|
|
|
Подойдет любая прошивка, дистрибутив linux. Статические бинарики запустятся на всем. |
|
|
|
Им нужно только ядро с необходимыми опциями сборки или модулями. |
|
|
|
Но кроме бинариков в проекте используются еще и скрипты, в которых задействуются некоторые |
|
|
|
стандартные программы. |
|
|
|
|
|
|
|
Основные причины почему нельзя просто так взять и установить эту систему на что угодно : |
|
|
|
* отсутствие доступа к девайсу через shell |
|
|
|
* отсутствие рута |
|
|
|
* отсутствие раздела r/w для записи и энергонезависимого хранения файлов |
|
|
|
* отсутствие возможности поставить что-то в автозапуск |
|
|
|
* отсутствие cron |
|
|
|
* недостаток модулей ядра или опций его сборки |
|
|
|
* недостаток модулей iptables (/usr/lib/iptables/lib*.so) |
|
|
|
* недостаток стандартных программ (типа ipset, curl) или их кастрированность (облегченная замена) |
|
|
|
* кастрированный или нестандартный шелл sh |
|
|
|
|
|
|
|
Если в вашей прошивке есть все необходимое, то вы можете адаптировать zapret под ваш девайс в той или иной степени. |
|
|
|
Может быть у вас не получится поднять все части системы, однако вы можете хотя бы попытаться |
|
|
|
поднять tpws и завернуть на него через -j REDIRECT весь трафик на порт 80. |
|
|
|
Если вам есть куда записать tpws, есть возможность выполнять команды при старте, то как минимум |
|
|
|
это вы сделать сможете. Скорее всего поддержка REDIRECT в ядре есть. Она точно есть на любом роутере, |
|
|
|
на других устройствах под вопросом. NFQUEUE, iptable_raw на большинстве прошивок отсутствуют из-за ненужности. |
|
|
|
|
|
|
|
Пересобрать ядро или модули для него будет скорее всего достаточно трудно. |
|
|
|
Для этого вам необходимо будет по крайней мере получить исходники вашей прошивки. |
|
|
|
User mode компоненты могут быть привнесены относительно безболезненно, если есть место куда их записать. |
|
|
|
Специально для девайсов, имеющих область r/w, существует проект entware. |
|
|
|
Некоторые прошивки даже имеют возможность его облегченной установки через веб интерфейс. |
|
|
|
entware содержит репозиторий user-mode компонент, которые устанавливаются в /opt. |
|
|
|
С их помощью можно компенсировать недостаток ПО основной прошивки, за исключением ядра. |
|
|
|
|
|
|
|
Подробное описание настроек для других прошивок выходит за рамки данного проекта. |
|
|
|
|
|
|
|
Обход блокировки https |
|
|
|
---------------------- |
|
|
|
|
|
|
|