bol-van / zapret

DPI bypass multi platform
8.49k stars 639 forks source link

Discord Войс чаты #775

Closed nockiee closed 1 week ago

nockiee commented 1 week ago

Решился запретом анлокнуть дискорд по туториалу этого крутого человечка https://github.com/bol-van/zapret/issues/688 Дискорд работает, картинки грузятся, сообщения отправляются но к войсам не подключает. Как это можно исправить? Делал всё точно как в туториале.

SawFowl commented 1 week ago

Скопипастить файл 50-discord из /opt/zapret/init.d/sysv/custom.d.examples/ в /opt/zapret/init.d/sysv/custom.d/ . Потом перезапустить запрет или перезагрузиться. Работает на ArchLinux. Интернет от Ростелекома. Использую 68 релиз запрета.

nockiee commented 1 week ago

Скопипастить файл 50-discord из /opt/zapret/init.d/sysv/custom.d.examples/ в /opt/zapret/init.d/sysv/custom.d/ . Потом перезапустить запрет или перезагрузиться. Работает на ArchLinux. Интернет от Ростелекома. Использую 68 релиз запрета.

Сделал, дискорд запускается, но подключится к голосовому каналу не получается. image

Интернет от скайнет, использую Ubuntu x64, запрет тоже 68 версии

Fenrir-0xFF commented 1 week ago

Сделал, дискорд запускается, но подключится к голосовому каналу не получается.

Чекни --new --filter-udp=50000-50099 --dpi-desync=fake,tamper --dpi-desync-any-protocol --dpi-desync-fake-quic=0xC3 0x00 0x00 0x00 0x01 0x08

bol-van commented 1 week ago

tamper не работает hex в таком формате указывать нельзя. все, кроме первого байта, будет проигнорировано для linux норм, но на винде это станет трэш флудом

nockiee commented 1 week ago

Сделал, дискорд запускается, но подключится к голосовому каналу не получается.

Чекни --new --filter-udp=50000-50099 --dpi-desync=fake,tamper --dpi-desync-any-protocol --dpi-desync-fake-quic=0xC3 0x00 0x00 0x00 0x01 0x08

Это в NFQWS_OPT вписать?

Fenrir-0xFF commented 1 week ago

Это в NFQWS_OPT вписать?

Да Судя по сообщению выше достаточно --new --filter-udp=50000-50099 --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-fake-quic=0xC3

tamper не работает hex в таком формате указывать нельзя. все, кроме первого байта, будет проигнорировано для linux норм, но на винде это станет трэш флудом

Насчёт hex'а правильно будет так? 0xC30000000108 а то nfqws никаких ошибок не выдал, да и от udp на дискорде отклик шол, думал значит всё норм Насчёт tamper этот конфиг ктото давно ещё выкладывал в таком виде только там вместо hex'а был бинарик quic_initial, вместо бинарика взял первые несколько байт, чекнул - робит по крайней мере на проводном билайне. На винде не чекал, только на роутере, там всё збс.

nockiee commented 1 week ago

Да Судя по сообщению выше достаточно --new --filter-udp=50000-50099 --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-fake-quic=0xC3

Не сработало, смена региона в дс, и все такие способы не работают, добавил в NFQWS_OPT, переустановил запрет и перезапустил пк

Elllkere commented 1 week ago

Да Судя по сообщению выше достаточно --new --filter-udp=50000-50099 --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-fake-quic=0xC3

Не сработало, смена региона в дс, и все такие способы не работают, добавил в NFQWS_OPT, переустановил запрет и перезапустил пк

А если --dpi-desync-fake-quic="quic_initial_www_google_com.bin" ? И вообще лучше снифануть и проверить устанавливается ли websocket соединение, через него дается ип войс сервера, если оно не устанавливается, то смысла тыкать udp и нет, он просто не может получить ип куда конектиться

Fenrir-0xFF commented 1 week ago

А если --dpi-desync-fake-quic="quic_initial_www_google_com.bin" ?

Я чекал там достаточно первого байта, чтобы наверняка можно чютка побольше 0xC30000000108, .bin это скорей всего уже перебор т.к. dpi у паразитов не резиновый, пакеты целеком обрабатывать врятли станет. Проверить можно так tcpdump -i eth0.2 udp portrange 50000-50099 -n Если обход блокировки работает то дискорд будет посылать ответные udp

И вообще лучше снифануть и проверить устанавливается ли websocket соединение, через него дается ип войс сервера, если оно не устанавливается, то смысла тыкать udp и нет, он просто не может получить ип куда конектиться

И это тоже В списке http/https должны быть сайты дискорда

discord.com
discord.gg
discordapp.com
discordapp.net
discord.app
discord.media
discordcdn.com
discord.dev
discord.new
discord.gift
discordstatus.com
dis.gd
discord.co
discord-attachments-uploads-prd.storage.googleapis.com
nockiee commented 1 week ago

И это тоже В списке http/https должны быть сайты дискорда

В конкретный файлик? Если да, то где лежит или где создать

nockiee commented 1 week ago

Да Судя по сообщению выше достаточно --new --filter-udp=50000-50099 --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-fake-quic=0xC3

C этим вообще запрет перестает работать

Fenrir-0xFF commented 1 week ago

В конкретный файлик? Если да, то где лежит или где создать

Который у тебя указан как hoslist auto туда куда заблокированные сайты добавляются

C этим вообще запрет перестает работать

У тебя винда? Разраб писал что на винде этот метод не канает. Это в самый конец конфига добавь, после всех остальных --new...

nockiee commented 1 week ago

У тебя винда? Разраб писал что на винде этот метод не канает. Это в самый конец конфига добавь, после всех остальных --new...

Убунту, писал чуть выше.

поместил домены дискорда в ipset/zapret-hosts-user.txt попробовал разные настройки в конфиге потыкать, всё осталось как прежде.

вот, может поможет сам конфиг https://pastebin.com/XRth2djA

Fenrir-0xFF commented 1 week ago

вот, может поможет сам конфиг https://pastebin.com/XRth2djA

На первый взгляд надо так: NFQWS_PORTS_UDP=443,50000-50099 MODE_FILTER=autohostlist

bol-van commented 1 week ago

Насчёт hex'а правильно будет так? 0xC30000000108 а то nfqws никаких ошибок не выдал, да и от udp на дискорде отклик шол, думал значит всё норм

Да, так правильно. Не выдал, потому что так работает getopt_long_only. Опция=параметр или Опция параметр все что дальше через пробелы не относится к опции

bol-van commented 1 week ago

На первый взгляд надо так: NFQWS_PORTS_UDP=443,50000-50099 MODE_FILTER=autohostlist

autohostlist не будет работать на портах дискорда по 443 для quic он тоже практически не работает, тк ждет повторный initial с crypto, а это современные броузеры не делают

bol-van commented 1 week ago

Да Судя по сообщению выше достаточно --new --filter-udp=50000-50099 --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-fake-quic=0xC3

Не сработало, смена региона в дс, и все такие способы не работают, добавил в NFQWS_OPT, переустановил запрет и перезапустил пк

Они же напишут прямо копипастой в NFQWS_OPT строку , начинающуюся с --new. И она не сработает, потому что первый профиль создаетя пустой, и он забирает на себя все. Это инструкция nfqws не делать ничего. К тому же нет дурения tcp

Fenrir-0xFF commented 1 week ago

все что дальше через пробелы не относится к опции

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

autohostlist не будет работать на портах дискорда

Да это не к дискорду, там у него http и https есть чисто под них, правда надо < HOSTLIST > на ещё заменить, сразу не заметил

по 443 для quic он тоже практически не работает, тк ждет повторный initial с crypto, а это современные броузеры не делают

Про quic незнал, на браузере протестить возможности нет. Он только сайты с quic протоколом со старых браузеров добавляет или любые udp тоже если идёт обращение к ним через домен? А то Я у себя туда udp 6969 порт добавил с опцией hoslist auto, который очень чясто используется торрент трекерами и вот сейчяс после твоих слов начяли терзать сомнения.

Они же напишут прямо копипастой в NFQWS_OPT строку , начинающуюся с --new. И она не сработает, потому что первый профиль создаетя пустой, и он забирает на себя все.

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

bol-van commented 1 week ago

Он только сайты с quic протоколом со старых браузеров добавляет или любые udp тоже если идёт обращение к ним через домен?

Чтобы узнать домен, нужно его вычленить из протокола прикладного уровня. Для этого прога должна его знать, и в протоколе должен светиться домен. На udp это только quic. ауто udp срабатывает только на некоторых старых quic либах. и сама по себе технология детекта ретрансмиссий в случае quic проблемна. Если в tcp есть фаза конекта, то этот будет долбить на любой адрес без ответа, заставляя добавляться в лист всякую ерунду. Потому лучше не использовать. Потому и сделал маркер <HOSTLIST_NOAUTO> с прицелом на quic

Fenrir-0xFF commented 1 week ago

Чтобы узнать домен, нужно его вычленить из протокола прикладного уровня. Для этого прога должна его знать, и в протоколе должен светиться домен.

А что думаешь насчёт добавления в nfqws возможности обработки dns запросов? Чтобы для тогоже quic в hoslist auto сайты добавлялись, а tcp/udp(не содержащие в себе домена) к которым идёт обращение по домену который присутствует в списке добавлялись автоматически в ipset. С quic правда ХЗ, возможно в тотже ipset добавлять придётся изза кэша dns. Перенаправить через iptables/nftables 53е порты на обработку через nfqws, чтобы домены вытаскивал. На всякие DoH пофигу их в браузере вроде можно отключять

Такто теоретически можно через dnsmaq-full это проделать прописав домены для tcp/udp в nftset, но придётся лепить кастыль чтобы автоматически раз в пару секунд вытаскивал ip адреса из списка nftables и запихивал в файл ipset.

bol-van commented 1 week ago

dnsmasq умеет добавлять в ipset и nfset. даже на BSD есть какая-то поддержка сетов. зачем переделывать эту технологию ? Для винды что ли ?

Такто теоретически можно через dnsmaq-full это проделать прописав домены для tcp/udp в nftset, но придётся лепить кастыль чтобы автоматически раз в пару секунд вытаскивал ip адреса из списка nftables и запихивал в файл ipset.

Зачем какой-то файл ipset ? В unix системах опция --ipset tpws/nfqws не нужна, если поддержка есть в ядре.

Fenrir-0xFF commented 1 week ago

dnsmasq умеет добавлять в ipset и nfset. даже на BSD есть какая-то поддержка сетов. зачем переделывать эту технологию ? Для винды что ли ?

На OpenWRT не умеет, там урезанная версия, полноценный пакет который это умеет dnsmasq-full, но он весит вместе со всеми сопутствующими зависимости толи 400кб+ толи 700кб+, если памяти хватает то пофигу но зачястую это непозволительная роскош.

Зачем какой-то файл ipset ? В unix системах опция --ipset tpws/nfqws не нужна, если поддержка есть в ядре.

Блин забыл что можно так nft add rule inet zapret post meta mark and 0x40000000 == 0 ip daddr @ipList udp dport 6969 ct original packets 1-12 queue num 200 bypass

nockiee commented 1 week ago

На первый взгляд надо так: NFQWS_PORTS_UDP=443,50000-50099 MODE_FILTER=autohostlist

После этой настройки всё заработало, спасибо ребят за помощь :)

Fenrir-0xFF commented 1 week ago

После этой настройки всё заработало, спасибо ребят за помощь :)

У тебя в NFQWS_OPT="... в первых двух строках стоит < HOSTLIST > замени на а то http/https сайты автоматически в список не будут добавляться

@bol-van тут у товарищя проблема возникла потомучто порты дискорда небыли прописаны в NFQWS_PORTS_UDP Можно сделать чтобы порты брались из --filter-tcp= и --filter-udp= прописывались туда автоматически

#Collecting ports
NFQWS_PORTS_TCP="$(echo $NFQWS_OPT | grep -oE 'filter-tcp=[0-9,-]+' | sed -e 's/.*=//g' -e 's/,/\n/g' | sort -un)";
NFQWS_PORTS_UDP="$(echo $NFQWS_OPT | grep -oE 'filter-udp=[0-9,-]+' | sed -e 's/.*=//g' -e 's/,/\n/g' | sort -un)";

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