同一 BIND 区域中的公共主机和私有主机

同一 BIND 区域中的公共主机和私有主机

对于我的特定设置,我控制了一个 BIND 9 区域文件,例如example.com。此区域中有多个主机,例如www.example.commail.example.com。我希望公共互联网能够查询这些主机并检索它们的 IP,正如您期望的那样。

是否可以将某些主机标记为“私有”,即大多数公共互联网用户无法查询有关这些主机的信息(特定 IP 范围的用户除外)?例如,我是否可以设置第三个主机,仅供secret.example.com该范围内的用户查询192.168.0.x

我知道我可以在 BIND 中使用单独的区域来实现这一点,但这似乎不能满足我的需求。这里的关键是,example.com在这种情况下,公共主机和私有主机都需要属于同一父级。这也可以通过少数私有机器上的文件来实现/etc/hosts,但这样记录就无法集中管理了。

这可能吗,还是我忽略了不同的解决方案?

答案1

是的,Bind 会这样做视图. 一些详细的例子是这里这里

在named.conf中它看起来像这样:

view "trusted" {
 match-clients { 192.168.23.0/24; }; // our network
  recursion yes;
  zone "example.com" {
   type master;
   // private zone file including local hosts
   file "internal/master.example.com";
  };
  // add required zones
 };
view "badguys" {
 match-clients {"any"; }; // all others hosts
 // recursion not supported
 recursion no;
 };
 zone "example.com" {
   type master;
   // public only hosts
   file "external/master.example.com";
  };
  // add required zones
 };

为了简化管理,我通常会使用的一个技巧是简单地将内部文件$INCLUDE外部文件——不要忘记 SOA。

最后要提醒的是,不要假装这只不过是“橡皮鸡安全”而已(并不是说这有什么不对)。

相关内容