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

@bolvan Пока у вас есть настроение для объяснений (ну вдруг :slight_smile: ). Можно вкратце про автохостлист еще раз, на примере

осталось две ситуации рассмотреть

  1. youtube.com есть только в youtube.txt но параметры1 НЕ помогают получить доступ к сайту
  2. youtube.com есть и в youtube.txt и autolist.txt
    и наши профили (жесткие фильтры везде tcp=443)
--filter-tcp=443 --hostlist="youtube.txt"  [параметры1]
--filter-tcp=443 --hostlist="russain.txt"  [параметры2]
--filter-tcp=443 --hostlist-auto="autolist.txt"  [параметры3]

В каком порядке будут применяться параметры “дурения” при доступе к youtube.com?
Помощь я читал, но мне не до конца понятен механизм попадания именно в такой ситуации домена в автохостлист.
Т.е. для ситуации1 применяются параметры1 и потом фиксируется факт блокировки (после 3х неуспешных попыток с таймаутом 60 сек, которые тоже параметрами задать можно)
ну и для ситуации2 в каком порядке применяются и не применяются парамметры1,3
Про debug и логирование я знаю, но сэмулировать такую ситуацию на практике сложно.

Убирать и перемещать все строки? или только

--filter-udp=443

Тут понял

2 Строки целиком где есть дискорд?

Тут понял

Сверка профилей идет всегда слева направо. При первом совпадении сразу match и никаких больше поисков ни при каких условиях.
То есть если он в youtube.txt, до автолиста дело не дойдет.
В автолистном профиле если он уже в листе, дурение пойдет как при обычном листе, без проверки результата. Если его еще нет в автолисте, дурение НЕ пойдет и будет оцениваться результат. При НЕ успехе (ретрансмиссии, RST, http redirect на другой домен) будет занесение в лист.

Спасибо.Теперь понятно и логично.

а то вот тут возникал вопрос. И многие утверждают, что все равно если нет доступа (после применения профиля1), то ютуб.ком добавиться в автолист.

Это не так.
Но есть еще нюансики с нулевой фазой.
На этапе нулевой фазы (tcp handshake) при наличии wssize или syndata оно может пойти по автохостлист профилю . И смотря где написано wssize будет либо не работать вообще, либо работать всегда без учета листа. Только нулевая часть, остальное потом выправится, тк профили переключатся, когда появится имя хоста

Есть же --debug. Он там все показывает что творит.
Смотрим начало соединения. SYN пакет.
Сразу же идет поиск профиля. Там может выпасть или автолистный , или profile 0.
Потом идет TLS CLientHello
Hostname discovered, L7 discovered.
Пересканирование профилей.
Hostlist check profile 1.
Profile 1 matches
это переключение профилей, дальше обработка по profile 1 с youtube без автолиста

Вот так получилось, но мне кажется я вас не так понял в каких-то моментах…

NFQWS_OPT_DESYNC="
--hostlist=/opt/zapret/zapret_lists/russia-youtubeGV.txt --filter-tcp=443 --dpi-desync=split --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-repeats=10 --dpi-desync-autottl --new
--hostlist=/opt/zapret/zapret_lists/russia-youtube.txt --filter-tcp=443 --dpi-desync=fake,split2 --dpi-desync-split-seqovl=2 --dpi-desync-split-pos=3 --dpi-desync-fake-tls=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin --dpi-desync-ttl=autottl --new
--hostlist=/opt/zapret/zapret_lists/russia-blacklist.txt --filter-tcp=80 --dpi-desync=fake,split2 --dpi-desync-fooling=md5sig --dpi-desync-autottl --new
--hostlist=/opt/zapret/zapret_lists/russia-blacklist.txt --filter-tcp=443 --dpi-desync=fake,split2 --dpi-desync-split-seqovl=1 --dpi-desync-split-tls=sniext --dpi-desync-fake-tls=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin --dpi-desync-skip-nosni=1 --dpi-desync-autottl --new
--dpi-desync=fake,split2 --hostlist-auto=/opt/zapret/zapret_lists/autohostlist.txt --hostlist-exclude=/opt/zapret/zapret_lists/netrogat.txt --filter-tcp=443 --dpi-desync=split --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-repeats=10 --dpi-desync-autottl

NFQWS_OPT_DESYNC_QUIC="
--hostlist=/opt/zapret/zapret_lists/russia-youtubeQ.txt --filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=4 --dpi-desync-fake-quic=/opt/zapret/files/fake/quic_initial_www_google_com.bin --new
--hostlist=/opt/zapret/zapret_lists/russia-youtubeGV.txt --filter-tcp=443 --dpi-desync=split --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-repeats=10 --dpi-desync-autottl --new
--hostlist=/opt/zapret/zapret_lists/russia-youtube.txt --filter-tcp=443 --dpi-desync=fake,split2 --dpi-desync-split-seqovl=2 --dpi-desync-split-pos=3 --dpi-desync-fake-tls=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin --dpi-desync-ttl=autottl --new
--hostlist=/opt/zapret/zapret_lists/russia-blacklist.txt --filter-tcp=80 --dpi-desync=fake,split2 --dpi-desync-fooling=md5sig --dpi-desync-autottl --new
--hostlist=/opt/zapret/zapret_lists/russia-blacklist.txt --filter-tcp=443 --dpi-desync=fake,split2 --dpi-desync-split-seqovl=1 --dpi-desync-split-tls=sniext --dpi-desync-fake-tls=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin --dpi-desync-skip-nosni=1 --dpi-desync-autottl --new
--filter-udp=50000-50020 --dpi-desync=fake --dpi-desync-fake-quic=/opt/zapret/files/fake/quic_initial_www_google_com.bin --new
--dpi-desync=fake,split2 --hostlist-auto=/opt/zapret/zapret_lists/autohostlist.txt --hostlist-exclude=/opt/zapret/zapret_lists/netrogat.txt --filter-tcp=443 --dpi-desync=split --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-repeats=10 --dpi-desync-autottl

Уважаемый @bolvan , такая проблема, у матери на компе стоит лубунту 2204, с установленным тогда же (в 22 году) запретом, с опциями --split2, --wssize=1:6, (да, знаю что что влияет на скорость, но в данном случае это не критично) работало железобетонно, даже когда заблочили ютуб не пришлось приезжать, ибо я заранее вбил все его домены еще когда заблочили только аватарки. Но вчера, после обновления ядра до 5.15.0-124 (2024-10-17 12:08:19 status installed snapd:amd64 2.65.3+22.042024-10-17 12:08: - Pastebin.com), обход перестал работать впринципе, при этом никаких ошибок в консоли и тд. Я подумал ок, время обновить прогу, поставил последнюю версию с сайта - тоже самое (знаю, что теперь для работы -wssize нужно прописывать его в NFQWS_OPT_DESYNC_HTTPS_SUFFIX), обычные стратегии типа fake работают (но не на ютубе), а --wssize нивкакую, подскажите куда копать, действительно ли это какие-то изменения в ядре линукса или что-то другое. Прописывал NFQWS_OPT_DESYNC=“–debug=1 --dpi-desync=split2” и в NFQWS_OPT_DESYNC_HTTPS_SUFFIX=“–debug=1 --wssize 1:6” тоже, но что-то никакого подробного лога в консоли не увидел.

Тяжело это, когда ничего не понимаешь. Когда это всего лишь буковки.

tcp бесполезен для QUIC
автолист, если он нужен, лучше реализовать тогда через
MODE_FILTER=autohostlist, убрав его из профилей вообще. скрипты допишут
будет стандартный автолист в директории ipset

NFQWS_OPT_DESYNC="
--hostlist=/opt/zapret/zapret_lists/russia-youtubeGV.txt --filter-tcp=443 --dpi-desync=split --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-repeats=10 --dpi-desync-autottl --new
--hostlist=/opt/zapret/zapret_lists/russia-youtube.txt --filter-tcp=443 --dpi-desync=fake,split2 --dpi-desync-split-seqovl=2 --dpi-desync-split-pos=3 --dpi-desync-fake-tls=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin --dpi-desync-ttl=autottl --new
--hostlist=/opt/zapret/zapret_lists/russia-blacklist.txt --filter-tcp=80 --dpi-desync=fake,split2 --dpi-desync-fooling=md5sig --dpi-desync-autottl --new
--hostlist=/opt/zapret/zapret_lists/russia-blacklist.txt --filter-tcp=443 --dpi-desync=fake,split2 --dpi-desync-split-seqovl=1 --dpi-desync-split-tls=sniext --dpi-desync-fake-tls=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin --dpi-desync-skip-nosni=1 --dpi-desync-autottl --new
--dpi-desync=fake,split2 --filter-tcp=443 --dpi-desync=split --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-repeats=10 --dpi-desync-autottl

NFQWS_OPT_DESYNC_QUIC="--dpi-desync=fake --dpi-desync-repeats=10"

MODE_FILTER=autohostlist
MODE_HTTP=1
MODE_HTTP_KEEPALIVE=1
MODE_HTTPS=1
MODE_QUIC=1

netrogat.txt перемещается в ipset/zapret-hosts-exclude.txt
autohostlist.txt перемешается в ipset/zapret-hosts-auto.txt

что это за russia blacklist и прочие листы я не знаю, тоже могут быть логические нестыковки

спасибо, вот это тоже требовало для меня пояснения. Что если будет что-то типа

--dpi-desync=fake,disorder2 --dpi-desync-ttl=1 --dpi-desync-autottl=3 --wssize 1:6

для автолиста. То на первом проходе выполнится только wssize (нулевая фаза), а потом когда станет известно имя хоста (после clienthello например) то еще раз пойдёт скан по профилям и может выбраться другой.

Именно так.
Теоретически скан профилей может выполняться 3 раза.
На этапе tcp handshake, на этапе узнавания L7 и на этапе узнавания хоста. Последние 2 обычно вместе происходят, так что обычно скана всего 2.
И если вместо hostlist-auto будет hostlist и/или hostlist-exclude, то wssize по этому профилю не применится, тк он не будет выбран на этапе tcp handshake

Печально. Я думал кроме матча по домену проверяется еще и его доступность для нормального коннекта.

Доступность для конекта - критерий ненадежный.
Там может быть и подмена сертификата (кто его подменяет ? откуда нам знать ? и подменяют ли ?), может быть какой-то http код левый (400, например. кто его выдает ? сервер в нормальном состоянии ? фейк наш дошел до сервера и испортил ответ ?).
Может сервер призадумался.

Я думал над этой автоматией. Сложно получается и ненадежно, отказался.
В byedpi есть кое-какая автоматия с обратной связью. Но там это проще сделать, чем на уровне отдельных пакетиков

Вы вообще единственный разработчик этой гениальной и полезной программы или коллектив разработчиков?
В любом случае огромное спасибо за разработку. Учитывая функционал и поддержку для разных платформ, это очень большая и полезная программа.

Спасибо за конфиг :blush:

Как понять перемещается? Эти файлы скинуть в папку ipset?

содержимое исходное этих файлов поместить в те что указаны ipset/zapret*.txt

Так они пустые :sweat_smile:

Одна польза от ркн. У вас есть повод чаще навещать маму(если вы не через впн к ней подключаетесь), чтобы ей запрет настроить.

Реально рекламный слоганы.
“Ркн заботится о вас, обновили настройки тспу, навестите родителей!”
“На форумах затишье??? РКН придёт на помощь, общайтесь с новыми силами и энергией.”
“Никогда не слышал о ресурсе xyz.xy? Заблокируем его для тебя, чтобы узнал и им пользовался впредь.”

блин)) поржал

Нет, это значит информацию из файла A перенести в файл B
Если там ничего нет, значит ничего и делать не надо