我一直在努力通过以下设置在我的系统上全面使用 DNSSEC:
dnscrypt-proxy
在 127.0.0.1 上安装、启动并运行require_dnssec = true
- systemd-resolved running, with
DNSSEC=yes
andDNS=127.0.0.1
- 只
nameserver 127.0.0.1
在/etc/resolv.conf
- 通过 NetworkManager 连接到我知道的 WiFi 网络 DHCP 配置将 8.8.8.8 和 8.8.8.4 设置为 DNS 服务器
/run/systemd/resolve/resolv.conf
在 127.0.0.1 下列出 8.8.8.8 和 8.8.8.4。
resolvectl status
节目
DNSSEC setting: yes
DNSSEC supported: yes
Current DNS Server: 127.0.0.1
DNS Servers: 127.0.0.1
在全局部分,但是
DNSSEC setting: yes
DNSSEC supported: yes
Current DNS Server: 8.8.8.8
DNS Servers: 8.8.8.8
8.8.8.4
在我的界面部分(为什么?)。
tcpdump
使用 Web 浏览器、挖掘或其他正常使用时,在 udp:53 上根本没有任何活动。这意味着我的本地 dnscrypt-proxy 正在处理我系统上的所有 DNS 请求。我还假设由于上面提到的配置设置,我会一路走 DNSSEC。
但是,该期刊不时包含以下行:
Nov 30 09:10:41 tuxifaif systemd-resolved[179937]: DNSSEC validation failed for question v.dropbox.com IN SOA: failed-auxiliary
Nov 30 09:10:41 tuxifaif systemd-resolved[179937]: DNSSEC validation failed for question bolt.v.dropbox.com IN DS: failed-auxiliary
Nov 30 09:10:41 tuxifaif systemd-resolved[179937]: DNSSEC validation failed for question bolt.v.dropbox.com IN SOA: failed-auxiliary
Nov 30 09:10:41 tuxifaif systemd-resolved[179937]: DNSSEC validation failed for question bolt.v.dropbox.com IN A: failed-auxiliary
Nov 30 09:10:43 tuxifaif systemd-resolved[179937]: DNSSEC validation failed for question v.dropbox.com IN SOA: failed-auxiliary
Nov 30 09:10:43 tuxifaif systemd-resolved[179937]: DNSSEC validation failed for question d.v.dropbox.com IN A: failed-auxiliary
Nov 30 09:10:43 tuxifaif systemd-resolved[179937]: DNSSEC validation failed for question v.dropbox.com IN SOA: failed-auxiliary
Nov 30 09:10:43 tuxifaif systemd-resolved[179937]: DNSSEC validation failed for question d.v.dropbox.com IN A: failed-auxiliary
Nov 30 09:10:43 tuxifaif systemd-resolved[179937]: DNSSEC validation failed for question d2e801s7grwbqs.cloudfront.net IN SOA: failed-auxiliary
Nov 30 09:10:43 tuxifaif systemd-resolved[179937]: DNSSEC validation failed for question d2e801s7grwbqs.cloudfront.net IN A: failed-auxiliary
resolvectl query v.dropbox.com
导致相同的 DNSSEC 验证错误dig v.dropbox.com
工作得很好dig v.dropbox.com @8.8.8.8
也可以正常工作(当然会产生两行输出tcpdump
)
我还检查了https://dnsleaktest.com,它告诉我很多 172.253.xx 服务器正在接收解析我在网络浏览器中输入的域名的请求。这些 IP 似乎归 Google 所有。
那么这是什么意思?该系统上是否正在进行任何(非 DNSSEC)查询?
任何见解表示赞赏!
如果两者都使用
dnscrypt-proxy
和,则不应如此。您需要按照dnscrypt-proxy wiki的建议禁用,并锁定网络管理器可能进行的更改。所以,这里是步骤:systemd-resolved
127.0.0.1:53
systemd-resolved
/etc/resolv.conf
systemd-resolved
:检查是否有其他东西使用与:相同的
address:port
对。如果有,请禁用它们。dnscrypt-proxy
sudo ss -lp 'sport = :domain'
如果
dnscrypt-proxy
正在侦听127.0.0.1:53
并且resolv.conf
有,请在条目下方nameserver 127.0.0.1
添加(启用 DNS 安全扩展所必需的) ,使其看起来像:options edns0
nameserver
resolv.conf
/etc/resolv.conf
文件以进行更改:sudo chattr +i /etc/resolv.conf
.dnscrypt-proxy
.总的来说,关键是要确保:
dnscrypt-proxy
在使用127.0.0.1:53
resolv.conf
具有相同的地址dnscrypt-proxy
resolv.conf
受到其他软件(例如您的网络管理器)所做更改的保护。此外,dnsleak 测试显示 Google IP 并不意味着 dns 解析器服务由 Google 运营。服务器可能归 Google 所有,但由另一个实体运营。如果您不想要它,您可以从dnscrypt-proxy public resolvers list中选择不同的解析器。确保
dnssec
为所选解析程序提供支持。我个人使用 dnscrypt.eu 解析器,它们是无日志、无过滤器、非谷歌和启用 dnssec 的。参考: