我有一个特殊情况,我为我的用户提供 subdomain.mycompany.com 的托管服务。子域名可以托管在我地理分布的任何服务器上,这些服务器都配置了自己的名称服务器。
为了正确解析 IP 地址,我创建了一个仅“转发”的名称服务器,它基本上充当了所有其他名称服务器的网关。有道理吗?
这是我的配置
options {
allow-query { any; };
dnssec-enable yes;
dnssec-validation yes;
auth-nxdomain no;
listen-on-v6 { any; };
recursion yes;
forwarders {
nameserver-loc1.ip;
nameserver-loc2.ip;
nameserver-loc3.ip;
nameserver-loc4.ip;
};
forward only;
}
我的问题是 - 我是否走对了方向(因为我是 BIND 服务器的新手)以及如何保护此配置以提高安全态势。
答案1
如果我正确理解了您的设置,听起来它似乎不会起作用。
首先,BIND 中的转发是递归的一种变体。也就是说,只有当RD
传入查询中设置了 (Recursion Desired) 位时,才会执行转发。如果有人拥有您的名称服务器(操作系统存根解析器确实设置了),但当某个域已委托给您的服务器并且某些递归器查询您的服务器时,
则会发生转发。resolv.conf
RD
RD
其次,NXDOMAIN
是有效响应,不会触发重试,因此如果使用的第一个转发器回答了NXDOMAIN
此问题,则对客户端的响应将是这样。但是,
实际错误(例如SERVFAIL
或缺少响应)也会导致它尝试下一个服务器。
至于安全性,据我所知,考虑到这似乎是一个根本不起作用的设置,这基本上不是一个问题。
但是,虽然您的设置允许从任何地方进行递归,这通常是灾难性的,但它设置为仅转发并列出您自己的可能仅具有权威性的名称服务器(如果它们确实允许递归,则坚持“灾难性糟糕”),您实际上可以获得答案的名称集是有限的,我想最终结果并不比普通的权威服务器更成问题。