OPNsense配置DNS over TLS

OPNsense 是一款基于 FreeBSD 的开源路由和防火墙应用程序,它还可以作为所有移动设备和台式机的 DNS 解析器。但是,所有 DNS 查询都以纯文本形式传输。ISP或黑​​客可以通过UDP和TCP 协议53以纯文本形式拦截传输,从而破坏DNS 查询和响应。出于安全目的,有必要加密DNS的查询。DNS over TLS (DoT) 是一种利用传输层安全性 (TLS) 加密DNS流量的安全协议,也是最常见的DNS 安全解决方案之一。主要目的是增强个人的安全和隐私。DNS over TLS 的一些优点如下:

  • 防止 DNS 操纵。
  • 消除中间人攻击。
  • 防止间谍活动。
DNS over TLS

本教程将教您如何配置OPNsense DNS解析器来加密所有的DNS查询,以防止被监视并增强在线隐私和安全性。主要分以下三个步骤:

  • 在 OPNsense上启用DoT
  • 配置DNS和DHCP服务器
  • 验证DoT 配置

添加DoT

OPNSense 防火墙使用由 NLnet Labs 开发的 Unbound DNS 作为其默认 DNS 提供程序,该提供程序已预先安装并默认激活。Unbound DNS 是一款全面的 DNS 解析器,能够与互联网上的DNS 根服务器建立直接通信。Unbound DNS 提供验证、递归和缓存 DNS 功能,这些功能优于普通路由器中的标准 DNS 转发器。

要在OPNsense防火墙上配置和启用 DoT ,可以按照以下步骤操作:

  1. 导航到服务→Unbound DNS → DNS over TLS 。

    Unbound DNS: DNS over TLS settings
  2. 单击右下角添加按钮。

  3. 选中“启用”选项。

  4. 可以将域字段留空。默认情况下,将此字段留空会将所有查询定向到指定服务器。在此字段中输入域将导致将该特定域的查询定向到所选服务器。

  5. 输入DNS 服务器的IP 地址,来转发所有请求,例如8.8.8.8。

  6. 将服务器端口设置为Dot使用的853端口。

  7. 在“验证 CN”字段中输入 DNS 服务器的通用名称(例如 dns.google.com),以验证其 TLS 证书。除非可以确认证书的真实性,否则 DNS-over-TLS 容易受到中间人攻击。您可以将该字段留空以接受自签名证书,但这可能是欺诈性的。

    Adding DNS over TLS server
  8. 单击“保存”。

  9. 如果ISP支持IPv6,还可以添加 IPv6 DNS 服务器作为辅助 DNS 解析器。

  10. 单击“应用”来激活设置。

    DNS over TLS servers list on OPNsense

配置DNS和DHCP

为了强制网络上的所有客户端使用上面定义的 DoT 服务器,还必须正确配置 DNS 和 DHCP 服务器。可以按照以下步骤在 OPNsense 上配置 DNS 和 DHCP 服务:

  1. 导航至系统→设置→常规。

  2. 确保DNS 服务器的所有字段都为空。这样做是为了保证 DNS 流量重定向回防火墙。

  3. 取消允许WAN 上的 DHCP/PPP 覆盖 DNS 服务器列表选项。

    DNS servers settings on OPNsense
  4. 单击“保存”。

  5. 导航到服务→ ISC DHCPv4 → LAN。

  6. 确保DNS 服务器字段为空。必须使用系统默认的 DNS 服务器。

  7. 如果设置有更改,请单击保存,然后单击右上角的刷新按钮。

    DHCP server settings on OPNsense
提示:为了提供安全且经过验证的环境,建议在使用 DNS over TLS 时使用防火墙规则禁止端口 53 上的任何传出 DNS 流量。如果客户端选择自行直接查询其他DNS服务器,则可以使用 NAT 重定向规则将这些请求发送到 127.0.0.1:53,即本地 Unbound 服务。这将确保这些请求只通过 TLS 发送。

以下是国外常用的DoT服务器:

DNS提供商 服务器 IP 端口 验证CN
Google 8.8.8.8 853 dns.google
Google 8.8.4.4 853 dns.google
Google 2001:4860:4860::8888 853 dns.google
Google 2001:4860:4860::8844 853 dns.google
Cloudflare 1.1.1.1 853 cloudflare-dns.com
Cloudflare 1.0.0.1 853 cloudflare-dns.com
Cloudflare 2606:4700:4700::1111 853 cloudflare-dns.com
Cloudflare 2606:4700:4700::1001 853 cloudflare-dns.com
Cloudflare Security 1.1.1.2 853 security.cloudflare-dns.com
Cloudflare Security 1.0.0.2 853 security.cloudflare-dns.com
Cloudflare Security 2606:4700:4700::1112 853 security.cloudflare-dns.com
Cloudflare Security 2606:4700:4700::1002 853 security.cloudflare-dns.com
Cloudflare Family 1.1.1.3 853 family.cloudflare-dns.com
Cloudflare Family 1.0.0.3 853 family.cloudflare-dns.com
Cloudflare Family 2606:4700:4700::1113 853 family.cloudflare-dns.com
Cloudflare Family 2606:4700:4700::1003 853 family.cloudflare-dns.com
Quad9 9.9.9.9 853 dns.quad9.net
Quad9 149.112.112.112 853 dns.quad9.net
Quad9 2620:fe::fe 853 dns.quad9.net
Quad9 2620:fe::9 853 dns.quad9.net
AdGuard DNS 94.140.14.14 853 dns.adguard-dns.com
AdGuard DNS 94.140.15.15 853 dns.adguard-dns.com
AdGuard Family Protection DNS 94.140.14.15 853 family.adguard-dns.com
AdGuard Family Protection DNS 94.140.15.16 853 family.adguard-dns.com
CleanBrowsing DNS 185.228.168.168 853 family-filter-dns.cleanbrowsing.org
CleanBrowsing DNS 185.228.169.168 853 family-filter-dns.cleanbrowsing.org

验证DoT配置

可以通过 3 种不同的方式验证 OPNsense 上的 DoT 设置:

  1. 使用 tcpdump
  2. 查看未绑定的 DNS 日志
  3. 连接到 Cloudflare DoT 测试页面

1. 使用tcpdump

要验证 OPNsense 是否正在使用 DNS over TLS 进行查询,可以通过 OPNsense 命令行执行数据包捕获:

tcpdump -i vtnet0 port 853
应该看到类似以下内容的输出:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on vtnet0, link-type EN10MB (Ethernet), capture size 262144 bytes
12:11:49.725590 IP 192.168.0.31.61795 > dns.google.domain-s: Flags [P.], seq 462163878:462164030, ack 4235244077, win 519, options [nop,nop,TS val 2361809916 ecr 3152845993], length 152
12:11:49.756681 IP dns.google.domain-s > 192.168.0.31.61795: Flags [.], ack 152, win 1045, options [nop,nop,TS val 3152863341 ecr 2361809916], length 0
12:11:49.756697 IP 192.168.0.31.61795 > dns.google.domain-s: Flags [P.], seq 152:304, ack 1, win 519, options [nop,nop,TS val 2361809946 ecr 3152863341], length 152
12:11:49.787748 IP dns.google.domain-s > 192.168.0.31.61795: Flags [.], ack 304, win 1045, options [nop,nop,TS val 3152863373 ecr 2361809946], length 0
12:11:49.790739 IP dns.google.domain-s > 192.168.0.31.61795: Flags [P.], seq 1:493, ack 304, win 1045, options [nop,nop,TS val 3152863376 ecr 2361809946], length 492
12:11:49.790757 IP 192.168.0.31.61795 > dns.google.domain-s: Flags [.], ack 493, win 516, options [nop,nop,TS val 2361809986 ecr 3152863376], length 0
12:11:49.815496 IP dns.google.domain-s > 192.168.0.31.61795: Flags [P.], seq 493:985, ack 304, win 1045, options [nop,nop,TS val 3152863400 ecr 2361809946], length 492
12:11:49.815511 IP 192.168.0.31.61795 > dns.google.domain-s: Flags [.], ack 985, win 515, options [nop,nop,TS val 2361810006 ecr 3152863400], length 0

2. 查看Unbound DNS日志

此外,可以检查 Unbound DNS 日志以查看 DNS 查询是否通过端口853发送。可以按照以下步骤通过查看 Unbound DNS 日志来验证 OPNsense 上的 DoT 配置:

  1. 导航到服务→Unbound DNS →高级。

  2. 向下滚动到“日志设置”项。

  3. 启用日志查询选项。这将为每个查询打印一行到日志中,其中包含日志时间戳和 IP 地址、名称、类型和类别。

  4. 选择日志级别详细程度Level 2选项将提供详细的操作信息。

    Unbound DNS Logging Settings on OPNsense
  5. 单击页面底部的应用以激活设置。

  6. 导航到服务→Unbound DNS →日志文件。

  7. 在搜索框中输入853。应该会看到已配置 DNS 解析器的回复。

    Viewing Unbound DNS Logs on OPNsense

3.Cloudflare DoT测试页面

Cloudflare 在其https://1.1.1.1/help网站上提供了一个查询页面,允许 Cloudflare 用户验证他们当前使用的是 DNS over TLS (DoT) 还是 DNS over HTTPS (DoH)。如果使用的是 Cloudflare DoT 服务器,您可以连接测试网站,然后应该会看到类似于下面的页面。在调试信息表中,使用 DNS over TLS (DoT)选项应该是“Yes”

Cloudflare DoT Test Page

原文地址

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇