zapret/docs/quick_start.txt
2024-09-20 15:33:19 +03:00

142 lines
15 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Специально для тех, кто хочет побыстрее начать, но не хочет слишком углубляться в простыню readme.txt.
Предупреждение : не пишите в issue вопросы типа "как скопировать файл", "как скачать", "как запустить", ...
То есть все , что касается базовых навыков обращения с ОС linux. Эти вопросы буду закрывать сразу.
Если у вас подобные вопросы возникают, рекомендую не использовать данный софт или искать помощь где-то в другом месте.
То же самое могу сказать тем, кто хочет нажать 1 кнопку, чтобы все заработало, и совсем не хочет читать и изучать.
Увы, такое не подвезли и не подвезут. Ищите другие более простые методы обхода. Этот метод не для рядового пользователя.
Обход DPI является хакерской методикой. Под этим словом понимается метод, которому сопротивляется окружающая среда,
которому автоматически не гарантирована работоспособность в любых условиях и на любых ресурсах,
требуется настройка под специфические условия у вашего провайдера. Условия могут меняться со временем,
и методика может начинать или переставать работать, может потребоваться повторный анализ ситуации.
Могут обнаруживаться отдельные ресурсы, которые заблокированы иначе, и которые не работают или перестали работать.
Могут и сломаться отдельные незаблокированные ресурсы.
Поэтому очень желательно иметь знания в области сетей, чтобы иметь возможность проанализировать техническую ситуацию.
Не будет лишним иметь обходные каналы проксирования трафика на случай, если обход DPI не помогает.
Будем считать, что у вас есть система на базе традиционного linux или openwrt.
Если у вас традиционный linux - задача обойти блокировки только на этой системе, если openwrt - обойти блокировки
для подключенных устройств. Это наиболее распространенный случай.
1) Чтобы процедура установки сработала в штатном режиме на openwrt, нужно раcсчитывать на свободное место около 1-2 Mb
для установки самого zapret и необходимых дополнительных пакетов.
Если места мало и нет возможности его увеличить за счет extroot, возможно придется отказаться от варианта
простой установки и прикручивать в ручном режиме без имеющихся скриптов запуска, либо попробовать засунуть требуемые
zapret дополнительные пакеты в сжатый образ squashfs с помощью image builder и перешить этим вариантом роутер.
См docs/manual_setup.txt , docs/readme.txt .
2) Скачайте zip архив проекта с github в /tmp, распакуйте его там,
либо клонируйте проект через : git clone --depth 1 https://github.com/bol-van/zapret
3) Убедитесь, что у вас отключены все средства обхода блокировок, в том числе и сам zapret.
Гарантированно уберет zapret скрипт uninstall_easy.sh.
4) Если вы работаете в виртуальной машине, необходимо использовать соединение с сетью в режиме bridge. nat не подходит
5) Выполните однократные действия по установке требуемых пакетов в ОС и настройке бинариков правильной архитектуры
install_bin.sh
install_prereq.sh
Вас могут спросить о типе фаервола (iptables/nftables) и использовании ipv6. Это нужно для установки
правильных пакетов в ОС, чтобы не устанавливать лишнее.
6) Запустите blockcheck.sh. blockcheck.sh в начале проверяет DNS. Если выводятся сообщения о подмене адресов, то
первым делом нужно решить эту проблему, иначе ничего не будет работать.
Решение проблемы DNS выходит за рамки проекта. Обычно она решается либо заменой DNS серверов
от провайдера на публичные (1.1.1.1, 8.8.8.8), либо в случае перехвата провайдером обращений
к сторонним серверам - через специальные средства шифрования DNS запросов, такие как dnscrypt, DoT, DoH.
Еще один эффективный вариант - использовать ресолвер от yandex 77.88.8.88 на нестандартном порту 1253.
Многие провайдеры не анализируют обращения к DNS на нестандартных портах.
Проверить работает ли этот вариант можно так :
dig -p 53 @77.88.8.88 rutracker.org
dig -p 1253 @77.88.8.88 rutracker.org
Если DNS действительно подменяется, и ответ на эти 2 команды разный, значит метод вероятно работает.
В openwrt DNS на нестандартном порту можно прописать в /etc/config/dhcp таким способом :
config dnsmasq
.............
list server '77.88.8.88#1253'
Если настройки IP и DNS получаются автоматически от провайдера, в /etc/config/network
найдите секцию интерфейса 'wan' и сделайте так :
config interface 'wan'
.............
option peerdns '0'
/etc/init.d/network restart
/etc/init.d/dnsmasq restart
Если это не подходит, можно перенаправлять обращения на udp и tcp порты 53 вашего DNS сервера на 77.88.8.88:1253 средствами
iptables/nftables. В /etc/resolv.conf нельзя прописать DNS на нестандартном порту.
7) blockcheck позволяет выявить рабочую стратегию обхода блокировок
По результатам blockcheck нужно понять какой вариант будете использовать : nfqws или tpws
И запомнить найденные стратегии.
Следует понимать, что blockcheck проверяет доступность только конкретного домена, который вы вводите в начале.
Вероятно, все остальные домены блокированы подобным образом, но не факт.
В большинстве случаев можно обьединить несколько стратегий в одну универсальную, но для этого необходимо понимать
"что там за буковки". Если вы в сетях слабо разбираетесь, это не для вас. В противном случае читайте readme.txt.
zapret не может пробить блокировку по IP адресу
Для проверки нескольких доменов вводите их через пробел.
Сейчас блокираторы ставят на магистральных каналах. В сложных случаях у вас может быть несколько маршрутов
с различной длиной по ХОПам, с DPI на разных хопах. Приходится преодолевать целый зоопарк DPI,
которые еще и включаются в работу хаотичным образом или образом, зависящим от направления (IP сервера).
blockcheck не всегда может выдать вам в итогах оптимальную стратегию, которую надо просто переписать в настройки.
В некоторых случаях надо реально думать что происходит, анализируя результат на разных стратегиях.
Если вы применяете большой TTL, чтобы достать до магистрала, то не лишним будет добавить дополнительный ограничитель
--dpi-desync-fooling, чтобы не сломать сайты на более коротких дистанциях.
md5sig наиболее совместим, но работает только на linux серверах.
badseq может работать только на https и не работать на http.
Чтобы выяснить какие дополнительные ограничители работают, смотрите результат теста аналогичных стратегий без TTL
с каждым из этих ограничителей.
При использовании autottl следует протестировать как можно больше разных доменов. Эта техника
может на одних провайдерах работать стабильно, на других потребуется выяснить при каких параметрах
она стабильна, на третьих полный хаос, и проще отказаться.
Если используются методы нулевой фазы десинхронизации (--mss, --wssize, --dpi-desync=syndata) и режим фильтрации hostlist,
то все параметры, относящиеся к этим методам, следует помещать не в основные параметры (например, NFQWS_OPT_DESYNC),
а в suffix (NFQWS_OPT_DESYNC_SUFFIX). Чтобы не ошибиться, можно их продублировать и там, и там.
Иначе они могут не работать.
8) Запустите install_easy.sh.
Выберите nfqws или tpws, затем согласитесь на редактирование параметров.
Откроется редактор, куда впишите найденные стратегии.
Для nfqws отдельно настраиваются стратегии на http и https для ipv4 и ipv6.
То есть по максимуму 4 разных варианта.
NFQWS_OPT_DESYNC - это общая установка, которая применяется, если какой-либо уточняющий параметр не задан
NFQWS_OPT_DESYNC_HTTP и NFQWS_OPT_DESYNC_HTTPS заменяют стратегию для http и https.
Если у вас включен ipv6, то они так же будут применены и к ipv6. Если для ipv6 нужна другая стратегия,
то можно задать уточняющие параметры NFQWS_OPT_DESYNC_HTTP6 и NFQWS_OPT_DESYNC_HTTPS6.
Если стратегии для ipv4 и ipv6 отличаются лишь ttl, то в целях экономии ресурсов роутера (меньше процессов nfqws)
следует отказаться от использования специфических для ipv6 установок. Вместо них использовать параметры
--dpi-desync-ttl и --dpi-desync-ttl6 в общих установках. Таким способом можно заставить один процесс nfqws
обрабатывать трафик на ipv4 и на ipv6 с разным ttl.
Важным вопросом является вопрос о поддержке http keep alive.
Отвечайте N. Если вдруг на http сайтах будут хаотические сбои типа то загружается, то заглушка или сброс,
попробуйте включить поддержку keep alive. Но просто "на всякий случай" не включайте - это увеличит нагрузку на роутер.
Если это не помогает, или хаотичное поведение наблюдается и на https, то еще раз прогоните blockcheck
с установленным числом попыток проверки не менее 5. Возможно, ваш провайдер использует балансировку нагрузки,
где на разных путях установлен разный DPI.
9) На все остальные вопросы install_easy.sh отвечайте согласно выводимой аннонтации.
10) Если ломаются отдельные незаблокированные ресурсы, следует вносить их в исключения, либо пользоваться ограничивающим
ipset или хост листом. Читайте основной талмуд readme.txt ради подробностей.
Это минимальная инструкция, чтобы соориентироваться с чего начать. Однако, это - не панацея.
В некоторых случаях вы не обойдетесь без знаний и основного "талмуда".
Подробности и полное техническое описание расписаны в readme.txt