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

См доку “standard payload”.
Программированию на луа здесь не учат, ошибка очевидна

Кажется, d84dfaf61d9816ac24219b37662baf5fe440a9d1 немного поломал blockcheck в iptables.

- [ "$2" = tcp ] && IPT_ADD_DEL $1 INPUT -p $2 --sport $3 ! --syn -j ACCEPT
+ [ "$2" = tcp ] && IPT_ADD_DEL $1 INPUT -p $2 --sport $3 ! $IPT_COMMENT --syn -j ACCEPT

При

IPT_COMMENT=“-m comment --comment blockcheck_$$”

получаем:

INPUT -p tcp --sport 443 ! -m comment --comment blockcheck_19639 --syn -j ACCEPT

что приведёт к ошибке:

unexpected ! flag before --match

Исправлено

Подскажите пожалуйста кто в теме, amnezia на днях перестала работать в сторону Warp, но работают конфиги в которых присутствует параметр I1.

Есть ли стратегии что бы работал warp дальше?

Да, если вы спрашиваете, как воспроизвести поведение Амнезии 1.5 средствами Запрета, чтобы Warp-клиенты без поддержки этих параметров работали - то подкинуть содержимое параметра I1 в качестве фейка, а также после него ещё несколько коротких фейков (мне подходит банальный 0x00) в количестве, заданном параметром Jc в конфиге амнезии.

Если не затруднит можешь скинуть целую строку стратегии? Буду благодарен.

Как-то так использую (верхний blob брать из параметра I1, начиная с 0xc до конца последовательности буквоцифр):

--lua-desync=fake:blob=0xc20000000108b5(простыня)9d96d8ab ^
--lua-desync=fake:blob=0x00:repeats=4 ^

Это в виндовом синтаксисе, с ^ в конце строк. Блоб проще в файл отдельный вынести, но в примере показал встраивание в виде 16-ричного текста. Если в WG-клиенте какие-то дурилки уже есть (Jc, Reserved и т.п.), то они могут препятствовать Запрету выцепить пейлоад и применить стратегию, стоит это учитывать.

Если необходимо I1 и I2:
--lua-desync=fake:blob=0x(блоб из I1) ^
--lua-desync=fake:blob=0x(блоб из I2) ^
--lua-desync=fake:blob=0x00:repeats=4 ^

Либо я что-то не так делаю, либо nfqws на роутере кинетик это не поддерживает. Не стартует с данной конфигурации. И на Windows тоже не получилось в запрете её запустить, то все вылетает

люди на сток ленивы. да возьми ты бантик preset2_wireguard открой и посмотри, что тебе писал человек. что такое блоб есть в документации. дальше чуть логики и всё. проверил у меня работает на окнах.

Спасибо тебе добрый человек, благодаря тебе узнал что у меня была версия без lua, скачал нужную и теперь не вылетает, все запускается но все равно wireguard за пределы страны “Получено 0байт.” а те что внутри страны работают

вот такой cmd пробивает путь чистому WG к CF и к Протону на РТ-Москва:

start “zapret2: wireguard” /min “%~dp0winws2.exe” ^
–lua-init=@“%~dp0lua\zapret-lib.lua” --lua-init=@“%~dp0lua\zapret-antidpi.lua” ^
–blob=quic_ozon:@“%~dp0files\ozon.bin” ^
–wf-raw-part=@“%~dp0windivert.filter\windivert_part.wireguard.txt” ^
–out-range=-d2 ^
–payload=wireguard_initiation ^
–lua-desync=fake:blob=quic_ozon

ссылка на файл ozon.bin ниже

отправка fake udp такого размера вызовет его ip фрагментацию
к озону содержимое отношения не имеет, это вообще не quic
скорее всего здесь сработало бы что-то более простое

Пришло время переходить с zapret1 на zapret2 вот только со стратегиями не как не разберусь на zapret1 работала так

Спойлер

–fil

ter-tcp=443,80 --dpi-desync=fakedsplit --dpi-desync-fooling=ts --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --hostlist=“/opt/zapret/ipset/youtube” --new
–filter-l7=wireguard --dpi-desync=fake --dpi-desync-autottl=4 --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp=/opt/zapret/files/fake/quic_initial_www_google_com.bin --dpi-desync-cutoff=n2 --new
–filter-tcp=443,80 --hostlist=“/opt/zapret/ipset/zapret-hosts-user.txt” --dpi-desync=fake --dpi-desync-fooling=ts --dpi-desync-fake-tls=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin --new

может кто подскажет как перевести для zapret2? а то я уже запутался.

Для youtube вроде подобрал а вот для другух не в какую

Спойлер

–filter-tcp=443 --payload=tls_client_hello --hostlist=“%~dp0files\list-youtube.txt” –lua-desync=multidisorder:pos=2,midsld:seqovl=1 –new

я взял строку i1 из генератора warp, используя вот этот конвертер, получил на выходе файл, у которого байты при hex-просмотре соответствуют тем, что в оригинальной строке.
Судя по подробному описанию здесь, client initial packet должен быть 1200 байт, у меня получился файл 1250, но во вложении что-то другое оказалось. Возможно, я ошибся и приложил не тот файл (но какой?), сейчас попробую еще раз, может, движок форума как-то исказил.

ozon.bin (1,2 КБ)

Файл на 1.2 КБ нормальный, содержит в себе корректный QUIC Initial, сейчас проверил, Wireshark не показывает никаких ошибок расшифровки и определяет SNI правильно, да и дурение на моём провайдере срабатывает с ним нормально. QUIC Initial не обязан быть строго 1200 байт, это его минимально допустимый размер согласно стандарту, но некоторые браузеры отправляют его чуть большего размера (какие-то 1230, какие-то 1250, не вдавался в подробности). Потому с ним всё хорошо.

А тот на 1.8 КБ, который вы выше выкладывали, как раз и был битый, там произошла замена кодировки, сохранён он был криво.

да, я понял, по ошибке вставил не тот файл, ошибку исправил

Скажите, а можно каким-то образом перевести в блобы параметры AWG1.5 Jc, Jmin, Jmax?
Они добавляют случайный шум, раньше только их было достаточно, но теперь в AmneziaWG это требуется применять вместе с i1, чтобы это работало, например, на МГТС

В preset2_wireguard.cmd поглядите пример с рандомными пакетами, в параметр repeats= вместо 3 укажите цифру из Jc, а вместо (32, 64) поставьте цифры из (Jmin, Jmax). Если объединять это с блобом из I1, то строку отправки блоба поставьте между строками с параметрами --payload=… и --lua-desync=repeater, чтоб она была выше репитера рандомных пакетов

Все, что случайно, генерится программой, которую пишет юзер
Не декларативно. Декларации ушли вместе с z1.
Как правило для этого хватает luaexec

После обновления тспу они сломали ваш дефолтный фейк. Пришлось добавлять кастомный. Правда я ещё на версии 0.7.4 проверял.