Ник Пост Дата
tdencrash

Много где слышал про comss dns, пробовал его использовать. Он действительно помогает решать многие проблемы с доступом к ряду сайтов. Но я в какой-то степени параноик и есть у меня определенное недоверие к сторонним инструментам под чужим управлением. Очень интересна практическая реализация их настроек и как это можно повторить самостоятельно, пусть даже используя тот же control-d. Может кто знает, как они добиваются например этого:

  • Обход блокировки доступа до сервисов с AI чатами (ChatGPT, Google Gimini etc), даже без использования VPN.
  • Обход блокировки скачивания образов с сайта Microsoft.
    В чем хитрость? В попытке разрешить имена с серверов на другом континенте, например из США?
2024-11-04T13:08:21.953Z
LeonMskRu(Leon MskRu)

В концепции DNS есть механизм “проброса” адреса клиента в DNS пакет – EDNS Client Subnet (ECS – в дальнейшем)

2024-11-04T14:31:08.870Z
0ka(0ka) 2024-11-04T15:11:34.742Z
tdencrash

Да, но как это влияет на результат?
Например, я иду на сайт Quad9 DNS, сюда Service Addresses & Features | Quad9
Четко написано там, что первый блок адресов работает с выключенным ECS, а второй с включенным (Secured w/ECS: Malware blocking, DNSSEC Validation, ECS enabled). Но прописывание ни тех, ни других не дают того же результата, как у comss. Или я не правильно понимаю принцип этой технологии?

2024-11-04T15:12:35.051Z
mike7

Да, не правильно понимаете. Comss выдает адреса своих серверов и пропускает трафик через них.

2024-11-04T16:01:58.949Z
bokov333(Bokov333)

не comss, а control d. Comss всего лишь покупает у них услугу на сколько я понимаю

2024-11-04T17:52:52.009Z
mike7

Вопрос был про comss, и эти ребята можно сказать, что “натят” через свои серверы. Да, это сделано на платформе (технологии) Control D.
У Control D тоже есть такая услуга https://controld.com/free-dns?freeResolverType=uncensored&helpPane=dns, но там сайтов много меньше

2024-11-04T18:03:57.020Z
tdencrash

Кажется я понял. Хитрость не столько в dns, сколько в том, какие они адреса отдают через этот свой dns. А адреса этот dns возвращает не реального сервиса, а собственных серверов, на которых они выполняют определенную фильтрацию трафика. Стало быть вся хитрость именно в фильтрующих серверах, а не в хитрой работе dns. Занимательно, однако. Такой расклад мне даже в голову не приходил. Спасибо за разъяснения!

2024-11-04T19:40:28.110Z
spellozz(Spellozz)

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

2024-11-04T22:21:16.336Z
dartraiden(Alexander Gavrilov)

Вариант для “бедных”, помогает понять общий смысл

Полноценный вариант

Учитывая, что многие провайдеры в РФ перехватывают весь DNS-трафик и резолвят принудительно сами, имеет смысл сразу прикручивать DoH/DoT. Иначе, вместо вашего DNS вам ответит DNS провайдера и магия не сработает.

2024-11-05T04:30:08.304Z
dartraiden(Alexander Gavrilov)

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

Если я прав, то так можно сделать и аналог АнтиЗапрета. Правда, разблокируется лишь то, что заблокировано по доменным именам, но не то, что заблокировано по IP или подсети. Но зато это можно настроить практически на любом утюге, т.к. требуется лишь, чтобы этот утюг поддерживал DoH/DoT.

2024-11-05T04:49:06.084Z
dartraiden(Alexander Gavrilov)

Пользуясь случаем: если у кого-то есть полный список доменов (не просто названия сервисов, а именно домены), которые “разблокирует” Comss, просьба поделиться.

Известные домены я публиковал в конце этого поста

2024-11-05T04:55:25.002Z
astolfobestgirl

Наоборот же.
Было бы неплохо, если бы кто-нибудь проверил как влияют фейковые пакеты badsum, wongseq на sniproxy. Фейки с ttl должны работать.

2024-11-05T04:55:49.492Z
spellozz(Spellozz)

Хочу попробовать провернуть это с dnscrypt-proxy, он умеет с прокси работать. А в адгард хоум для тестовых доменов указать этот днс.

2024-11-05T07:22:02.827Z
Ori

Написал мини-прогу. Делает запрос с контрлд/комсс, получает айпи, а потом делает whois и смотрит кому айпи принадлежит. Если принадлежит контролд - то там, скорее всего, работает региональная разблокировка. Можно это дело автоматизировать и прогнать по какому-нибудь списку, но какой именно список взять, и где?

ComssAnalyzer.zip (6,2 МБ)

2024-11-05T07:30:09.736Z
Hentay(Hentay)

Не забудьте ДНСы свои про апгрейдить заодно.
А то вдруг они подавятся количеством запросов

2024-11-05T07:46:51.068Z
astolfobestgirl

Я проверил и выяснил, что фейки md5sig, badseq, badsum и разбивка split2, disorder2 работают с прокси controld.
Не завёлся только autottl.
Для проверки использовал:

curl -Sv --connect-to ::206.253.91.89 https://ntc.party/
curl -Sv --connect-to ::51.38.99.209 https://ntc.party/
2024-11-05T08:24:19.700Z
denium

Спасибо. Скомпилировал для линукса dns-check.zip (3,2 МБ). Вписал в браузере dns
https://freedns.controld.com/uncensored
пробовал также https://freedns.controld.com/p0
по dnsleak IP резолвера 45.159.98.186 Польша.
Пинг в 1,75 выше, чем у 1.1.1.1.
Возвращаемые IP адреса сайтов принадлежат CONTROLD INC., согласно проге, но гео блок не обходится. Пробовал intel.com, elevenlabs.io.

2024-11-05T08:27:58.101Z
Zanoni(Zanoni)

А почему бы не написать ребятам с comss такой вопрос? Раньше в комментариях они охотно отвечали на такие вопросы. Может дали бы такой список и объяснили, как их сервер работает для обхода блокировок. Я использовал их сервер для того, чтобы пользоваться ИИ.
https://www.comss.ru/disqus/page.php?id=12919

2024-11-05T09:00:12.397Z
Hentay(Hentay)

А ничего что после таких вот выкрутасов РосКом***** внесёт в баню Комсы ?

Весёлые ребята. :slightly_smiling_face:

2024-11-05T09:33:48.976Z
Zanoni(Zanoni)

Вы в комментарии хоть загляните, я же дал выше ссылку. Пользователи там им пишут - и они публично вносят домены для обхода. Можно написать им в личку, попросить почту для этого.

2024-11-05T09:39:13.583Z
Hentay(Hentay)

Проблема в том…
Что почта в зоне РУ и так под контролем.
Вы только можете за себя отвечать, а не за идиотов. Появиться пост идиота о красоте обхода где-нить на открытых ресурсах и будет всем грустно сразу

2024-11-05T09:41:58.277Z
KDS

А также, видимо, и убирают ) Инста больше не работает ни через один из их адресов. Ну или РТК все IP вообще перебанили.

2024-11-05T10:44:39.375Z
0ka(0ka)

о блокировке SNI роскомнадзором не забывайте

2024-11-05T12:57:43.772Z
KDS

Естественно с обходом проверял

2024-11-05T13:23:57.003Z
0ka(0ka)

ну так выше скидывали ip controld, через первый инста доступна

2024-11-05T13:30:38.497Z
beneficial92

Для начала https://tranco-list.eu/

2024-11-05T17:53:32.575Z
Ori

Ну так, если вы если компилили, то код открывали, наверное? Не видела какой там ДНС вписан? Там не сам контролд, а комсс, который их услугами пользуется. С обычным контролд у меня тоже нифига не работает.

Флаг в руки.

Спс. Реально полезный лист. Воспользуюсь, если буду дорабатывать прогу.

2024-11-05T19:15:17.878Z
Zanoni(Zanoni)

Альтернатива: GitHub - DNSCrypt/dnscrypt-proxy: dnscrypt-proxy 2 - A flexible DNS proxy, with support for encrypted DNS protocols.

В утилите можно прописать любой сервер DNS с DoH:

Там есть и бесплатные от ControlD

2024-11-05T19:21:07.549Z
denium

Не догадался глянуть.

https://dns.controld.com/comss

2024-11-05T19:21:17.405Z
Ori

Сделал. Прогнал по первой тысяче самых популярных доменов из этого поста.

Результат:

microsoft.com
bing.com
goo.gl
sentry.io
cisco.com
googleblog.com
stripe.com
avast.com
openai.com
weather.com
pixabay.com
chatgpt.com
dell.com
avcdn.net
sophos.com
intel.com
qualtrics.com
newrelic.com
microsoftapp.net
intercom.io
healthline.com
bitdefender.com
upwork.com
unpkg.com
supercell.com
segment.io
vmware.com
pexels.com

Дальше проверять не буду, т.к. лень.
Вот прога + код. На линуксе и остальных ОС тоже должна завестить, но компильте уже сами.
ComssAnalyzer2.zip (6,2 МБ)
Использование: ComssAnalyzer2 название_листа_со_списком_доменов

2024-11-06T02:42:11.108Z
denium

У меня предложение по usability для первого ComssAnalyzer. Если вводится в аргументе не доменное имя, а например
ComssAnalyzer https://ottplayer.tv/
или
ComssAnalyzer http://ottplayer.tv
то отсекать лишнее, чтобы не было ошибки Critical error: no IP found. Чтобы сама прога отсекала.
И ещё вопрос. Если IP несколько, берётся первый?

2024-11-06T23:01:48.662Z
denium

Можешь попробовать кросскомпилировать:

set CGO_ENABLED=0
set GOARCH=386
set GOOS=linux
go build -ldflags="-s -w"

GOARCH=386 значит будет работать и на 32 и на 64 битных линуксах (статический бинарник). CGO_ENABLED=0 можно не указывать.

2024-11-06T23:33:12.896Z
spellozz(Spellozz)

Я вот чего не понимаю. Есть к примеру игра Brawl stars, где блокировка стоит с российских ip. Умелец сделал днс и с его помощью обходит блокировку (dns.nullsproxy.com). Сказал что поднял сервер и прокси буквально на коленке. Ч как и автор темы хочу сделать своё и не понимаю как оно работает. У меня есть впс и там стоит адгард, для доменов supercell.com и brawlstarsgame.com указано правило ходить через этот днс сервер. Но как самостоятельно сделать такое , мозгов совершенно не хватает:( Есть идеи?

2024-11-07T04:21:17.019Z
dartraiden(Alexander Gavrilov)

А почему бы не написать ребятам с comss такой вопрос?

Они уже 7 месяцев “думают” над этим вопросом и всё никак не придумают.

Я веду свой список, но у комсы пользовательская база больше и домены, не желающие видеть “грязных русских” они находят быстрее (плюс у них отдельный список для Крыма и подобных мест). Жаль дублировать усилия, было бы куда проще, если бы они сделали свои списки публичными.

Как раз поэтому они и не разблокируют доступ к ресурсам, заблокированным РКН (хотя технически могли бы).

2024-11-07T04:27:53.561Z
dartraiden(Alexander Gavrilov)

Насколько я понял из комментариев с их сайта, у них там куча разных списков с учётом того, где находится клиент. Условно: для Москвы это один список, а для Крыма другой, потому что ряд сервисов блокирует доступ именно со спорных территорий но не из России в целом.

2024-11-07T04:30:57.540Z
0ka(0ka) 2024-11-07T10:23:30.438Z
denium

Иногда whois возвращает NetName, иногда netname. Прога это не учитывает. Если netname, то не возвращает результат. Нужен регистронезависимый grep.
Мне ChatGPT написал прогу на Си с обычным nslookup и whois, которая это учитывает. Но правда избавиться от префиксов https:// и http:// у него не получилось.

2024-11-07T22:11:41.927Z
Ori

Это сделать достаточно просто, но, мне кажется, это переизобретение велосипеда. Та прога, которая ComssAnalyzer, это просто был тест концепта, который я доработал в ComssAnalyzer2.

Функционал, который вы хотите, уже есть во всем известных утилитах. Которыми вы и воспользовались.

Хз крч. Попозже пофикшу и выложу. Наверн.

2024-11-08T00:40:30.098Z
Ori

Написал.
ResolveAndWhois_1.2.zip (6,2 МБ)

Использование:

USAGE: PROGRAMNAME +<IPv> +<RESOLVER> <ADDRESS TO RESOLVE>
EXAMPLE 1: ResolveAndWhois.exe +4 +dns.google example.com
EXAMPLE 2: ResolveAndWhois.exe +8.8.8.8:53 https://example.com/

Если не указывать айпи версию - предполагается 4.
Если не указывать адрес - предполагается example.com. Адрес автоматически чистится от префиксов и т.д.
Если не указывать резолвер - используется системный. Если не использовать точный адрес резолвера, предполагается https и /dns-query (doh). Поддерживается plain, в этом случае обязательно указывать в виде айпи:порт.
Справка по -? или --help

Механику whois переделал. Выкинул модуль с гитхаба, который использовал до этого, т.к. он результаты выдает неустойчиво. Вместо этого прикрутил бутстрап-запрос к ARIN, который возвращает унифицированную запись Registration Data Access Protocol (RDAP) в виде json и потом просто её запарсил.

UPD 1.1:

  • теперь показывает источник whois записи
  • показывает страну (если есть соответствующее поле)
  • показывает дату регистрации, с поправкой на местное время
  • показывает данные по всем enitites
  • лучше форматирование

UPD 1.2

  • добавил вывод наличия ECH
Спойлер

2024-11-08T05:10:44.515Z
meow2

Может ли данный способ оживить ech?

Создать свой comss dns и проксировать cloudflare-ech.com

2024-11-08T06:27:27.220Z
0ka(0ka)

нет, ech outer sni с днс не связан

2024-11-08T07:05:25.843Z
denium

Спасибо. Хорошо получилось. Вот только whois фейлится, если часто запросы отправлять. Зато результаты точнее, чем у системного whois. Системный whois почему-то для filezilla-project.org возвращает netname: STUB-49-12SLASH15.
Могу рассказать как скомпилировать для Linux, там немного хитро. Ну, или спросите у ChatGPT.
Закатываю глаза: а если ещё и проверку http3?

2024-11-08T18:38:27.724Z
Ori

Ну, с фейлами к ARIN я ничего сделать не смогу.

Насчет http3 не уверен. На данный момент утилита обращается только к ДНС и к whois сервису. Насколько мне известно, в них нет информации по поводу поддержки http3 ресурсом. Значит придется делать запрос непосредственно к целевому сайту. А он может быть заблочен или типа того. В итоге, чтобы получить плюс-минус объективный результат, придется сначала делать обычный запрос - чтобы узнать доступен ли сайт в принципе. Короче, морока. Не знаю, нужно ли такое переусложнение?

Насчет компиляции под линукс. У меня нет виртуалки или второй системы. Линукс есть на другом ноуте, но мне впадлу его включать. А выкладывать файл, который может даже не запустится ни у кого - ну такое. Надо всё-таки проверить работоспособность того, что накомпилировал. Поэтому и выкладываю только под винду.
Можно, конечно, загрузиться с флешки, но, опять-таки, мне впадлу.

2024-11-09T00:57:01.569Z
rewhat

Из под WSL собирается, писать код можно там же через vscode. Я собрал, но у меня выдает ошибку, но на Винде при этом работает :thinking:.

DNS:    https://dns.controld.com/comss

URL:    intel.com
ERROR response received addr=https://dns.controld.com:443/comss proto=tcp status="requesting https://dns.controld.com:443/comss: Get \"https://dns.controld.com:443/comss?dns=AAABAAABAAAAAAAABWludGVsA2NvbQAAAQAB\": context deadline exceeded"
Critical error: can't finish DNS lookup: can't resolve 'intel.com': requesting https://dns.controld.com:443/comss: Get "https://dns.controld.com:443/comss?dns=AAABAAABAAAAAAAABWludGVsA2NvbQAAAQAB": context deadline exceeded

upd: а, всё норм, надо было таймауты подкрутить (timeout и timeout whois на шестерку выставил, хз норм нет, не шарю)

resolvee.zip (6,3 МБ)

2024-11-09T01:18:33.571Z
Ori

Да скомпилить то я могу. Проблема в том, что мне надо включать другой комп, чтобы проверить работоспособность. Потому что непроверенное я выкладывать не хочу.

2024-11-09T01:33:31.648Z
rewhat

ну дык wsl тупо установить, go накатить туда, шо там проверять-то

2024-11-09T01:34:03.136Z
Ori

Места нет на ноуте уже :sob:

2024-11-09T01:34:49.677Z
denium

Ведь прога может обращаться и к TLS резолверам и в обычных резолверах есть информация о http3, если отправить HTTPS запись.
dig -t https rutracker.org +short | grep h3
Если в ответе alpn=“h3,h2”, то h3 это оно.

2024-11-09T11:15:11.873Z
Ori

Ну вот, например, ответ от резолвера. https://dns.google/resolve?name=www.google.com&rr_type=HTTPS&ecs=
На что тут смотреть? Я не вижу alpn=

Или это нужно именно DoT? DoH не сработает?

2024-11-09T11:31:10.493Z
denium

DoT и DoH необязательны, но и через них можно посмотреть. И через обычный DNS (UDP), если сделать HTTPS запись.
Видимо, dns.google возвращает не все записи. Вот, что dig показывает:

dig -t https rutracker.org

; <<>> DiG 9.18.1-1ubuntu1.1-Ubuntu <<>> -t https rutracker.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54838
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;rutracker.org. IN HTTPS

;; ANSWER SECTION:
rutracker.org. 263 IN HTTPS 1 . alpn=“h3,h2” ipv4hint=104.21.32.39,172.67.182.196 ech=AEX+DQBBNgAgACD74YZqyZEVewMdSfVXmeZegG6qwHUf9n++UZnZabTBLwAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA= ipv6hint=2606:4700:3031::6815:2027,2606:4700:3034::ac43:b6c4

;; Query time: 215 msec
;; SERVER: 1.1.1.1#53(1.1.1.1) (UDP)
;; WHEN: Sat Nov 09 18:34:15 +07 2024
;; MSG SIZE rcvd: 190

Более того, браузеры могут использовать запись из DNS и сразу коннектиться по HTTP3.

2024-11-09T11:37:20.927Z
Ori

Нашел. Там действительно есть эта запись, даже от гугл.днс. А в браузере, через их сайт - нет. Странно.

2024-11-09T11:42:56.944Z
Ori

Короче, хз. Вроде сделал, но alpn запись настолько редко встречается… Я её только у гугла и у сайтов с ech наблюдаю. Не уверен, что оно того вообще стоило.

ResolveAndWhois_1.3.zip (6,2 МБ)

2024-11-09T13:58:52.921Z
denium

Спасибо. http3 уже много где используется, но видимо не все анонсируют alpn. По идее, надо также отправлять запрос специальной сборкой curl:
curl --http3-only
Но это, конечно, сложно. Например, домен rr1---sn-aigl6nze.googlevideo.com не имеет h3 записи, но по http3 соединяется.
Бывает даже, что главный сервер http3 не поддерживает, а его cdn соединяется. Например, v19-webapp-prime.tiktok.com
Но всё равно полезно знать хотя бы о явной поддержке http3 в dns. Ещё раз спасибо за труды.

Интересно, что tiktok.com хостится на Amazon, www.tiktok.com на Akamai, а v19-webapp-prime.tiktok.com на Fastly.

2024-11-09T15:26:32.915Z
denium

А вообще-то информацию о h3 можно узнать из заголовков сервера при коннекте к нему.
Правда, эти два домена не возвращают их и там.
Так что есть 3 варианта:

  1. dns
  2. заголовки сервера
  3. curl --http3-only

Я, кстати, собрал uGet с libcurl/http3. Первая многопоточная качалка с поддержкой QUIC.
Всего-то вставил строчку curl_easy_setopt (curl, CURLOPT_HTTP_VERSION, 30); в исходники и закомментил запрет проверки сертификатов.
Ждал помощи от ChatGPT, но у него лимиты истекли до следующих суток. В результате сам разобрался. Ну, конечно, ещё нужен shared curl с http3, у меня с quiche.

2024-11-09T18:19:47.377Z
1unknown(Unknown)

Самое главное нет размышлений на тему технологии создания своего “собственного” comss dns :sweat_smile:

Условия: есть арендованный зарубежный VPS.
Задача: создать свой DNS на базе VPS для открытия нужных сайтов прописанных в AdGuard Home такового вида:
[/example.com/example2.com/example3.com/]x.x.x.x

Вариант минимум - выдача адресов от DNS только для прописанных доменов на VPS для прокси. Для всех других сайтов DNS работать не будет.
Вариант максимум - выдача адресов от DNS как для прописанных доменов на VPS для прокси, так и для всех других сайтов только уже с реальными адресами без прокси.
То есть как сейчас работает сам comss.

Буду очень рад обсудить возможные способы реализации :handshake:

2024-11-10T16:17:49.047Z
gfqwdgecewgcdw

Nginx sni proxy
Adguard home

2024-11-10T16:55:48.143Z
0ka(0ka)

уже оставлял сообщение в начале темы

2024-11-10T16:59:46.582Z
1unknown(Unknown)

Помогите пожалуйста разобраться.

Есть VPS с Adguard Home + Sing-Box.

В AGH прописано так:

94.140.14.14
94.140.15.15
[/canva.com/browserleaks.com/2ip.ua/2ip.ru/]127.0.0.1:443

В Sing-Box прописано так:

{
    "dns": {
        "servers": [
            {
                "address": "94.140.14.14",
                "detour": "direct",
                "strategy": "prefer_ipv4",
                "tag": "dns-remote"
            }
        ]
    },
    "inbounds": [
        {
            "domain_strategy": "prefer_ipv4",
            "listen": "0.0.0.0",
            "listen_port": 443,
            "sniff": true,
            "sniff_override_destination": true,
            "tag": "direct-proxy",
            "type": "direct"
        }
    ],
    "log": {
        "level": "debug"
    },
    "outbounds": [
        {
            "tag": "direct",
            "type": "direct"
        },
        {
            "tag": "block",
            "type": "block"
        },
        {
            "tag": "dns-out",
            "type": "dns"
        }
    ],
    "route": {
        "final": "block",
        "rules": [
            {
                "outbound": "dns-out",
                "protocol": "dns"
            },
            {
                "domain": [
                    "2ip.ru",
                    "2ip.ua",
                    "canva.com",
                    "browserleaks.com"
                ],
                "outbound": "direct"
            }
        ]
    }
}

В Adguard Home уже на своем роутере прописано так:

[/2ip.ru/2ip.ua/browserleaks.com/canva.com/rutracker.org/]XX.XXX.XXX.XX (мой внешний IP VPS)

nslookup на роутере дает так:

traceroute to 2ip.ru (127.0.0.1), 30 hops max, 60 byte packets
 1  localhost.localdomain (127.0.0.1)  0.058 ms  0.027 ms  0.026 ms

Почему AGH на VPS не передает запрос на Sing-Box, а отвечает точным адресом 127.0.0.1?

2024-11-12T14:46:35.559Z
0ka(0ka)

он не должен это делать, днс сервер никак не связан с sing-box, он должен только подменять ответы на нужные вам домены и возвращать vps_ip. Правило в днс сервере должно быть “address 2ip.ru / vps_ip”, а не “server 2ip.ru / 127.0.0.1:443”

2024-11-12T16:21:34.459Z