mirror of
https://github.com/bol-van/zapret.git
synced 2024-11-30 05:50:53 +03:00
readme: tpws multi-profile
This commit is contained in:
parent
4b0b562509
commit
719f7387c4
@ -313,3 +313,7 @@ v62:
|
||||
|
||||
tpws: connection close logic rewrite. tcp user timeout parameters for local and remote leg.
|
||||
nfqws: multi-strategy
|
||||
|
||||
v63:
|
||||
|
||||
tpws: multi-strategy
|
||||
|
@ -633,6 +633,10 @@ tpws is transparent proxy.
|
||||
; its worth to make a reserve with 1.5 multiplier. by default maxfiles is (X*connections)*1.5+16
|
||||
--max-orphan-time=<sec> ; if local leg sends something and closes and remote leg is still connecting then cancel connection attempt after N seconds
|
||||
|
||||
--new ; begin new strategy
|
||||
--filter-l3=ipv4|ipv6 ; L3 protocol filter. multiple comma separated values allowed.
|
||||
--filter-tcp=[~]port1[-port2] ; TCP port filter. ~ means negation
|
||||
|
||||
--hostlist=<filename> ; only act on hosts in the list (one host per line, subdomains auto apply, gzip supported, multiple hostlists allowed)
|
||||
--hostlist-exclude=<filename> ; do not act on hosts in the list (one host per line, subdomains auto apply, gzip supported, multiple hostlists allowed)
|
||||
--hostlist-auto=<filename> ; detect DPI blocks and build hostlist automatically
|
||||
@ -737,11 +741,17 @@ Server replies with it's own MSS in SYN,ACK packet. Usually servers lower their
|
||||
fit to supplied MSS. The greater MSS client sets the bigger server's packets will be.
|
||||
If it's enough to split TLS 1.2 ServerHello, it may fool DPI that checks certificate domain name.
|
||||
This scheme may significantly lower speed. Hostlist filter is possible only in socks mode if client uses remote resolving (firefox `network.proxy.socks_remote_dns`).
|
||||
TLS version filters are not possible.
|
||||
`--mss-pf` sets port filter for MSS. Use `mss-pf=443` to apply MSS only for https.
|
||||
Likely not required for TLS1.3. If TLS1.3 is negotiable then MSS make things only worse.
|
||||
`--mss` is not required for TLS1.3. If TLS1.3 is negotiable then MSS make things only worse.
|
||||
Use only if nothing better is available. Works only in Linux, not BSD or MacOS.
|
||||
|
||||
### multiple strategies
|
||||
|
||||
`tpws` supports multiple strategies as well. They work mostly like with `nfqws` with minimal differences.
|
||||
`filter-udp` is absent because `tpws` does not support udp. 0-phase desync methods (`--mss`) can work with hostlist in socks modes with remote hostname resolve.
|
||||
This is the point where you have to plan profiles carefully. If you use `--mss` and hostlist filters, behaviour can be different depending on remote resolve feature enabled or not.
|
||||
Use `--mss` both in hostlist profile and profile without hostlist.
|
||||
Use `curl --socks5` and `curl --socks5-hostname` to issue two kinds of proxy queries.
|
||||
See `--debug` output to test your setup.
|
||||
|
||||
## Ways to get a list of blocked IP
|
||||
|
||||
@ -939,6 +949,12 @@ Its possible to change manipulation options used by tpws :
|
||||
|
||||
`TPWS_OPT="--hostspell=HOST --split-http-req=method --split-pos=3"`
|
||||
|
||||
Additional low priority desync profile for `MODE_FILTER=hostlist`.
|
||||
With multiple profile support 0-phase desync methods are no more applied with hostlist !
|
||||
To apply them additional profile is required without hostlist filter.
|
||||
|
||||
`TPWS_OPT_SUFFIX="--mss=88"`
|
||||
|
||||
nfqws options for DPI desync attack:
|
||||
|
||||
```
|
||||
|
@ -1,4 +1,4 @@
|
||||
zapret v.62
|
||||
zapret v.63
|
||||
|
||||
English
|
||||
-------
|
||||
@ -774,6 +774,9 @@ tpws - это transparent proxy.
|
||||
--hostlist-auto-fail-threshold=<int> ; сколько раз нужно обнаружить ситуацию, похожую на блокировку, чтобы добавить хост в лист (по умолчанию: 3)
|
||||
--hostlist-auto-fail-time=<int> ; все эти ситуации должны быть в пределах указанного количества секунд (по умолчанию: 60)
|
||||
--hostlist-auto-debug=<logfile> ; лог положительных решений по autohostlist. позволяет разобраться почему там появляются хосты.
|
||||
--new ; начало новой стратегии
|
||||
--filter-l3=ipv4|ipv6 ; фильтр версии ip для текущей стратегии
|
||||
--filter-tcp=[~]port1[-port2] ; фильтр портов tcp для текущей стратегии. ~ означает инверсию.
|
||||
|
||||
|
||||
--debug позволяет выводить подробный лог действий на консоль, в syslog или в файл.
|
||||
@ -903,13 +906,12 @@ tpws поддерживает эту возможность асинхронно
|
||||
С фильтром по hostlist совместимо только в режиме socks при включенном удаленном ресолвинге хостов.
|
||||
(firefox network.proxy.socks_remote_dns). Это единственный вариант, когда tpws может узнать имя хоста
|
||||
еще на этапе установления соединения.
|
||||
Невозможен фильтр по версии TLS.
|
||||
Взамен имеется фильтр по портам --mss-pf. --mss-pf=443 применяет дурение только к https.
|
||||
Применяя данную опцию к сайтам TLS1.3, если броузер тоже поддерживает TLS1.3, то вы делаете только хуже.
|
||||
Но нет способа автоматически узнать когда надо применять, когда нет, поскольку MSS идет только в
|
||||
3-way handshake еще до обмена данными, а версию TLS можно узнать только по ответу сервера, который
|
||||
может привести к реакции DPI.
|
||||
Использовать только когда нет ничего лучше или для отдельных ресурсов.
|
||||
Для http использовать смысла нет, поэтому заводите отдельный desync profile с фильтром по порту 443.
|
||||
Работает только на linux, не работает на BSD и MacOS.
|
||||
|
||||
--skip-nodelay может быть полезен, чтобы привести MTU к MTU системы, на которой работает tpws.
|
||||
@ -924,6 +926,20 @@ TCP_USER_TIMEOUT. Под таймаутом подразумевается вр
|
||||
что данных для передачи нет. Полезно для сокращения время закрытия подвисших соединений.
|
||||
Поддерживается только на Linux и MacOS.
|
||||
|
||||
МНОЖЕСТВЕННЫЕ СТРАТЕГИИ
|
||||
Работают аналогично nfqws, кроме некоторых моментов.
|
||||
Нет параметра --filter-udp, поскольку tpws udp не поддерживает.
|
||||
Методы нулевой фазы (--mss) могут работать по хостлисту в одном единственном случае :
|
||||
если используется режим socks и удаленный ресолвинг хостов через прокси.
|
||||
То есть работоспособность вашей настройки в одном и том же режиме может зависеть от того,
|
||||
применяет ли клиент удаленный ресолвинг. Это может быть неочевидно.
|
||||
В одной программе работает, в другой - нет.
|
||||
Если вы используете профиль с хостлистом , и вам нужен mss, укажите mss в профиле с хостлистом,
|
||||
создайте еще один профиль без хостлиста, если его еще нет, и в нем еще раз укажите mss.
|
||||
Тогда при любом раскладе будет выполняться mss.
|
||||
Используйте `curl --socks5` и `curl --socks5-hostname` для проверки вашей стратегии.
|
||||
Смотрите вывод --debug, чтобы убедиться в правильности настроек.
|
||||
|
||||
Способы получения списка заблокированных IP
|
||||
-------------------------------------------
|
||||
|
||||
@ -1369,6 +1385,12 @@ MODE_FILTER=none
|
||||
|
||||
TPWS_OPT="--hostspell=HOST --split-http-req=method --split-pos=3"
|
||||
|
||||
Дополнительный низкоприоритетный профиль десинхронизации для режимов с MODE_FILTER=hostlist.
|
||||
После реализации поддержки множественных профилей режимы нулевой фазы десинхронизации больше не применяются с хостлистом !
|
||||
Для их применения требуется дополнительный профиль без хостлист фильтра.
|
||||
|
||||
#TPWS_OPT_SUFFIX="--mss 88"
|
||||
|
||||
Опции nfqws для атаки десинхронизации DPI :
|
||||
|
||||
DESYNC_MARK=0x40000000
|
||||
|
Loading…
Reference in New Issue
Block a user