mirror of https://github.com/bol-van/zapret/
2 changed files with 250 additions and 179 deletions
@ -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