假设您要创建一个指向私有位置的子域(可能是数据库的位置,或者您不希望人们尝试SSH进入的计算机的IP地址),那么您添加一个名为某个东西的DNS记录像这样:
@H_301_2@private-AGhR9xJPF4.example.com
除了那些知道suboman的确切URI的人之外,这对每个人都是“隐藏的”吗?或者,是否有某种方法可以“列出”特定域名的所有已注册子域名?
解决方法
DNS存在某种“子域名列表”查询吗?
>非增量区域传输(AXFR).大多数服务器操作符将区域传输锁定到特定的IP地址,以防止非关联方窥探.
>如果启用DNSSEC,则迭代NSEC请求可用于walk the zone.实施NSEC3以使区域行走更加计算密集.
还有一个技巧可以让别人知道是否存在任意子域.
@H_301_2@example.com. IN A 198.51.100.1 www.sub.example.com. IN A 198.51.100.2在上面的例子中,www位于sub中.对sub.example.com IN A的查询不会返回ANSWER部分,但结果代码将是NOERROR而不是NXDOMAIN,从而在树的下方隐藏记录的存在. (只是没有命名那些记录)
是否应依赖DNS记录的保密性?
否.从客户端可靠地隐藏数据的唯一方法是确保它永远不会从数据开始.假设您的DNS记录的存在将通过口口相传或通过观察数据包传播给有权访问它们的人.
如果您试图隐藏可路由的DNS客户端中的记录,那么您就是在做错了.确保数据仅暴露于需要它的环境. (即使用专用IP的私有路由域)即使你设置了这样的部门,也要假设IP地址的知识无论如何都要传播.
对安全性的关注应该是当有人获得IP地址时会发生什么,因为它会发生.
我知道IP地址保密的原因列表可能会进一步扩展. IP扫描,社交工程……列表是无穷无尽的,我主要关注这个问题的DNS协议方面.在一天结束时,这一切都属于同一个保护伞:有人会得到你的IP地址.