OPNsense重定向DNS请求到本地DNS解析器

本文摘要如果不想让防火墙后面的客户端使用自定义或其他公共 DNS,可以设置规则,将所有对外部服务器的 DNS 请求重定向到本地 DNS 服务器。这不但有助于确保网络设备的正常功能,还可以应用 DNS 的阻止/过滤功能。创建端口转发规则进入 防火墙 > NAT > 端口转发 页面,单击 添加 按钮,进行以下设置:选项值接口IOT协议TCP/UDP目标/反转选中目标IOT net目标端口范围DNS...

如果不想让防火墙后面的客户端使用自定义或其他公共 DNS,可以设置规则,将所有对外部服务器的 DNS 请求重定向到本地 DNS 服务器。这不但有助于确保网络设备的正常功能,还可以应用 DNS 的阻止/过滤功能。

创建端口转发规则

进入 防火墙 > NAT > 端口转发 页面,单击 添加 按钮,进行以下设置:

选项
接口IOT
协议TCP/UDP
目标/反转选中
目标IOT net
目标端口范围DNS
重定向目标 IP127.0.0.1
重定向目标端口DNS
描述Redirect DNS requests to internal DNS resolver

NAT端口转发DNS重定向规则配置

  • 接口:需要定义本地网络接口。
  • 目标:为接口选择系统生成的网络地址。
  • 目标端口范围:选择 DNS,匹配 DNS 请求流量。
  • 重定向目标 IP:设置为 127.0.0.1 (localhost),使用 OPNsense 中的内部 Unbound DNS 服务。

关键设置:勾选 目标/反转 非常重要,这会使规则匹配来自 IOT 网络的任何流量,而不是用本地 IOT 接口/网关 IP 去解析 DNS 查询。这样所有接口地址的 DNS 查询都会被重定向到本地 Unbound DNS 解析器(127.0.0.1)。

单击 保存 并应用更改后,转到 防火墙 > 规则 > IOT 页面。将 DNS 重定向规则移动到列表顶部,确保其拥有更高优先级。

如果防火墙有多个内部接口,可以通过创建 来批量应用规则。

多接口配置

为将单条规则应用于多个接口,可创建防火墙组。组允许同时对多个接口分组,并在组上创建规则,且组规则的执行顺序优先于接口规则。

转到 防火墙 > 组 页面,单击 添加 按钮。

防火墙组页面

输入组 名称(例如 CommonDNS),并勾选所有需要重定向 DNS 请求的接口,然后单击 保存 创建组。

创建防火墙组

之后,像之前那样创建重定向规则,只是将接口和目标替换为组。进入 防火墙 > NAT > 端口转发 页面,单击 添加,输入以下值:

选项
接口CommonDNS
协议TCP/UDP
目标/反转选中
目标CommonDNS
目标端口范围DNS
重定向目标 IP127.0.0.1
重定向目标端口DNS
描述Redirect DNS requests to internal DNS resolver

转到 防火墙 > 规则 > CommonDNS 页面,可看到 NAT 端口转发的重定向规则已自动添加到规则列表中。

CommonDNS规则列表

测试重定向

可通过添加 DNS 覆盖来测试。DNS 覆盖能为指定域名设置不同的 IP 地址,包括互联网公共域名。

转到 服务 > Unbound DNS > 覆盖 页面,单击 添加 按钮。输入一个网络中未使用的知名域名(例如 yahoo.com),并选择一个随机的本地 IP 地址(例如 192.168.20.200)。

DNS覆盖添加

保存覆盖后,单击 应用 按钮。

应用DNS覆盖

在 Linux 上运行 host 命令进行 DNS 查找,可看到返回的是本地 IP 而非公共 IP:

$ host yahoo.com 8.8.8.8
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases: 

yahoo.com has address 192.168.20.200

在 Windows 下直接使用浏览器访问 yahoo.com,除非浏览器缓存,否则应无法正常访问。

结论

通过设定 DNS 重定向规则,可以将对外部 DNS 的请求重定向到配置的 Unbound DNS、Pi‑hole 或 AdGuardHome,甚至可以借助别名将 DNS 请求随机重定向到多个 IP 地址,从而提升外部网络访问的安全性。

原文参考:https://homenetworkguy.com/how-to/redirect-all-dns-requests-to-local-dns-resolver/

觉得内容不错?我要

评论 暂无评论
暂无评论,快来抢沙发吧~