我希望当客户端向 Bind9 请求无效(不存在)域名时,Bind9 会向客户端返回一个固定 IP。例如:客户端请求 doesnotexist.co 域。Bind9 搜索未找到此域,在这种情况下,Bind9 会向客户端返回一个固定 IP(又名 10.0.0.1),而不是 domain_does_not_exist。
答案1
如果服务器不是其所轮询区域的权威服务器,则它应该指向权威名称服务器或返回错误。伪装成 Internet 区域的权威服务器,即使是出于好意,也会带来安全风险。
正如您问题中的本地子网 IP 所示,在私有网络上执行此操作似乎会带来相当低的安全风险,但即使出于最好的意图,对手也可能利用这种通用重定向与加密漏洞相结合,或者例如今天与 Heartbleed 受损的 SSL 加密相结合,来捕获并重新传输通过 HTTPS 连接发送的敏感信息。
这就是 BIND9 和面向标准的服务器守护进程的魅力所在:它们促进我们所依赖的标准,并且已经对低级别的安全考虑进行了管理。
DNSSEC 签名区域在伪装 DNS 服务器(如您所建议的)上错误复制,可能会触发与此类服务器关联的公共 IP 地址和主机名的级联黑名单。根据您所在的司法管辖区,可能还会适用其他法律和监管限制。
如果你打算在封闭的私人网络上执行此操作,可以使用 BIND9 遵循提供商使用的方案备选 DNS 根区域但是,我必须再次强调,您所提议的做法是极不可取的,除非是在未连接到互联网的封闭网络中;然而,这反过来又引发了一个问题:在封闭的私有网络上重定向对互联网(即非私有)DNS 区域的请求是否具有非恶意用途。
2014-04-16 @EricoSchuh 提供了更多信息:
在公司环境中,重定向来自互联网外部的 404 请求的最佳方式通常是将内部网络与互联网隔离,然后通过一系列防火墙和代理设备提供互联网访问,这些设备通过客户端代理设置应用,例如在 Windows 环境中使用 GPO 或 PowerShell。在这种类型的环境中,系统管理员可以轻松重定向任何客户端请求,尤其是像您这种情况,重定向到网络内部的搜索页面。
下面的简化图来自信息安全 Stack Exchange 社区中的一个问题展示了具有代理服务器的 DMZ 的理想整体网络架构。
答案2
这在 bind 中是无法实现的(你可以创建一个“.”区域并在里面放入通配符,比如 *,。,。.* 等,但如果是递归名称服务器,则不起作用)。您可以使用DNSMasq。