Насколько безопасен dnstt клиент dnstt-xyz?

Искал более-менее нормальный клиент для Android и десктопного Linux, и случайно наткнулся на это:

https://github.com/dnstt-xyz/dnstt_xyz_app

https://dnstt.xyz

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

При этом клиент якобы сделан для всех ОС и железок что есть на свете, выглядит как что-то чем сможет пользоваться тётя Клава из второго подъезда, и на сайте даже есть список “бесплатных” серверов. Слишком красиво как-то чтоб быть правдой.

Virustotal для последнего релиза на Windows и Linux вроде бы чистый, и я сам немного посидел с отладчиком - но у меня не хватает компетенции чтобы полностью исключить зловредность проекта. Будет здорово если кто-то более квалифиицированный смог бы на это посмотреть и оценить.

там по факту список обычных DNS-серверов разных провайдеров, а не конкретно DNSTT-прокси.

Два человека из знакомых и коллег рискнули и затестили приложение для андроида на второстепенных смартфонах. По меньшей мере оно работает: в регионе с круглосуточными белыми списками телеграм пробился и смог отправить сообщения и изображения. Приложение было запущено в режиме локального прокси. PCAPdroid показал только DNS-запросы до выбранного сервера.

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

По крайней мере хоть сорцы открыты, и рекламы нету, в отличие от давно существующих пары-тройки приложений на Плей Маркете, которыми лучше не пользоваться, и из-за этого на Андроиде мне приходилось использовать dnstt-client из Termux

I (Dnstt upstream developer) also don’t know anything about the origin of dnstt.xyz. I first saw reference to it 2 weeks ago during the most recent shutdown in Iran, when people were posting deployment scripts and instructions for DNS tunnels.

https://github.com/net4people/bbs/issues/561#issuecomment-3793978677

The DNSTT XYZ app is an open-source tool for Android, Linux, Windows, and macOS that uses the DNSTT protocol to tunnel internet traffic through DNS in order to bypass filtering.

On Android, the app works as a system-wide VPN and routes all device traffic through the DNS tunnel. On desktop versions, the program runs as a local SOCKS5 proxy, which can be configured in browsers or other applications.

https://github.com/net4people/bbs/issues/561#issuecomment-3796372418

DNSTT.XYZ-Video-Guide.mp4

I don’t know if the app is trustworthy. You also need to trust the dnstt-server that it is proxying to. You can run your own trusted dnstt-server, and then the DNS resolver in the middle is limited in what it can do to tamper with or surveil your traffic. But you still have to trust the app: because a malicious app could make a copy of all your traffic before it is encrypted and leaves the device, for example.

You are welcome to use the dnstt-server that I set up for the Iran situation, but it may not keep running permanently.

https://github.com/net4people/bbs/issues/561#issuecomment-3796369483

Here is a Dnstt server. It is connected to a SOCKS5 proxy.

pubkey
1606b003c808f0ef2310529c11ea0c546784a95a4a5b9b9464cd87c40da5ff1c
domain
t.rinsed-tinsel.site
server endpoints
176.126.244.152:53
176.126.244.152:5300
[2a00:1098:4a9::2]:53
[2a00:1098:4a9::2]:5300

Example:

dnstt-client -udp YOUR_RESOLVER:53 -pubkey 1606b003c808f0ef2310529c11ea0c546784a95a4a5b9b9464cd87c40da5ff1c t.rinsed-tinsel.site 127.0.0.1:1080
curl --proxy socks5h://127.0.0.1:1080/ https://example.com/

In the event you are able to connect to the server directly,

dnstt-client -udp 176.126.244.152:53 -pubkey 1606b003c808f0ef2310529c11ea0c546784a95a4a5b9b9464cd87c40da5ff1c t.rinsed-tinsel.site 127.0.0.1:1080

This server has something new and special. It is running an experimental branch that lets you use any DNS suffix (as suggested here). That means that anyone can configure a DNS zone to point at the Dnstt server, and it will work in place of t.rinsed-tinsel.site. You need to set up three DNS records:

Record type Hostname Record data
A tns.mydomain.example 176.126.244.152
AAAA tns.mydomain.example 2a00:1098:4a9::2
NS t.mydomain.example tns.mydomain.example

Then the command to run the client will be:

dnstt-client -udp YOUR_RESOLVER:53 -pubkey 1606b003c808f0ef2310529c11ea0c546784a95a4a5b9b9464cd87c40da5ff1c t.mydomain.example 127.0.0.1:1080

Exactly, this is why I’m wondering about app’s origin.

Проверил клиент для Windows - всё работает. Скорости, конечно, здравствуй dial-up, но и то плюс, если остальное будет мертво.

В Ubuntu 22.04 не запустился. Какая-то ошибка символов. Видимо старая система. Всё-таки уже 4 года.

Этим способом как-то можно фильтровать приложения или это будет системный vpn?

это будет проброс порта (обычно socks5 или ssh) на 127.0.0.1 и ничего более. socks5 можно прописать в v2rayNG

Ясно. Конечно, хотелось бы что-то попроще. Как топик, тем более туда slipstream впилили.

Пробовал рекомендованный тут плагин для SS, но он, судя по всему, только как транспорт для SS dnstt использует. HTTP Injector вообще полез куда-то на сервер ещё до нажатия на кнопку соединения, DT вроде соединяется, но трафик не гонит. Было б неплохо иметь ещё альтернативы для Android этим поделиям.

I just fixed a bug with the any-domain branch. Technical information is in the commit message. In short, under some circumstances, the process of searching for a base32 prefix of the query name could result in a truncated output, which would cause incoming traffic to be blocked and the tunnel to be non-functional.

I apologize to anyone who tried to use the tunnel and found it non-functional. When I was initially testing it, I must not have used a combination of parameters that caused the bug to happen. The server is still running with the same IP address and pubkey and may work better for you now.