LINUX.ORG.RU
ФорумAdmin

Настраивание dnscrypt-proxy

 ,


0

1

Пытаюсь настроить по этому видео: https://onion.tube/watch?v=7lqRRomum2Q

При вводе команды «./dnscrypt-proxy -resolve cloudflare-dns.com» выдаёт: Resolving [cloudflare-dns.com] using 127.0.0.1 port 53

Unable to resolve: [read udp 127.0.0.1:53449->127.0.0.1:53: read: connection refused]

Как заставить работать, господа?

Перемещено hobbit из general


Ответ на: комментарий от Pinkbyte

Я правильно понял, что никаких журналов быть не может, прочитав это: https://github.com/DNSCrypt/dnscrypt-proxy/wiki/Logging

По крайней мере, я извлёк dnscrypt-proxy из архива, в моей папке нет никаких «.log» файлов.

Я особых правок в файле не делал. Но если хочешь можешь глянуть: https://sendpass.ru/?1c1ad74b7d35d169#8nfCrWzQCMy8uAjcm8faujb59YmnJ24m358gp5aj32G3

temak
() автор топика
Ответ на: комментарий от temak

Я правильно понял, что никаких журналов быть не может

Да

Но если хочешь можешь глянуть

Не удалось получить данные записи: Запись не существует, просрочена или была удалена.

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Заменил «log_level» на 0. Запустил dnscrypt-proxy так: sudo ./dnscrypt-proxy, он мне выдал:

[2023-06-25 16:00:27] [NOTICE] dnscrypt-proxy 2.1.4
[2023-06-25 16:00:27] [NOTICE] Network connectivity detected
[2023-06-25 16:00:27] [NOTICE] Now listening to 127.0.0.1:53 [UDP]
[2023-06-25 16:00:27] [NOTICE] Now listening to 127.0.0.1:53 [TCP]
[2023-06-25 16:00:58] [NOTICE] Source [public-resolvers] loaded
[2023-06-25 16:00:58] [NOTICE] Source [relays] loaded
[2023-06-25 16:00:58] [NOTICE] Firefox workaround initialized
[2023-06-25 16:00:58] [ERROR] Get "https://dns.cloudflare.com/dns-query?dns=yv4BAAABAAAAAAABAAACAAEAACkQAAAAAAAAFAAMABBOL4WZBHOnNN7WeUA1TuPn": x509: certificate is not valid for any names, but wanted to match dns.cloudflare.com
[2023-06-25 16:00:58] [NOTICE] dnscrypt-proxy is waiting for at least one server to be reachable```
temak
() автор топика
28 июля 2023 г.
Ответ на: комментарий от Pinkbyte

Попытался снова и теперь такой вывод:

[2023-07-28 21:22:03] [NOTICE] dnscrypt-proxy 2.1.4
[2023-07-28 21:22:03] [NOTICE] Network connectivity detected
[2023-07-28 21:22:03] [NOTICE] Now listening to 127.0.0.1:5353 [UDP]
[2023-07-28 21:22:03] [NOTICE] Now listening to 127.0.0.1:5353 [TCP]
[2023-07-28 21:22:04] [NOTICE] Source [public-resolvers] loaded
[2023-07-28 21:22:05] [NOTICE] Source [relays] loaded
[2023-07-28 21:22:05] [NOTICE] Firefox workaround initialized
[2023-07-28 21:22:05] [NOTICE] [dns.digitalsize.net] OK (DoH) - rtt: 76ms
...
[2023-07-28 21:23:26] [NOTICE] -   410ms publicarray-au2-doh
[2023-07-28 21:23:26] [NOTICE] -   446ms dnscrypt.ca-2-doh
[2023-07-28 21:23:26] [NOTICE] -  3061ms ibksturm
[2023-07-28 21:23:26] [NOTICE] Server with the lowest initial latency: nextdns-ultralow (rtt: 56ms)
[2023-07-28 21:23:26] [NOTICE] dnscrypt-proxy is ready - live servers: 70

Но не работает:

./dnscrypt-proxy -resolve duckduckgo.com
Resolving [duckduckgo.com] using 127.0.0.1 port 5353

Unable to resolve: [Timeout]
temak
() автор топика
Ответ на: комментарий от temak

У меня в работающем контейнере dnscrypt-proxy -resolve тоже не работает. Это видимо баг, так что - не показатель. Надо в tcpdump смотреть - если есть запросы к dnscrypt-резолверам, но нет ответов - значит режет провайдер

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 3)
Ответ на: комментарий от Pinkbyte

Почитал man ввёл команду sudo tcpdump tcp port 5353, чтобы сузить захват пакетов до порта 5353, но мне выводит:

tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on wlo1, link-type EN10MB (Ethernet), snapshot length 262144 bytes

Понимая, что пустота останется, закрываю:

^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel

Несколько раз запускал вместе с ./dnscrypt-proxy -resolve duckduckgo.com, но было одно и тоже.

Использование -v не помогло. Также вместо tcp port 5353 написал -nn port 5353, но безуспешно.

temak
() автор топика
Ответ на: комментарий от Pinkbyte
# This is /run/systemd/resolve/stub-resolv.conf managed by man:systemd-resolved(8).
# Do not edit.
#
# This file might be symlinked as /etc/resolv.conf. If you're looking at
# /etc/resolv.conf and seeing this text, you have followed the symlink.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "resolvectl status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs should typically not access this file directly, but only
# through the symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a
# different way, replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver 127.0.0.53
options edns0 trust-ad
search .
temak
() автор топика
Ответ на: комментарий от Pinkbyte

Настройки нужны в смысле? На арчевики прочитал, что настройки распознователя хранятся в файле /etc/systemd/resolved.conf, но в нём у меня всё по умолчанию:

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it under the
#  terms of the GNU Lesser General Public License as published by the Free
#  Software Foundation; either version 2.1 of the License, or (at your option)
#  any later version.
#
# Entries in this file show the compile time defaults. Local configuration
# should be created by either modifying this file, or by creating "drop-ins" in
# the resolved.conf.d/ subdirectory. The latter is generally recommended.
# Defaults can be restored by simply deleting this file and all drop-ins.
#
# Use 'systemd-analyze cat-config systemd/resolved.conf' to display the full config.
#
# See resolved.conf(5) for details.

[Resolve]
# Some examples of DNS servers which may be used for DNS= and FallbackDNS=:
# Cloudflare: 1.1.1.1#cloudflare-dns.com 1.0.0.1#cloudflare-dns.com 2606:4700:4700::1111#cloudflare-dns.com 2606:4700:4700::1001#cloudflare-dns.com
# Google:     8.8.8.8#dns.google 8.8.4.4#dns.google 2001:4860:4860::8888#dns.google 2001:4860:4860::8844#dns.google
# Quad9:      9.9.9.9#dns.quad9.net 149.112.112.112#dns.quad9.net 2620:fe::fe#dns.quad9.net 2620:fe::9#dns.quad9.net
#DNS=
#FallbackDNS=
#Domains=
#DNSSEC=no
#DNSOverTLS=no
#MulticastDNS=no
#LLMNR=no
#Cache=no-negative
#CacheFromLocalhost=no
#DNSStubListener=yes
#DNSStubListenerExtra=
#ReadEtcHosts=yes
#ResolveUnicastSingleLabel=no

Use ‘systemd-analyze cat-config systemd/resolved.conf’ to display the full config.

«Полный конфиг» такой же, как выше.

temak
() автор топика
Последнее исправление: temak (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte
Global
       Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub

Link 2 (wlo1)
    Current Scopes: DNS
         Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 192.168.0.1
       DNS Servers: 192.168.0.1

Link 3 (virbr0)
Current Scopes: none
     Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
temak
() автор топика
Ответ на: комментарий от temak

192.168.0.1 - это твой обычный DNS(на роутере к примеру), я правильно понимаю?

Если да - тогда делай следующее:

1) Убедись что в dnscrypt-proxy.toml установлено ignore_system_dns = true;
2) Переназначай DNS в resolved.conf на 127.0.0.1:5353(или где у тебя там слушает dnscrypt-proxy);
4) Запускай tcpdump и смотри куда идут запросы при выполнении команды nslookup.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 2)
Ответ на: комментарий от Pinkbyte

Записал в resolved.conf так: DNS=127.0.0.1:5353 и да, я проверил — dnscrypt-proxy слушает этот адрес.

Запускай tcpdump и смотри куда идут запросы

Они ни куда не идут.

nslookup
> 127.0.0.1:5353
;; communications error to 127.0.0.53#53: timed out
Server:         127.0.0.53
Address:        127.0.0.53#53

** server can't find 127.0.0.1:5353: NXDOMAIN
> 127.0.0.1:5353
;; communications error to 127.0.0.53#53: timed out
Server:         127.0.0.53
Address:        127.0.0.53#53

** server can't find 127.0.0.1:5353: NXDOMAIN
> 127.0.0.1:5353
;; communications error to 127.0.0.53#53: timed out
Server:         127.0.0.53
Address:        127.0.0.53#53

** server can't find 127.0.0.1:5353: NXDOMAIN
> duckduckgo.com
;; communications error to 127.0.0.53#53: timed out
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
Name:   duckduckgo.com
Address: 40.81.94.43
> 

всё вместе запускал (и команду dnscrypt-proxy и tcpdump tcp port 5353 -v и nslookup, но безуспешно). Правда, я не знаю, как это могло помочь.

Примечание: после перезагрузки также.

temak
() автор топика
Ответ на: комментарий от temak

nameserver 127.0.0.53

Оно же по дефолту висит на 127.0.2.1:53, плюс надо вписать актуальные/рабочие 'xxx', 'yyy' в server_names = [ 'xxx', 'yyy' ], когда-то было дело, что не всё работало

Запускаешь фоновую службу, а работоспособность через

nslookup google.com 127.0.2.1

Jurik_Phys ★★★★★
()
Последнее исправление: Jurik_Phys (всего исправлений: 1)
Ответ на: комментарий от temak

nslookup в интерактивном режиме настраивается не так:

pinkbyte@oas1 ~ $ nslookup
> server 127.0.0.1
Default server: 127.0.0.1
Address: 127.0.0.1#53
> set port=5353
> ya.ru
Server:         127.0.0.1
Address:        127.0.0.1#5353

Non-authoritative answer:
Name:   ya.ru
Address: 77.88.55.242
Name:   ya.ru
Address: 5.255.255.242
Name:   ya.ru
Address: 2a02:6b8::2:242
Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Что я сделал:

  1. Запустил команду tcpdump tcp port 5353 -v

  2. Запустил команду nslookup

Далее:

> server 127.0.0.1
Default server: 127.0.0.1
Address: 127.0.0.1#53
> set port=5353
> duckduckgo.com
;; communications error to 127.0.0.1#5353: timed out
;; communications error to 127.0.0.1#5353: timed out
;; communications error to 127.0.0.1#5353: timed out
;; no servers could be reached

;; no servers could be reached

Потому что dnscrypt-proxy выключен.

  1. Запустил dnscrypt-proxy и вывод уже другой:
> duckduckgo.com
;; communications error to 127.0.0.1#5353: timed out
Server:         127.0.0.1
Address:        127.0.0.1#5353

Non-authoritative answer:
Name:   duckduckgo.com
Address: 40.114.177.156

;; communications error to 127.0.0.1#5353: timed out

Видимо, не работает, tcpdump ничего не вывел. У dnscrypt-proxy так: dnscrypt-proxy is ready - live servers: 69

Примечание: все команды для удобства запускал во вкладке с макетом 2 к 1.

temak
() автор топика
Ответ на: комментарий от temak

Во-первых, ты пишешь в tcpdump запрос tcp port 5353. Системный резолвер по умолчанию работает по UDP - ты так в tcpdump ничего не увидишь, даже если запросы были. Потому что ты их отфильтровал.
Во-вторых, в шаге 3 ты ПОЛУЧИЛ ответ от запущенного на порту 5353 сервиса. Не с первого раза, но получил. Значит dnscrypt-proxy у тебя РАБОТАЕТ!

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Ты прав. Я пересмотрел видео и воспользовался командой tcpdump -tn udp -vv после чего пошёл вывод. Также, я узнал, что разрешение имён работает только при запущенном dnscrypt-proxy. Он уже в автозапуске, но шифрования нет: утечки dns всё равно есть! whoer.net видит используемые dns-сервера.

temak
() автор топика
Ответ на: комментарий от temak

Так режь файрволом 53 порт наружу, делов-то.

whoer.net видит используемые dns-сервера.

Провайдерские? Или те, что используются самим dnscrypt-ом под капотом на серверной стороне?

whoer.net в этом случае тоже пишет про утечку, по их мнению не утекает, только если ты их платным VPN-сервисом пользуешься :-)

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 3)
Ответ на: комментарий от Pinkbyte

Так режь файрволом 53 порт наружу, делов-то.

Мне сложно такое воспринять. Потом может подумаю…

Провайдерские?

Как провайдерские, так и dnscrypt’овские.

temak
() автор топика

Открываем:

/etc/systemd/resolved.conf

Вносим правки в строки «DNS» «DNSSEC» «DNSOverTLS». Я использую провайдера quad9, и потому правки имеют следующий вид:

DNS=9.9.9.9#dns.quad9.net 149.112.112.112#dns.quad9.net 2620:fe::fe#dns.quad9.net 2620:fe::9#dns.quad9.net
DNSSEC=yes
DNSOverTLS=yes
Далее, открываем настройки сетевого подключения, и указываем адрес dns

127.0.0.53

Осталось выполнить:

sudo systemctl restart systemd-resolved.service

Смотрим локальный интерфейс:

sudo tcpdump -tn udp -vv -i lo

tcpdump: listening on lo, link-type EN10MB (Ethernet), snapshot length 262144 bytes
IP (tos 0x0, ttl 64, id 12789, offset 0, flags [none], proto UDP (17), length 51)
    127.0.0.1.60559 > 127.0.0.53.53: [bad udp cksum 0xfe66 -> 0xb234!] 35214+ A? ya.ru. (23)
IP (tos 0x0, ttl 1, id 9852, offset 0, flags [DF], proto UDP (17), length 83)
    127.0.0.53.53 > 127.0.0.1.60559: [bad udp cksum 0xfe86 -> 0x6f65!] 35214 q: A? ya.ru. 2/0/0 ya.ru. A 77.88.55.242, ya.ru. A 5.255.255.242 (55)
IP (tos 0x0, ttl 64, id 44396, offset 0, flags [none], proto UDP (17), length 51)
    127.0.0.1.37892 > 127.0.0.53.53: [bad udp cksum 0xfe66 -> 0x2cca!] 19588+ AAAA? ya.ru. (23)
IP (tos 0x0, ttl 1, id 9853, offset 0, flags [DF], proto UDP (17), length 79)
    127.0.0.53.53 > 127.0.0.1.37892: [bad udp cksum 0xfe82 -> 0xd61b!] 19588 q: AAAA? ya.ru. 1/0/0 ya.ru. AAAA 2a02:6b8::2:242 (51)

Смотрим сетевой интерфейс подключенный к провайдеру

sudo tcpdump -tn udp -vv -i enp3s0

tcpdump: listening on enp3s0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel

Смотрим через wireshark

sudo wireshark

выбираем сетевой интерфейс для захвата, и смотрим, шифруется днс или нет, куда он идет.

whoer.net

Показывает что у меня польский dns «188.122.80.2343», пишет что тест утечки DNS не пройден. Мне нужно было зашифровать dns от локальных провайдеров, что я и сделал. А то, что мой dns может просматривать quad9 меня не волнует, пусть смотрят.

sfedosenko
()
Ответ на: комментарий от sfedosenko

Всё равно сервера от провайдера используются.

Смотрим сетевой интерфейс подключенный к провайдеру

sudo tcpdump -tn udp -vv -i enp3s0

Как раз таки со стороны «сетевого интерфейса подключенного к провайдеру» используется dns-сервер от провайдера, вне зависимости от общих настроек на всю систему или измённой строчки DNS-серверы (при выбранном «автоматически (только адреса)» или «локальный интерфейс»)

temak
() автор топика
27 января 2024 г.
Ответ на: комментарий от Pinkbyte

BusyBox v1.36.1 (2023-12-19 02:55:03 UTC) built-in shell (ash)


| |.—–.—–.—–.| | | |.—-.| |_ | - || _ | -| || | | || || | |_|| |_||||____||| || || W I R E L E S S F R E E D O M

OpenWrt 23.05.2, r23630-842932a63d

root@OpenWrt:~# logread | grep -n «using nameserver» root@OpenWrt:~# logread | grep «Proxying from» root@OpenWrt:~# nslookup www.themoviedb.org Server: 127.0.0.1 Address: 127.0.0.1:53

** server can’t find www.themoviedb.org: REFUSED

** server can’t find www.themoviedb.org: REFUSED

root@OpenWrt:~# $ ss -lp ‘sport = :domain’ -ash: $: not found root@OpenWrt:~# -lp ‘sport = :domain’ -ash: -lp: not found root@OpenWrt:~

a17919
()