Zapret: обсуждение

Кому-нибудь удалось обойти 16 Кб блокировку сайтов с адресами входящими в ASN 13335 ? Это Cloudflare.

Да.

Пробуй стратегии с фейком от сайтов из БС. Выше список скинули. Ещё помогают стратегии с hostfakesplit.

В ранее выкладывавшемся архиве SniFinder, в файле Asn.csv есть десятки кандидатов SNI для этой конкретной AS.

Xunlei
ну и как понять какой IP вбивать, если каждый раз я получаю разный. К тому же у меня DoH от Cloudflare. Уж они-то должны знать правильный вариант.

Зачем мне десятки? Я парочку пробовал. Не помогает.
Я использовал стратегию такого типа:

--dpi-desync=fake --dpi-desync-fooling=ts --dpi-desync-fake-tls-mod=rnd,sni=домен_из_белого_списка

С одним из сайтов это сработало, но он находится в другой AS, не Cloudflare. А вот для ASN 13335 это не работает.
Браузер застревает где-то на этапе TLS-хэндшейка.

Таймстампы в ОС включены? Какой целевой сайт? Не все сни в файле гарантированно белые, надо проверять.

Все включено, все работает.

Я вот не уверен насчет команды
--dpi-desync=fake --dpi-desync-fooling=ts --dpi-desync-fake-tls-mod=rnd,sni=домен_из_белого_списка
Я ее просто скопипастил. Но вот сейчас читаю:

По умолчанию если не задан собственный фейк для TLS используются модификации rnd,rndsni,dupsid. Если фейк задан, используется none

Имеет ли вообще смысл использовать rnd ? Хотя, наверное оно и не мешает.

Эти.

Да действительно работает. Значит я вчера когда запрет крутил. Что то неправильно настроил. И сайт не открылся.

Надёжнее будет создать фейк в виде bin файла по этой инструкции Zapret: обсуждение - #9313 by TesterTi

Или использовать параметр на подобе --dpi-desync-split-seqovl-pattern

Для cloudflare должен подойти sni 4pda.to
А для DO www.chortle.co.uk
Хотя тут еще нужно уточнять, нет ли блока по ip , и какой протокол. Для https обычно хорошо работает --dpi-desync-fake-tls-mod=sni=домен_из_белого_списка , но для http или udp нужны свои пейлоады, как и посоветовал PirateSkull

Протокол https. Сайтов в реестре РКН нет. Блокируются CDN где они расположены. Для одного из сайтов на Amazon работает стратегия
--dpi-desync=fake --dpi-desync-fooling=ts --dpi-desync-fake-tls-mod=sni=сайт_из_БС

Но для сайтов на Claudflare это не работает. Процесс соединения зависает где-то на этапе TLS-хэндшека. Я пробовал разные SNI, пробовал добавлять с стратегию ttl, некоторрые другие варианты - результат также отрицательный.

есть сайт за CF , который у тебя открывается без обхода? например www.pathofexile.com
если с подобными сни по-прежнему не открывается, то лог шарка в лс)

Чтобы понять что и как в этом шарке логировать, нужно сначала целые талмуды прочитать.
В общем, кажется мне удалось обойти блокировку. По крайней мере получилось пока на паре доменов. Использовал ту же стратегию, что и для Amazon. Но нужно учитывать, что на CF включен ECH. И в этом случае, как я понимаю, ТСПУ видит подключение к CDN CF, но не видит SNI, каким бы белым он ни был, и блокирует его.
В итоге у меня стратегия запрета заработала после принудительного понижения с TLS 1.3 до TLS 1.2 в браузере.

В случае с ECH, ТСПУ видит маскировочный домен (cloudflare-ech.com), и Zapret тоже видит этот маскировочный домен. Потому в --hostlist в правилах Zapret нужно прописывать именно его, а не изначальный домен. Может быть по этой причине у вас работает только на TLS 1.2, потому что он не поддерживает ECH.

Благодарю за совет. Чуть позже проверю.

Закомментировал в --hostlist существующие домены, дописал cloudflare-ech.com. Вернул TLS 1.3. По первовму впечатлению совет рабочий. Спасибо.

Но с другой стороны, эта стратегия будет работать только для cloudflare-ech.com А если сайт отключил поддержку ECH, то она уже не сработает. Так что одной единственной записью в hostlist для всего CF похоже не обойтись.

Столкнулся со странным поведением Запрета (последняя версия), ломался rockauto.com, даже если он не затронут стратегией. В лисе SSL_ERROR_HANDSHAKE_UNEXPECTED_ALERT, в хроме ERR_CONNECTION_RESET.

После остановки Запрета всё работало. После запуска по-новой.

По логу - он собирает пакеты сессии в буфер, определяет что ни одна стратегия к сессии неприменима, после этого отправляет пакеты как есть. Поведение верное.

packet: id=5 len=489 mark=20000000 ifin=br-lan(8) ifout=pppoe-wan(31)
IP4: 100.___.____.127 => 198.27.61.102 proto=tcp ttl=127 sport=49317 dport=443 flags=AP seq=3427882242 ack_seq=4115240760
TCP: len=449 : 1D 00 20 BD 04 6F 8D A7 86 76 1F C5 FC 0D 81 07 C0 3E 63 0E 96 76 63 F3 2B 01 BA 0B 6A 8C 2F C2 ... : .. ..o...v.......>c..vc.+...j./. ...
using cached desync profile 9
reassemble : feeding data payload size=449. now we have 1901/1901
packet contains full TLS ClientHello
TLS record layer version : TLS 1.0
TLS handshake version : TLS 1.2
TLS supported versions ext : TLS 1.3
TLS supported versions ext : TLS 1.2
TLS ALPN ext : h2
TLS ALPN ext : http/1.1
TLS ECH ext : present
req retrans : seq interval 3427880790-3427882690
forced wssize-cutoff
DELAY desync until reasm is complete (#2)
REPLAYING delayed packet #1 offset 0
REPLAY IP4: 100.___.____.127 => 198.27.61.102 proto=tcp ttl=127 sport=49317 dport=443 flags=A seq=3427880790 ack_seq=4115240760
TCP: len=1452 : 16 03 01 07 68 01 00 07 64 03 03 C7 7E F3 4A 23 D8 C1 7D 4D EE 06 C1 EB A3 F0 40 B2 C4 FD F5 CD ... : ....h...d...~.J#..}M......@..... ...
using cached desync profile 9
packet contains full TLS ClientHello
TLS record layer version : TLS 1.0
TLS handshake version : TLS 1.2
TLS supported versions ext : TLS 1.3
TLS supported versions ext : TLS 1.2
TLS ALPN ext : h2
TLS ALPN ext : http/1.1
TLS ECH ext : present
hostname: www.rockauto.com
discovered l7 protocol
discovered hostname
desync profile search for tcp target=198.27.61.102:443 l7proto=tls ssid='' hostname='www.rockauto.com'
* ipset check for profile 1
[/opt/zapret/ipset/tgwa-ip.txt] include ipset check for 198.27.61.102 : negative
* hostlist check for profile 2
[fixed] include hostlist check for www.rockauto.com : negative
hostlist check for rockauto.com : negative
hostlist check for com : negative
* hostlist check for profile 3
[fixed] include hostlist check for www.rockauto.com : negative
hostlist check for rockauto.com : negative
hostlist check for com : negative
* hostlist check for profile 4
[fixed] include hostlist check for www.rockauto.com : negative
hostlist check for rockauto.com : negative
hostlist check for com : negative
* hostlist check for profile 5
[fixed] include hostlist check for www.rockauto.com : negative
hostlist check for rockauto.com : negative
hostlist check for com : negative
* hostlist check for profile 6
[fixed] include hostlist check for www.rockauto.com : negative
hostlist check for rockauto.com : negative
hostlist check for com : negative
* hostlist check for profile 7
[fixed] include hostlist check for www.rockauto.com : negative
hostlist check for rockauto.com : negative
hostlist check for com : negative
* hostlist check for profile 8
[/opt/zapret/ipset/google-h.txt] include hostlist check for www.rockauto.com : negative
hostlist check for rockauto.com : negative
hostlist check for com : negative
desync profile 9 matches
* hostlist check for profile 9
[/opt/zapret/ipset/zapret-hosts-user-exclude.txt] exclude hostlist check for www.rockauto.com : negative
hostlist check for rockauto.com : negative
hostlist check for com : negative
[/opt/zapret/ipset/zapret-hosts-auto.txt] include hostlist check for www.rockauto.com : negative
hostlist check for rockauto.com : negative
hostlist check for com : negative
[/opt/zapret/ipset/zapret-hosts-user.txt] include hostlist check for www.rockauto.com : negative
hostlist check for rockauto.com : negative
hostlist check for com : negative
not applying tampering to this request
SENDING delayed packet #1 unmodified
REPLAYING delayed packet #2 offset 1452
REPLAY IP4: 100.__.___.127 => 198.27.61.102 proto=tcp ttl=127 sport=49317 dport=443 flags=AP seq=3427882242 ack_seq=4115240760
TCP: len=449 : 1D 00 20 BD 04 6F 8D A7 86 76 1F C5 FC 0D 81 07 C0 3E 63 0E 96 76 63 F3 2B 01 BA 0B 6A 8C 2F C2 ... : .. ..o...v.......>c..vc.+...j./. ...
using cached desync profile 9
packet contains full TLS ClientHello
TLS record layer version : TLS 1.0
TLS handshake version : TLS 1.2
TLS supported versions ext : TLS 1.3
TLS supported versions ext : TLS 1.2
TLS ALPN ext : h2
TLS ALPN ext : http/1.1
TLS ECH ext : present
hostname: www.rockauto.com
* hostlist check for profile 9
[/opt/zapret/ipset/zapret-hosts-user-exclude.txt] exclude hostlist check for www.rockauto.com : negative
hostlist check for rockauto.com : negative
hostlist check for com : negative
[/opt/zapret/ipset/zapret-hosts-auto.txt] include hostlist check for www.rockauto.com : negative
hostlist check for rockauto.com : negative
hostlist check for com : negative
[/opt/zapret/ipset/zapret-hosts-user.txt] include hostlist check for www.rockauto.com : negative
hostlist check for rockauto.com : negative
hostlist check for com : negative
not applying tampering to this request
SENDING delayed packet #2 unmodified
reassemble session finished
packet: id=5 drop

В ходе разбирательств обнаружил косяк в 9-й страте, в ходе экспериментов вместо -dpi-desync-cutoff написал –dup-cutoff (да, ночью надо спать, а не с роскомпозором бороться).

--new
--filter-tcp=80,443
--dpi-desync=fake,multidisorder
--dpi-desync-split-pos=1
--dpi-desync-repeats=6
--dpi-desync-fooling=ts
--dup-cutoff=n5
--dpi-desync-any-protocol=1
--dpi-desync-fake-tls=/opt/zapret/files/fake/tls_clienthello_max_ru.bin
<HOSTLIST>

После исправления всё заработало.
Но поведение всё равно не понятное, почему-то косяк в неотносящейся к ресурсу страте ломал работу незатронутого ею ресурса. Решил описать, мало ли кто столкнётся.

Кстати сайт похоже белосписочный для CDN.

Классика жанра. Уверен что cutoff и dpi desync any protocol это уже лишнее. Без них и так будет работать отлично.