Обсуждение

Все вопросы по поводу zapret пишите сюда.

Добрый день, использовал программу для Linux nfqws. До недавнего времени все работало. Но что то поменяли в настройках сети, либо придумали ещё что то мои настройки nfqws перестали работать. Использовали эти команды, также изменял размер пакета. ИСпользовал на линукс сервере.
iptables -A OUTPUT -p tcp -m tcp --sport 443 --tcp-flags SYN,ACK SYN,ACK -j NFQUEUE --queue-num 200 --queue-bypass
плюс изменял размер:
zapret/binaries/x86_64/nfqws --qnum=200 --wsize=8 --daemon
Но к сожалению это уже не работает. Выдает ошибку на у клиента опен transport error. Посоветуйте как можно изменить настройки этой проги

Фрагментация на сервере - не панацея. Этой технике уже много лет, она начала использоваться давным давно для борьбы с китайским фаерволом. Разумеется, сейчас это уже там не работает.
И у нас это сработает лишь на тех провайдерах, DPI которых достаточно для обмана лишь фрагментация TLS ClientHello. Такие провайдеры существуют, но их меньшинство.
DPI развиваются. Посмотрите какие техники используются в атаке десинхронизации. Вы не сможете без помощи со стороны клиента преодолеть такие DPI. И уж точно никогда не сможете сделать универсальную пиллюлю, которая работала бы везде и гарантированно.

Попробуйте посмотреть в сторону TLS 1.3+ESNI. Это тоже не панацея, требует поддержку в броузере (не всегда включено по умолчанию), спецификация еще не RFC, потому поддержки в веб серверах нет. Но уже есть proxy-поделки.

Думаю попробовать какие то другие техники, возможно помогут, или zapret уже не справиться с задачей которую я ставлю? Я могу с вами пообщаться в приватном чате? Или могу ли я написать вам в личку?

Как можно реализовать эту технологию? Мне в этом поможет программа zapret?

Я с этим не связывался сам, но полагаю у cloudflare можно заказать fronting с поддержкой ESNI.
Или ищите прокси-поделку для терминации TLS у себя на сервере. Где-то проскакивало, но не запомнил как называется.
zapret предназначен для обмана DPI на стороне клиента. даже не думал, что кто-то это будет использовать на сервере

Большинство DPI способно принять решение о запрете по первому пакету с данными от клиента. TLS client hello или http request. С сервера можно повлиять только на разбивку посредством wsize, но как уже сказал это далеко не всегда сработает

Возможно это поможет, мне? Пожалуйста подскажите как мне запустить этот парметр в nfqws. А то я немного затрудняюсь.Я хочу попробовать реализовать это на сервере.

Это ничем вам не поможет. Даже если вы разобьете ответ от сервера, клиент без специальных средств будет отсылать обычный ClientHello, на который тут же ополчится DPI. Вашему серверу даже отвечать не придется. DPI отрежет клиента до того, как серверу представится шанс что-то сделать

Это ничем вам не поможет. Вашему серверу даже отвечать не придется.

О каких способах обхода блокировки тогда могла идти речь в следующей теме?

Если порассуждать немного…
Большинство DPI заблокируют стрим при первом же пакете с данными от клиента, где http запрос или TLS client hello.
Значит действовать надо уже на этапе 3-way handshake.
Можно попытаться сделать реверс-десинхронизацию, базируясь на пришедшем TTL. Или badsum, badseq
Чтобы desync пакеты доходили до DPI, но не доходили до клиента.
Попробовать от сервера послать RST. Как будто сервер сбросил конект. Но чтобы не дошло до клиента. Или послать какой-то левый пакет данных, например левый http response.
Возможно, какие-то DPI это задурит
По IP можно определить провайдера, и имея базу провайдеров что работает на каком, изменять тип реверс-дурения

Как запускать custom-скрипты, такие как custom-nfqws-dht4all? Хотелось бы подробную иструкцию для работы со скриптами.

Попробная инструкция написана в readme. Раздел “вариант custom”.
Готовые скрипты включаются копированием соотв. файла в файл “custom” с его замещением, затем выбор в config MODE=custom.
Код скрипта следует прочитать, там в коментах пишу необходимые дополнительные переменные в config.
dht скрипт наследует режим nfqws, потому вся остальная конфигурация ему соответствует.
Можно прогнать install_easy с MODE=nfqws, настроить, убедиться в работоспособности, затем перейти на custom

после того как попробовал гудбайдпи на винде и на моё удивление проканало, решил попробовать запрет на линуксе сначала он (вместе со мной)) как то приуныл (UNAVAILABLE) а потом как попёрли (AVAILABLE!!!) и ведь риально работает, спасибо вам всем за титаникстический труд!

ps
к сожительению после 24 февраля автономный обход блокировок становется всё меннее актуально всвязи с тем что ето уже нетолько лиш у нас но и на той стороне начали блокировать с росийских айпишники

pps
и в тоже самое время автономный обход блокировок не теряет свой актульности так как ркн усилили методы борьбы с впнами и прочим шифротрафиком который идёт через границу как я понел

Потому у меня и создана система “ipban”. Потому что все автономно обойти невозможно.
Но это только хелпер, основа - руками

Интересно, что смотрит ответ только если SNI нет, но TLS выявлен. При наличии SNI блокирует или прекращает следить.

nice

Добрый день.

Прошу помощи в настройке zapret в такой конфигурации домашней сети:

клиенты - virtual box (192.168.199.65, openWrt, установлен zapret) - основной роутер - интернет.

Чтобы можно было указать в качестве прокси на клиентах (ПК, смартфоны) IP и порт виртуальной машины (я предпочитаю использовать privoxy, 192.168.199.65:8118).

Можно ли так настроить, если да, то как это сделать?
Или как можно настроить в подобной конфигурации?

Если после запуска файла blockcheck.sh в сводке доступных способов обхода есть строка:
ipv4 rutracker.org curl_test_http : tpws --methodeol
можно ли мне выбрать при настройке (install_easy.sh) в качестве способа обхода tpws и потом указать в файле
TPWS_OPT=“–methodeol”
Будет ли так работать?

После настройки zapret у меня запускается, как процесс, виден в htop
/opt/zapret/tpws/tpws --user=daemon --bind addr=127.0.0.127 --port=988 --methodeol

Буду благодарна за помощь.
Если вопросы некорректны, то прошу прощения - только начала с этим разбираться.
GoodByeDPI на Windows у меня работает, теперь пробую настроить на openWrt.
Если получится настроить на виртуальной машине, потом так же сделаю на роутере.

Сеть не должна быть в режиме NAT. Нужен bridge. Иначе почти никакие методы не будут работать.

Можно, но такая настройка zapret не касается, а ликбезом по linux я не занимаюсь. Ищите информацию в сети.
Если вкратце, то zapret обходит блокировки в тч на локальном устройстве. Значит надо установить любой прокси на то же устройство, и соединения с него пойдут через zapret.
Хотя такая конфигурация и не очень логична, правильнее было бы использовать маршрутизацию

Будет для http , ломая значительное количество сайтов. Для https не будет.

Спасибо Вам за ответ

У меня в настройках виртуальной машины в разделе “Сеть” выбран “Тип подключения” - “Сетевой мост”, речь, наверное, об этом?

Тогда какие выбрать настройки для install_easy.sh, если у меня такие способы обхода:

ipv4 rutracker.org curl_test_http : tpws --methodeol
ipv4 rutracker.org curl_test_http : nfqws --dpi-desync=split --dpi-desync-ttl=8
ipv4 rutracker.org curl_test_https_tls12 : tpws not working
ipv4 rutracker.org curl_test_https_tls12 : nfqws --dpi-desync=fake,split2 --dpi-desync-ttl=4

Те, что с nfqws, раздельно для http и https