为了确保更好地监控我的家庭网络(家长控制),我尝试使用 dnsmasq 设置 Raspberry Pi,并在 dnsmasq.conf 中添加了一些规则,基本上归结为以下内容:
address=/filtered.website/192.168.178.49
我设置了这个,只要我使用 192.168.178.### 范围之外的 IP 地址,一切就都正常了。我现在计划在这些网站上添加本地警告消息,这样不仅浏览器会显示错误,而且用户也会收到警告。
为了通过 Pi 处理所有 DNS 查询,我使用了 Fritz!Box 设置,并将主 DNS 服务器和辅助 DNS 服务器都设置为 Pi 的地址。除了解析到我的本地网络的域之外,其他一切都按预期解析。我的路由器只是试图“保护我”免受重定向到我本地网络的网站的影响,还是怎么回事?
感谢您的时间和帮助!
答案1
我想我已经找到了自己遇到的问题的解决方案:Fritz!Box 实际上试图保护您免受解析到您的家庭网络的域名的侵害。
出于安全原因,没有对私有 IP 地址进行 DNS 解析
如果互联网上的 DNS 服务器发出的 DNS 查询使用来自 FRITZ!Box 家庭网络的 IP 地址进行应答,则 FRITZ!Box 不会将此 DNS 回复转发给网络设备。这是 FRITZ!Box 的一项安全功能,可保护您免受所谓的“DNS 重新绑定攻击”
如果有人仍然知道如何解决这个问题或者禁用这个功能,我会很荣幸地向他们提供。
答案2
正如前面所说,这是一个安全功能。可以通过配置路由器来定义本地 IP 的例外情况。
配置 FRITZ!Box
- 切换到“高级视图”。
- 单击 FRITZ!Box 用户界面中的“家庭网络”。
- 单击“家庭网络”菜单中的“网络”。
- 单击“网络设置”选项卡。
- 在“域名例外”字段中输入不应应用 DNS 重新绑定保护的域名。如果您希望输入多个域名作为例外,请用换行符将域名彼此分开。
- 单击“应用”保存您的设置。
答案3
关键部分是“除了因此解析到我的本地网络的域名之外”。
我遇到了同样的问题并且已经解决了。
FritzBox 具有一个安全功能,您需要覆盖它。
您需要做的就是将您的域添加到例外列表中。按照以下链接中的说明进行操作。
您可能还需要更新固件才能显示该选项。
固件版本:84.05.51
亲切的问候
答案4
我看到您有两个选择。
选项 1-更改 fritzBox 上的 dnsmasq 选项
我没有 FritzBox,但如果像许多路由器一样它使用 dnsmasq,您通常可以使用与 DNS 重新绑定相关的 dnsmasq 选项之一,请参阅手册页,或者这里是重要部分:
--rebind-localhost-ok
免除 127.0.0.0/8 的重新绑定检查。此地址范围由实时黑洞服务器返回,因此阻止它可能会禁用这些服务。
--rebind-domain-ok=[<domain>]|[[/<domain>/[<domain>/]
不检测并阻止对这些域的查询进行 dns-rebind。参数可以是单个域,也可以是多个被“/”包围的域,如 --server 语法,例如 --rebind-domain-ok=/domain1/domain2/domain3/
您可以看到,该选项--rebind-localhost-ok
是为您想要创建的 DNS 黑洞而设计的。但是,您实际上不能使用此选项来回答除环回地址之外的其他问题。因此它可能不符合您的需求。
请注意,我不知道如果使用 FritzBox,您是否可以在某处覆盖 dnsmasq 选项。
选项 2 - 更改路由器上的 DHCP DNS 设置
如果您无法更改 FritzBox 上的 dnsmasq 参数,那么您还有另一种选择。在 FritzBox 上的 DHCP 设置中,将 DNS 条目设置为指向您的 Raspberry Pi。您目前拥有的是客户端向您的路由器请求 DHCP 地址,路由器使用 IP、网关(用于访问互联网的路由器 IP)和 DNS(我敢打赌又是路由器 IP)进行回复。现在,当您的客户端查询域名时,它会转发到您的路由器 DNS 转发器,后者将其转发到您的 Pi,然后返回。
如果您执行建议的更改,您的客户端将在 DHCP 事务期间直接从您的 Raspberry Pi 获取 DNS IP。所以你不会再收到重新绑定警告 :-)
PS: 还有一个名为的项目Pi-Hole这或许能对你有帮助。
PS2:编辑在检查了 Pi-Hole 项目之后,有人在问题中建议我使用选项 2 作为使用 Pi-Hole 和 FritzBox 的解决方案。https://github.com/pi-hole/pi-hole/issues/1271#issuecomment-282295061所以我猜选项 2是推荐的解决方案。