我正在为网络设计 DNS 服务,遇到了一些架构问题。O'Reilly/Cricket Liu DNS 书和NIST DNS 安全指南除了以非常笼统的方式,不要回答这些问题。
这是建议的网络,它具有内部(RFC 1918 空间)和 DMZ 段(具有多个服务器,而不仅仅是 DNS 服务器),以及外部 colo 上的邮件和 www 服务器。DNS 服务器是蓝色框:
以下是要求:
- DNSSEC 支持
- 在内部网络上,委托给 RFC 1918 空间中的内部区域
- 分离权威服务器和递归服务器
- 隐藏主服务器(又称隐藏主服务器)允许区域传输到从服务器,但不解析任何请求
- 所有名称服务器均以 chroot 方式运行(FreeBSD 上 Bind 的默认设置)
以下是我的问题:
这个设计有什么明显的缺陷吗?
这里是否有缺失或者多余的元素?
可以在与内部从属服务器相同的子网中运行隐藏主服务器吗?
鉴于内部和 DMZ 网络上的 DNS 流量相对较小(< 1 Mbps),在权威服务器上的 jails(BSD 术语为 VM)中运行仅缓存服务器是否存在安全问题?还是应该将它们放在专用机器上?
提前致谢!
答案1
以下是我的问题:
1)有什么明显地对这个设计感到失望吗?
没有什么是明显地错了……至少我看得出来。
2)这里是否有任何缺失或者多余的元素?
丢失的:您是否愿意为您的隐藏主服务器设置热备份?该系统似乎经过精心设计(我不想在没有看到您的用例的情况下称其为过度设计),以依赖单个主要主机。这超出了您的图表范围,但您是否有应急计划以应对 [不是如果] 主主机爆炸了?
无关:请记住,您添加到组合中的每个 DNS 服务器都是必须管理的另一台服务器。考虑到您的使用情况,拥有这么多 DNS 服务器是否至关重要?
3)可以在与内部从属服务器相同的子网内运行隐藏主服务器吗?
我希望隐藏的主服务器和权威 DNS 从服务器位于 dmz 中。适当锁定主服务器。内部从服务器是回答来自互联网的权威查询是否正确?如果内部从属服务器仅回答来自内部主机的查询,则您需要巨大的区域,一个愚蠢的内部区域的内部查找次数(考虑在主机/工作站级别缓存 DNS 服务器),或者您为内部 DNS 赋予了过多的马力。如果它们正在回答来自互联网的查询,我预计它们位于 DMZ 中。您可以随意为它们添加标签。
至于主服务器与从服务器位于同一子网 - 将其锁定。这应该不是问题(并且会为您节省区域传输时间的一些路由开销)。
4) 鉴于内部和 DMZ 网络上的 DNS 流量相对较小(< 1 Mbps),在权威服务器上的监狱(BSD 术语为虚拟机)中运行仅缓存服务器是否存在安全问题?还是应该将它们放在专用机器上?
是的。总是存在安全问题。如果内部缓存服务器被锁定为仅接受来自内部来源的流量,它们将被关进监狱,可能处于 BSD 环境中,并定期更新和监控……黑客需要做很多工作才能利用该环境。
您最大的风险(见:不是作为一名专业风险分析师,黑客很有可能会奇迹般地劫持您的一个权威 DNS 从属服务器。这可能会导致部分损坏,或者如果攻击者真的很聪明,可能会造成一些“中毒”和信息盗窃(请参阅:SSL/TLS 以阻止这种情况)。
下一个最大的(见:不是一名专业风险分析师)认为从属操作系统损坏需要重新安装/恢复。
最终:
这是一个相当可靠的设计,如果不了解网络(您不需要向我们提供),很难发现设计中的缺点/缺陷。唯一明显突出的是:这里有很多零件、复杂的设置和大量的工程……确保它有业务。
例如:您可以将 Bind9 作为权威从属服务器运行,它在一个守护进程中执行递归/转发查找和缓存。(并保存多宿主/端口转发/其他网络魔法以使两个 DNS 守护进程在同一个盒子上应答)。