对于我的特定设置,我已经控制了example.com
的BIND 9区域文件。 该区域中有多个主机,例如www.example.com
和mail.example.com
。 我希望公共互联网能够查询这些主机,并像您期望的那样检索他们的IP。
一些主机是否可以被标记为“私有”,即大多数公共互联网用户不能查询这些主机的信息,除了特定的IP范围的用户? 例如,我可以创build第三个主机secret.example.com
只能由192.168.0.x
范围内的用户查询吗?
我知道我可以用BIND中的独立区域来做到这一点,但是这似乎并不能提供我所需要的。 这里的关键是公共和私有主机都需要成为同一个父节点的一部分, example.com
。 这也可以通过less数几个机器上的/etc/hosts
文件来实现,但是这些logging不能集中pipe理。
这是可能的,还是我忽略了一个不同的解决scheme?
是的,绑定这样做的意见 。 一些详细的例子是在这里和这里 。
在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 };
我通常做的一个简单的pipe理方法就是简单地把内部文件$ INCLUDE放在外部文件中 – 不要忘记SOA。
最后要说的是,不要假装这只不过是橡皮鸡安全(不是说有什么不妥)。