mirror of
https://github.com/bol-van/zapret.git
synced 2024-12-22 06:15:25 +00:00
docs: Convert RU quickstart to markdown
This commit is contained in:
parent
a9dbb74973
commit
a5be4da22e
250
docs/quick_start.md
Normal file
250
docs/quick_start.md
Normal file
@ -0,0 +1,250 @@
|
|||||||
|
> [!CAUTION]
|
||||||
|
> Не пишите в issue вопросы типа "как скопировать файл", "как скачать", "как
|
||||||
|
> запустить", ... То есть все , что касается базовых навыков обращения с ОС
|
||||||
|
> linux. Эти вопросы будут закрывать сразу. Если у вас подобные вопросы
|
||||||
|
> возникают, рекомендую не использовать данный софт или искать помощь где-то в
|
||||||
|
> другом месте. То же самое могу сказать тем, кто хочет нажать 1 кнопку, чтобы
|
||||||
|
> все заработало, и совсем не хочет читать и изучать. Увы, такое не подвезли и
|
||||||
|
> не подвезут. Ищите другие более простые методы обхода. Этот метод **не для
|
||||||
|
> рядового пользователя**.
|
||||||
|
|
||||||
|
|
||||||
|
## Вступление
|
||||||
|
Специально для тех, кто хочет побыстрее начать, но не хочет слишком углубляться
|
||||||
|
в простыню [readme.md](readme.md).
|
||||||
|
|
||||||
|
Обход DPI является хакерской методикой. Под этим словом понимается метод,
|
||||||
|
которому сопротивляется окружающая среда, которому автоматически не
|
||||||
|
гарантирована работоспособность в любых условиях и на любых ресурсах, требуется
|
||||||
|
настройка под специфические условия у вашего провайдера. Условия могут меняться
|
||||||
|
со временем, и методика может начинать или переставать работать, может
|
||||||
|
потребоваться повторный анализ ситуации. Могут обнаруживаться отдельные
|
||||||
|
ресурсы, которые заблокированы иначе, и которые не работают или перестали
|
||||||
|
работать. Могут и сломаться отдельные не заблокированные ресурсы. Поэтому очень
|
||||||
|
желательно иметь знания в области сетей, чтобы иметь возможность
|
||||||
|
проанализировать техническую ситуацию. Не будет лишним иметь обходные каналы
|
||||||
|
проксирования трафика на случай, если обход DPI не помогает.
|
||||||
|
|
||||||
|
Будем считать, что у вас есть система на базе традиционного **linux** или
|
||||||
|
**openwrt**. Если у вас традиционный linux - задача обойти блокировки только на
|
||||||
|
этой системе, если openwrt - обойти блокировки для подключенных устройств. Это
|
||||||
|
наиболее распространенный случай.
|
||||||
|
|
||||||
|
## Настройка
|
||||||
|
1. Чтобы процедура установки сработала в штатном режиме на openwrt, нужно
|
||||||
|
рассчитывать на свободное место около 1-2 Mb для установки самого zapret и
|
||||||
|
необходимых дополнительных пакетов. Если места мало и нет возможности его
|
||||||
|
увеличить за счет `extroot`, возможно придется отказаться от варианта
|
||||||
|
простой установки и прикручивать в ручном режиме без имеющихся скриптов
|
||||||
|
запуска. Можно использовать
|
||||||
|
[облегченный `tpws` вариант](../init.d/openwrt-minimal), либо попробовать
|
||||||
|
засунуть требуемые zapret дополнительные пакеты в сжатый образ `squashfs` с
|
||||||
|
помощью `image builder` и перешить этим вариантом роутер.
|
||||||
|
|
||||||
|
2. Скачайте zip архив проекта с github в `/tmp`, распакуйте его там, либо
|
||||||
|
клонируйте проект через:
|
||||||
|
```sh
|
||||||
|
$ git clone --depth 1 https://github.com/bol-van/zapret
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Убедитесь, что у вас отключены все средства обхода блокировок, в том числе и
|
||||||
|
сам zapret. Гарантированно уберет zapret скрипт `uninstall_easy.sh`.
|
||||||
|
|
||||||
|
4. Если вы работаете в виртуальной машине, необходимо использовать соединение с
|
||||||
|
сетью в режиме bridge. NAT **не** подходит.
|
||||||
|
|
||||||
|
5. Выполните однократные действия по установке требуемых пакетов в ОС и
|
||||||
|
настройке исполняемых файлов правильной архитектуры:
|
||||||
|
```sh
|
||||||
|
$ install_bin.sh
|
||||||
|
$ install_prereq.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
> Вас могут спросить о типе фаервола (iptables/nftables) и использовании
|
||||||
|
> ipv6. Это нужно для установки правильных пакетов в ОС, чтобы не
|
||||||
|
> устанавливать лишнее.
|
||||||
|
|
||||||
|
6. Запустите `blockcheck.sh`. Скрипт вначале проверяет DNS. Если выводятся
|
||||||
|
сообщения о подмене адресов, то нужно будет решить проблему с DNS.
|
||||||
|
`blockcheck.sh` перейдет в этом случае на DoH и будет пытаться получить и
|
||||||
|
использовать реальные IP адреса. Но если вы не настроите решение этой
|
||||||
|
проблемы, обход будет работать только для тех программ или ОС, которые сами
|
||||||
|
реализуют механизмы SecureDNS. Для других программ обход работать не будет.
|
||||||
|
|
||||||
|
Решение проблемы DNS выходит за рамки проекта. Обычно она решается либо
|
||||||
|
заменой DNS серверов от провайдера на публичные (`1.1.1.1`, `8.8.8.8`), либо
|
||||||
|
в случае перехвата провайдером обращений к сторонним серверам - через
|
||||||
|
специальные средства шифрования DNS запросов, такие как `dnscrypt`, `DoT`,
|
||||||
|
`DoH`.
|
||||||
|
|
||||||
|
Еще один эффективный вариант - использовать ресолвер от yandex
|
||||||
|
(`77.88.8.88`) на нестандартном порту `1253`. Многие провайдеры не
|
||||||
|
анализируют обращения к DNS на нестандартных портах.
|
||||||
|
|
||||||
|
Проверить работает ли этот вариант можно так:
|
||||||
|
```sh
|
||||||
|
$ 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'
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ /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.sh` позволяет выявить рабочую стратегию обхода блокировок По
|
||||||
|
результатам скрипта нужно понять какой вариант будете использовать : `nfqws`
|
||||||
|
или `tpws` И запомнить найденные стратегии.
|
||||||
|
|
||||||
|
Следует понимать, что скрипт проверяет доступность только конкретного
|
||||||
|
домена, который вы вводите в начале. Вероятно, все остальные домены
|
||||||
|
блокированы подобным образом, **но не факт**. В большинстве случаев можно
|
||||||
|
объединить несколько стратегий в одну универсальную, и это крайне
|
||||||
|
желательно. Необходимо понимать как работают стратегии. zapret не может
|
||||||
|
пробить блокировку по IP адресу. Для проверки нескольких доменов вводите их
|
||||||
|
через пробел.
|
||||||
|
|
||||||
|
Сейчас блокираторы ставят на магистральных каналах. В сложных случаях у вас
|
||||||
|
может быть несколько маршрутов с различной длиной по ХОПам, с DPI на разных
|
||||||
|
хопах. Приходится преодолевать целый зоопарк DPI, которые еще и включаются в
|
||||||
|
работу хаотичным образом или образом, зависящим от направления (IP сервера).
|
||||||
|
скрипт не всегда может выдать вам в итогах оптимальную стратегию, которую
|
||||||
|
надо просто переписать в настройки. В некоторых случаях надо реально думать
|
||||||
|
что происходит, анализируя результат на разных стратегиях. Если вы
|
||||||
|
применяете большой **TTL**, чтобы достать до магистрала, то не лишним будет
|
||||||
|
добавить дополнительный ограничитель `--dpi-desync-fooling`, чтобы не
|
||||||
|
сломать сайты на более коротких дистанциях. `md5sig` наиболее совместим, но
|
||||||
|
работает **только** на linux серверах. `badseq` может работать только на
|
||||||
|
**https** и не работать на **http**. Чтобы выяснить какие дополнительные
|
||||||
|
ограничители работают, смотрите результат теста аналогичных стратегий без
|
||||||
|
**TTL** с каждым из этих ограничителей.
|
||||||
|
|
||||||
|
При использовании `autottl` следует протестировать как можно больше разных
|
||||||
|
доменов. Эта техника может на одних провайдерах работать стабильно, на
|
||||||
|
других потребуется выяснить при каких параметрах она стабильна, на третьих
|
||||||
|
полный хаос, и проще отказаться.
|
||||||
|
|
||||||
|
Далее, имея понимание что работает на **http**, **https**, **quic**, нужно
|
||||||
|
сконструировать параметры запуска `tpws` и/или `nfqws` с использованием
|
||||||
|
мультистратегии. Как работают мультистратегии описано в readme.txt.
|
||||||
|
|
||||||
|
Если кратко, то обычно параметры конструируются так:
|
||||||
|
```sh
|
||||||
|
"--filter-udp=443 'параметры для quic' <HOSTLIST_NOAUTO> --new
|
||||||
|
--filter-tcp=80,443 'обьединенные параметры для http и https' <HOSTLIST>"
|
||||||
|
```
|
||||||
|
|
||||||
|
Или так:
|
||||||
|
```sh
|
||||||
|
"--filter-udp=443 'параметры для quic' <HOSTLIST_NOAUTO> --new
|
||||||
|
--filter-tcp=80 'параметры для http' <HOSTLIST> --new
|
||||||
|
--filter-tcp=443 'параметры для https' <HOSTLIST>"
|
||||||
|
```
|
||||||
|
|
||||||
|
`<HOSTLIST>` и `<HOSTLIST_NOAUTO>` так и пишутся. Их не надо на что-то
|
||||||
|
заменять. Это сделают скрипты запуска, если вы выбрали режим фильтрации по
|
||||||
|
хостлистам, и уберут в противном случае. Если для какого-то протокола надо
|
||||||
|
дурить все без стандартного хостлиста - просто уберите оттуда `<HOSTLIST>` и
|
||||||
|
`<HOSTLIST_NOAUTO>`. Можно писать свои параметры `--hostlist` и
|
||||||
|
`--hostlist-exclude` для дополнительных хостлистов или в профилях
|
||||||
|
специализаций под конкретный ресурс. В последнем случае стандартный хостлист
|
||||||
|
там не нужен. Следует избегать указания собственных параметров `--hostlist`
|
||||||
|
на листы из директории ipset. Эта логика включена в `<HOSTLIST>` и
|
||||||
|
`<HOSTLIST_NOAUTO>`. Отличие `<HOSTLIST_NOAUTO>` в том, что стандартный
|
||||||
|
автолист по этому профилю используется как обычный, то есть без
|
||||||
|
автоматического добавления доменов. Однако, добавления в других профилях
|
||||||
|
автоматически отражаются во всех остальных.
|
||||||
|
|
||||||
|
Если стратегии отличаются по версии ip протокола, и вы не можете их
|
||||||
|
обьединить, фильтр пишется так:
|
||||||
|
```sh
|
||||||
|
"--filter-l3=ipv4 --filter-udp=443 lпараметры для quic ipv4' <HOSTLIST_NOAUTO> --new
|
||||||
|
--filter-l3=ipv4 --filter-tcp=80 'параметры для http ipv4' <HOSTLIST> --new
|
||||||
|
--filter-l3=ipv4 --filter-tcp=443 'параметры для https ipv4' <HOSTLIST> --new
|
||||||
|
--filter-l3=ipv6 --filter-udp=443 "параметры для quic ipv6" <HOSTLIST_NOAUTO> --new
|
||||||
|
--filter-l3=ipv6 --filter-tcp=80 'параметры для http ipv6' <HOSTLIST> --new
|
||||||
|
--filter-l3=ipv6 --filter-tcp=443 'параметры для https ipv6' <HOSTLIST>"
|
||||||
|
```
|
||||||
|
|
||||||
|
Но здесь совсем "копи-пастный" вариант. Чем больше вы объедините стратегий и
|
||||||
|
сократите их общее количество, тем будет лучше.
|
||||||
|
|
||||||
|
Если вам не нужно дурение отдельных протоколов, лучше всего будет их убрать
|
||||||
|
из системы перехвата трафика через параметры `TPWS_PORTS`,
|
||||||
|
`NFQWS_PORTS_TCP`, `NFQWS_PORTS_UDP` и убрать соответствующие им профили
|
||||||
|
мультистратегии.
|
||||||
|
|
||||||
|
| Протокол | Порт | Примечание |
|
||||||
|
|---|---|---|
|
||||||
|
| `tcp` | `80` | `http` соединение |
|
||||||
|
| `tcp` | `443` | `https` соединение |
|
||||||
|
| `udp` | `443` | `quic` соединение |
|
||||||
|
|
||||||
|
Если используются методы нулевой фазы десинхронизации (`--mss`, `--wssize`,
|
||||||
|
`--dpi-desync=syndata`) и режим фильтрации `hostlist`, то все параметры,
|
||||||
|
относящиеся к этим методам, следует помещать в отдельные профили
|
||||||
|
мульистратегии, которые получат управление до определения имени хоста.
|
||||||
|
Необходимо понимать алгоритм работы мультистратегий. Самым надежным
|
||||||
|
вариантом будет дублирование этих параметров на 2 профиля. Какой-нибудь
|
||||||
|
сработает в зависимости от параметра `MODE_FILTER`.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
"--filter-tcp=80 'параметры для http' <HOSTLIST> --new
|
||||||
|
--filter-tcp=443 'параметры для https' --wssize 1:6 <HOSTLIST> --new
|
||||||
|
--filter-tcp=443 --wssize 1:6"
|
||||||
|
```
|
||||||
|
|
||||||
|
В этом примере `wssize` будет применяться всегда к порту **tcp** `443` вне
|
||||||
|
зависимости от параметра `MODE_FILTER`. Хостлист будет игнорироваться, если
|
||||||
|
таковой имеется. К **http** применять **wssize** вредно и бессмысленно.
|
||||||
|
|
||||||
|
Никто не мешает использовать `tpws` для **http**, `nfqws` для **https**,
|
||||||
|
либо комбинировать действие `nfqws` и `tpws` для одного протокола. В текущем
|
||||||
|
варианте скриптов запуска это делается максимально гибко и независимо друг
|
||||||
|
от друга.
|
||||||
|
|
||||||
|
8. Запустите скрипт облегченной установки - `install_easy.sh` Выберите `nfqws`
|
||||||
|
и/или `tpws`, затем согласитесь на редактирование параметров. Откроется
|
||||||
|
редактор, куда впишите созданную на предыдущем этапе стратегию.
|
||||||
|
|
||||||
|
9. На все остальные вопросы `install_easy.sh` отвечайте согласно выводимой
|
||||||
|
аннотации.
|
||||||
|
|
||||||
|
|
||||||
|
## Итог
|
||||||
|
Это минимальная инструкция, чтобы быстро сориентироваться с чего начать.
|
||||||
|
Однако, это не гарантированное решение и в некоторых случаях вы не обойдетесь
|
||||||
|
без знаний и основного "талмуда". Подробности и полное техническое описание
|
||||||
|
расписаны в [README](readme.md).
|
||||||
|
|
||||||
|
Если ломаются отдельные **не заблокированные** ресурсы, следует вносить их в
|
||||||
|
исключения, либо пользоваться ограничивающим `ipset` или хост листом. Лучше
|
||||||
|
подбирать такие стратегии, которые вызывают минимальные поломки. Есть стратегии
|
||||||
|
довольно безобидные, а есть сильно ломающие, которые подходят только для
|
||||||
|
точечного пробития отдельных ресурсов, когда ничего лучше нет. Хорошая
|
||||||
|
стратегия может большие проблемы из-за плохо подобранных ограничителей для
|
||||||
|
фейков (**ttl**, **fooling**).
|
@ -1,179 +0,0 @@
|
|||||||
Специально для тех, кто хочет побыстрее начать, но не хочет слишком углубляться в простыню readme.txt.
|
|
||||||
|
|
||||||
Предупреждение : не пишите в issue вопросы типа "как скопировать файл", "как скачать", "как запустить", ...
|
|
||||||
То есть все , что касается базовых навыков обращения с ОС linux. Эти вопросы буду закрывать сразу.
|
|
||||||
Если у вас подобные вопросы возникают, рекомендую не использовать данный софт или искать помощь где-то в другом месте.
|
|
||||||
То же самое могу сказать тем, кто хочет нажать 1 кнопку, чтобы все заработало, и совсем не хочет читать и изучать.
|
|
||||||
Увы, такое не подвезли и не подвезут. Ищите другие более простые методы обхода. Этот метод не для рядового пользователя.
|
|
||||||
|
|
||||||
Обход DPI является хакерской методикой. Под этим словом понимается метод, которому сопротивляется окружающая среда,
|
|
||||||
которому автоматически не гарантирована работоспособность в любых условиях и на любых ресурсах,
|
|
||||||
требуется настройка под специфические условия у вашего провайдера. Условия могут меняться со временем,
|
|
||||||
и методика может начинать или переставать работать, может потребоваться повторный анализ ситуации.
|
|
||||||
Могут обнаруживаться отдельные ресурсы, которые заблокированы иначе, и которые не работают или перестали работать.
|
|
||||||
Могут и сломаться отдельные незаблокированные ресурсы.
|
|
||||||
Поэтому очень желательно иметь знания в области сетей, чтобы иметь возможность проанализировать техническую ситуацию.
|
|
||||||
Не будет лишним иметь обходные каналы проксирования трафика на случай, если обход DPI не помогает.
|
|
||||||
|
|
||||||
Будем считать, что у вас есть система на базе традиционного linux или openwrt.
|
|
||||||
Если у вас традиционный linux - задача обойти блокировки только на этой системе, если openwrt - обойти блокировки
|
|
||||||
для подключенных устройств. Это наиболее распространенный случай.
|
|
||||||
|
|
||||||
1) Чтобы процедура установки сработала в штатном режиме на openwrt, нужно раcсчитывать на свободное место около 1-2 Mb
|
|
||||||
для установки самого zapret и необходимых дополнительных пакетов.
|
|
||||||
Если места мало и нет возможности его увеличить за счет extroot, возможно придется отказаться от варианта
|
|
||||||
простой установки и прикручивать в ручном режиме без имеющихся скриптов запуска.
|
|
||||||
Можно использовать облегченный tpws вариант из init.d/openwrt-minimal, либо попробовать засунуть требуемые zapret
|
|
||||||
дополнительные пакеты в сжатый образ squashfs с помощью image builder и перешить этим вариантом роутер.
|
|
||||||
|
|
||||||
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.
|
|
||||||
blockcheck перейдет в этом случае на DoH и будет пытаться получить и использовать реальные IP адреса.
|
|
||||||
Но если вы не настроите решение этой проблемы, обход будет работать только для тех программ
|
|
||||||
или ОС, которые сами реализуют механизмы SecureDNS. Для других программ обход работать не будет.
|
|
||||||
|
|
||||||
Решение проблемы 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 проверяет доступность только конкретного домена, который вы вводите в начале.
|
|
||||||
Вероятно, все остальные домены блокированы подобным образом, но не факт.
|
|
||||||
В большинстве случаев можно обьединить несколько стратегий в одну универсальную, и это крайне желательно.
|
|
||||||
Необходимо понимать как работают стратегии.
|
|
||||||
zapret не может пробить блокировку по IP адресу. Для проверки нескольких доменов вводите их через пробел.
|
|
||||||
|
|
||||||
Сейчас блокираторы ставят на магистральных каналах. В сложных случаях у вас может быть несколько маршрутов
|
|
||||||
с различной длиной по ХОПам, с DPI на разных хопах. Приходится преодолевать целый зоопарк DPI,
|
|
||||||
которые еще и включаются в работу хаотичным образом или образом, зависящим от направления (IP сервера).
|
|
||||||
blockcheck не всегда может выдать вам в итогах оптимальную стратегию, которую надо просто переписать в настройки.
|
|
||||||
В некоторых случаях надо реально думать что происходит, анализируя результат на разных стратегиях.
|
|
||||||
Если вы применяете большой TTL, чтобы достать до магистрала, то не лишним будет добавить дополнительный ограничитель
|
|
||||||
--dpi-desync-fooling, чтобы не сломать сайты на более коротких дистанциях.
|
|
||||||
md5sig наиболее совместим, но работает только на linux серверах.
|
|
||||||
badseq может работать только на https и не работать на http.
|
|
||||||
Чтобы выяснить какие дополнительные ограничители работают, смотрите результат теста аналогичных стратегий без TTL
|
|
||||||
с каждым из этих ограничителей.
|
|
||||||
|
|
||||||
При использовании autottl следует протестировать как можно больше разных доменов. Эта техника
|
|
||||||
может на одних провайдерах работать стабильно, на других потребуется выяснить при каких параметрах
|
|
||||||
она стабильна, на третьих полный хаос, и проще отказаться.
|
|
||||||
|
|
||||||
Далее, имея понимание что работает на http, https, quic, нужно сконструировать параметры запуска tpws и/или nfqws
|
|
||||||
с использованием мультистратегии. Как работают мультистратегии описано в readme.txt.
|
|
||||||
|
|
||||||
Если кратко, то обычно параметры конструируются так :
|
|
||||||
"--filter-udp=443 'параметры для quic' <HOSTLIST_NOAUTO> --new
|
|
||||||
--filter-tcp=80,443 'обьединенные параметры для http и https' <HOSTLIST>"
|
|
||||||
|
|
||||||
Или так :
|
|
||||||
"--filter-udp=443 "параметры для quic" <HOSTLIST_NOAUTO> --new
|
|
||||||
--filter-tcp=80 'параметры для http' <HOSTLIST> --new
|
|
||||||
--filter-tcp=443 'параметры для https' <HOSTLIST>"
|
|
||||||
|
|
||||||
"<HOSTLIST>" и "<HOSTLIST_NOAUTO>" так и пишутся. Их не надо на что-то заменять. Это сделают скрипты запуска,
|
|
||||||
если вы выбрали режим фильтрации по хостлистам, и уберут в противном случае.
|
|
||||||
Если для какого-то протокола надо дурить все без стандартного хостлиста - просто уберите оттуда "<HOSTLIST>"
|
|
||||||
и "<HOSTLIST_NOAUTO>".
|
|
||||||
Можно писать свои параметры --hostlist и --hostlist-exclude для дополнительных хостлистов
|
|
||||||
или в профилях специализаций под конкретный ресурс. В последнем случае стандартный хостлист там не нужен.
|
|
||||||
Следует избегать указания собственных параметров --hostlist на листы из директории ipset.
|
|
||||||
Эта логика включена в "<HOSTLIST>" и "<HOSTLIST_NOAUTO>".
|
|
||||||
Отличие "<HOSTLIST_NOAUTO>" в том, что стандартный автолист по этому профилю используется как обычный,
|
|
||||||
то есть без автоматического добавления доменов. Однако, добавления в других профилях автоматически
|
|
||||||
отражаются во всех остальных.
|
|
||||||
|
|
||||||
Если стратегии отличаются по версии ip протокола, и вы не можете их обьединить, фильтр пишется так :
|
|
||||||
"--filter-l3=ipv4 --filter-udp=443 "параметры для quic ipv4" <HOSTLIST_NOAUTO> --new
|
|
||||||
--filter-l3=ipv4 --filter-tcp=80 'параметры для http ipv4' <HOSTLIST> --new
|
|
||||||
--filter-l3=ipv4 --filter-tcp=443 'параметры для https ipv4' <HOSTLIST> --new
|
|
||||||
--filter-l3=ipv6 --filter-udp=443 "параметры для quic ipv6" <HOSTLIST_NOAUTO> --new
|
|
||||||
--filter-l3=ipv6 --filter-tcp=80 'параметры для http ipv6' <HOSTLIST> --new
|
|
||||||
--filter-l3=ipv6 --filter-tcp=443 'параметры для https ipv6' <HOSTLIST>"
|
|
||||||
|
|
||||||
Но здесь совсем "копи-пастный" вариант.
|
|
||||||
Чем больше вы обьедините стратегий и сократите их общее количество, тем будет лучше.
|
|
||||||
|
|
||||||
Если вам не нужно дурение отдельных протоколов, лучше всего будет их убрать из системы перехвата трафика через
|
|
||||||
параметры TPWS_PORTS, NFQWS_PORTS_TCP, NFQWS_PORTS_UDP и убрать соответствующие им профили мультистратегии.
|
|
||||||
tcp 80 - http, tcp 443 - https, udp 443 - quic.
|
|
||||||
|
|
||||||
Если используются методы нулевой фазы десинхронизации (--mss, --wssize, --dpi-desync=syndata) и режим фильтрации hostlist,
|
|
||||||
то все параметры, относящиеся к этим методам, следует помещать в отдельные профили мульистратегии, которые получат
|
|
||||||
управление до определения имени хоста. Необходимо понимать алгоритм работы мультистратегий.
|
|
||||||
Самым надежным вариантом будет дублирование этих параметров на 2 профиля. Какой-нибудь сработает в зависимости
|
|
||||||
от параметра MODE_FILTER.
|
|
||||||
|
|
||||||
"--filter-tcp=80 'параметры для http' <HOSTLIST> --new
|
|
||||||
--filter-tcp=443 'параметры для https' --wssize 1:6 <HOSTLIST> --new
|
|
||||||
--filter-tcp=443 --wssize 1:6"
|
|
||||||
|
|
||||||
В этом примере wssize будет применяться всегда к порту tcp 443 вне зависимости от параметра MODE_FILTER.
|
|
||||||
Хостлист будет игнорироваться, если таковой имеется. К http применять wssize вредно и бессмысленно.
|
|
||||||
|
|
||||||
Никто не мешает использовать tpws для http, nfqws для https, либо комбинировать действие nfqws и tpws для одного протокола.
|
|
||||||
В текущем варианте скриптов запуска это делается максимально гибко и независимо друг от друга.
|
|
||||||
|
|
||||||
8) Запустите install_easy.sh.
|
|
||||||
Выберите nfqws и/или tpws, затем согласитесь на редактирование параметров.
|
|
||||||
Откроется редактор, куда впишите созданную на предыдущем этапе стратегию.
|
|
||||||
|
|
||||||
9) На все остальные вопросы install_easy.sh отвечайте согласно выводимой аннонтации.
|
|
||||||
|
|
||||||
10) Если ломаются отдельные незаблокированные ресурсы, следует вносить их в исключения, либо пользоваться ограничивающим
|
|
||||||
ipset или хост листом. Читайте основной талмуд readme.txt ради подробностей.
|
|
||||||
Но еще лучше будет подбирать такие стратегии, которые ломают минимум.
|
|
||||||
Есть стратегии довольно безобидные, а есть сильно ломающие, которые подходят только для точечного пробития отдельных ресурсов,
|
|
||||||
когда ничего лучше нет. Хорошая стратегия может сильно ломать из-за плохо подобранных ограничителей для фейков - ttl, fooling.
|
|
||||||
|
|
||||||
Это минимальная инструкция, чтобы соориентироваться с чего начать. Однако, это - не панацея.
|
|
||||||
В некоторых случаях вы не обойдетесь без знаний и основного "талмуда".
|
|
||||||
Подробности и полное техническое описание расписаны в readme.txt
|
|
Loading…
Reference in New Issue
Block a user