如何检查DNS是否已加密?


14

我已经安装了DNSCrypt,它为Ubuntu和其他Linux用户提供了OpenDNS加密的DNS补丁,并且工作正常。

我怎么知道我的DNS是否已加密?我已经用谷歌搜索,但是什么也没找到。

状态

one@onezero:~$ status dnscrypt 
dnscrypt start/running, process 1013
one@onezero:~$ sudo netstat -atnlp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.2:53            0.0.0.0:*               LISTEN      1013/dnscrypt-proxy

更新

Wireshark

@阿尔瓦

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

没有DNSCrypt

在此处输入图片说明

Answers:


6

您可以Wireshark通过听网卡进行检查,只需执行以下步骤:

  1. sudo apt-get install wireshark (将其粘贴到终端中)
  2. 从终端启动它sudo wireshark(您需要sudo才能收听您的网卡。)
  3. 然后开始监听并过滤除您自己的IP之外的所有内容。

现在只需检查dns协议是否已加密。

  1. 使用过滤器仅显示 dns
  2. 停止扫描。
  3. 单击显示为dns且来自您的IP 的列表项。
  4. 现在,单击传输协议以查看其是否已加密。

@OneZero单击显示为dns的红色突出显示区域,在该区域中查找,您应该了解该区域是否已加密。
Alvar 2012年

3

如果您将OpenDNS用作支持dnscrypt的DNS服务器,请使用以下命令之一来检查其是否正常运行:

drill txt debug.opendns.com

dig txt debug.opendns.com

答案文本应在一行中显示“ dnscrypt enabled”:

;; ANSWER SECTION:
debug.opendns.com.  0   IN  TXT "server 11"
debug.opendns.com.  0   IN  TXT "flags 22 2 222 2"
debug.opendns.com.  0   IN  TXT "id 6666666"
debug.opendns.com.  0   IN  TXT "source 209.6.69.160:44444"
debug.opendns.com.  0   IN  TXT "dnscrypt enabled (...)"

drill需要package ldnsutils,虽然dig可以,但是nslookup -type=txt debug.opendns.com也可以。
Acumenus

1

我在Ubuntu 12.10上安装了dnscrypt 1.1。

我编辑/etc/NetworkManager/NetworkManager.conf以注释掉

dns=dnsmasq

然后添加/etc/init/dnscrypt.conf并包括以下内容:

 description "dnscrypt startup script"

 start on (local-filesystems and started dbus and stopped udevtrigger)
 stop on runlevel [016]

 script
         exec /usr/sbin/dnscrypt-proxy -a 127.0.0.1 -d
 end script

接下来,我将网络设置更改为对DNS使用127.0.0.1:

然后,我重新启动并确保dnscrypt正在运行,dnsmasq并且没有运行:

 ps aux | grep dns
 root      6581  0.0  0.0  16116   720 ?        Ss   04:47   0:00 /usr/sbin/dnscrypt-proxy -a 127.0.0.1 -d

然后我打开wireshark以确认DNS已加密:

看来不是。

访问http://www.opendns.com/welcome/验证我正在使用opendns。

]


0

好,我知道了!

运行dnscrypt-proxy --deamonize(它应该已经在运行)

  1. 转到顶部的“网络”图标,然后转到“网络设置”。
  2. 转到当前连接,然后单击“配置...”。
  3. 转到“ IPv4设置”选项卡。
  4. 在“ DNS服务器”和“搜索域”字段下,输入:127.0.0.1
  5. 前往http://opendns.com/welcome

如果您重定向到http://opendns.com/welcome/oops,则说明设置不正确。

对于那个很抱歉。我不想费心设置所有内容,但这非常简单!好吧,希望你学到了一些东西。我确定!


我可以检查查询已发送给哪个加密的DNS服务器吗?
一零

1
我真的不明白您的意思,在大多数家庭网络环境中最多只能发送两种可能性。最有可能在路由器或/etc/resolv.conf文件中进行设置。因此,每当您的计算机询问某事时,您的路由器都会询问这两个DNS服务器。没有其他人,因为它不认识其他任何人。如果您真的想知道,可以在计算机和路由器之间放置一台带有两个NIC和Wireshark的计算机。然后,您可以读取计算机上传输的数据包。但是,当然,您必须知道要查找的内容。
Chuck R

ty,好人,您应该在答案中包含这个细节
一零

戳!您看到我的最新答案了吗?
Chuck R

是的,我做到了,如果您使用upstart脚本作为im的话,它是127.0.0.2,请参阅w8帮助,已经检查了开放的dns,在加密和未加密的情况下均是如此
一零

0

dnscrypt-proxy接受DNS请求,使用dnscrypt  * 对其进行加密和签名,  然后将其转发到启用了dnscrypt的远程解析器

来自解析程序的答复也应进行加密和签名。

代理验证答复的签名,解密它们,然后透明地转发给本地存根解析器。

dnscrypt-proxy默认情况下侦听127.0.0.1 /端口53。


-1

转到“ OpenDNS欢迎”页面,您应该看到类似“欢迎使用OpenDNS!由于使用的是OpenDNS,因此您的Internet更安全,更快,更智能”。你使用这意味着作为您的DNS提供商OpenDNS和如果你还没有dnscrypt OpenDNS的配置你的DNS请求应该被加密。

另一种方法是使用wireshark,tcpdump等监听DNS流量,并查看它是否确实已加密,但是更加复杂,并且需要一些深入的知识。


opendns.com/welcome >是的,我之前还没来过关于open-dns dns的问题,让我在笔记本电脑上验证了一个没有加密的密码
一零

与此处显示的相同
1零

OpenDNS不是唯一启用DNScrypt的提供商。sudo dnscrypt-proxy --daemon -a 127.0.0.2 --resolver-address=23.226.227.93:443 --provider-name=2.dnscrypt-cert.okturtles.com --provider-key=1D85:3953:E34F:AFD0:05F9:4C6F:D1CC:E635:D411:9904:0D48:D19A:5D35:0B6A:7C81:73CB是许多不使用OpenDNS的网站之一。
mchid 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.