10.3使用DNS与防火墙 当DNS和防火墙一起使用,或通过防火墙使用DNS时,必须先考虑两件事:节点或企业的安全政策以及将使用的防火墙的类型。首先必须考虑安全政策,以决定哪些流量允许通过防火墙。而防火墙的类型将决定数据在专用网络、DMZ以及Internet之间将如何处理。 防火墙可以有若干功能,包括分组过滤、代理、状态检测和告警等。状态检测是检查存储进、出防火墙的分组信息以决定会话状态的机制。这个状态将由检测机制来决定是否允许此分组通过防火墙。 将身份验证、加密和高度的审核组合在一起就可以提供若干强有力的安全工具。许多防火墙解决方案可直接支持DNS;或者提供模板来进行设置,使得域名服务的请求可以从一边通过到另一边。对于要设计节点的安全政策的管理员来说,至少可以有两种考虑: 使所有资源都可以访问,但要做好备份。 对每台机器的访问都是有限制的,只允许对你的网络最需要的流量通过。 在第一种方案中,甚至在作为到Internet的网关的路由器都不使用过滤器。而第二种方案,只允许某些端口、协议,以及一些指定名字的机器,而这些在同一网络上的机器还要进一步互相防卫。只允许特定机器访问是一个很重要的特征。 为了保护这些机器,至少需要对每台机器设置不同的管理员帐户和不同的口令。这样做的目的是为了使这些机器尽可能互相独立,万一黑客侵入了一台机器,他也不能用同样的帐户和口令侵入域区的其他系统。作为类比,就像在一个军用飞机场应将飞机和燃料分散存放,以减少万一其中一个目标发生事故所造成的损失。对不同的机器设置不同的帐户就不容易同时被非法侵入许多机器。这些机器间的信任关系如果不是完全去掉的话,至少也受到严重的限制。这意味着防御带在活动目录森林的外面,这样做的结果是限制了对合法用户的友好性。记住,如果是一台可信任的机器,则可用来检查该组并注册信任域的结构。 防火墙可以有多种设置,DNS也可以有相应的多种处理方法。关键是要注意两件事,其一是要使外部世界可以访问一台授权域名服务器,以便从本地解析可公用的主机;其二是内部的主机应能访问外部域名服务器(通过某种机制,如前向服务器或代理服务器)以便查找其他的域的主机。 对域名服务器的最好保护措施是定期地备份域区和配置信息,而且应确保这些备份信息在需要恢复文件时立即可用。将一个域对外界隐藏起来当然是一种很好的保护措施,但对于想访问外部世界的网络内部用户却不方便。 备份域区信息的一种方法是指定一个备份DNS服务器,在主服务器上把它作为一个合法的辅服务器,主服务器上的每一个域区都能快速映射到辅服务器上。可以把这种方法用于负载量很大的主服务器上,以减少备份时间,而且,在一些UNIX的解决方案中,该技术可从辅服务器中重新注入这些域区,而不用移动文件等。 可以设置一个域,使得其主域名服务器在防火墙以内(可保证安全),而将辅服务器设置在防火墙以外,以处理外部主机的查找。如果管理员不在乎让外部世界看到整个域,这将是一种很好的安排。于是就有拆分式DNS的概念,即有两个域的版本,一个为外部使用,而另一个为企业内部使用。这样就可以更进一步而且可以更实际地运行两套DNS服务器,其中公共查找辅服务器设置在外部网络上,记得仔细检查一遍这些辅服务器的配置以确定可移动的风险因素,如不合法的Telnet,或掌握域区传送的能力。 对今天的大多数企业来说,它的网络上的用户至少要通过Internet访问Web节点和使用电子邮件。凡在这种情况下,将域隐藏起来不是一个很好的解决方案。如果出自安全性的考虑,管理员要限制外界对域的访问,则通过拆分式DNS或者其他限制对外公开主机的方法也许是最好的解决方案。第9章描述了拆分式DNS及其设置。 传统的拆分式DNS需要两台主服务器:一台在防火墙内,另一台在防火墙外。防火墙外的外部主域名服务器的域区文件只有少量的条目,一般只有域的MX记录、关于WWW和FTP服务器的记录。另外,这些条目取决于防火墙的类型,有些条目是为了在由防火墙内部用户建立的会话过程中供外部主机用来进行反向查找的。 有些防火墙使用地址翻译来重新分配已确定的IP地址列表。为了使这些IP地址在有些过程中可以使用,还需要将它们反向映射为有效的主机名。这些主机名只能由外部域名服务器来处理,而不能被内部域名服务器所解析。内部主域名服务器将包含域中每个主机的条目(包括外部主机)。内部DNS将设置为转接到外部DNS,也就是从属于外部DNS。外部转发器可以是外部公共DNS服务器,或者是企业专门用来作为转发器的服务器,这些取决于能力、预算、安全性的外延及安全政策。 其结果是当域名服务器不能回答客户机的查询时,就将查询转到外部域名服务器。因为内部域名服务器设置为外部域名服务器的从属服务器,因此内部服务器自己将不进行查询的解析,而是等待外部服务器来提供答案。如防火墙设置为只允许域名服务器查询在这些主机之间传送,则可以防止外部主机的查询到达内部域名服务器。需要考虑的是内部转发机器是一个完全从属的缓存还是包含有内部域区数据,如果没有内部信息、没有客户,只有其他的DNS服务器,则可直接使用它,如果有内部域区数据,则应包含所有内部域区数据,仅从属于Internet名。转发机器应转发它不能提供权威回答的所有查询,甚至可以提供参考另一个内部DNS服务器。因此,它应该包含完整的域区文件,这也导致了希望把它放在一个更安全的地方,而且,预算、网络大小和负载、关心的程度也都将限制对方案的选择,记住转发功能作为检查点也是设计中的瓶颈。 因为此时的内部和外部域名服务器都是主服务器,所以也没有域区传送需要通过防火墙。这种安排的困难在于管理员必须分别维护两组域区文件,若是防火墙两边还有辅服务器,维护工作量将加大。这也可能出现人为错误和混乱命名导致名字冲突,因为内部域和外部域看起来是相同的。如使用不同的内部和外部域名,则仅需做一个小小的变动就可解决这个问题,但对将来名字空间的发展有了一定的限制。 设置可以通过防火墙工作的DNS服务器的关键步骤是: 1)建立内部主DNS服务器和辅服务器。 2)建立外部主DNS服务器和辅服务器。 3)决定域中哪些主机要对外。 4)决定外部客户将如何解析外部分和如何配置内部服务器来提供这些功能。 5)使得只有对指定主机的域名服务才能通过防火墙。 6)对设计进行测试,确保其工作和预期的相同。 最后一步的目的是很清楚的。一定要确保设计能正常工作,特别是从外部节点来测试,以确定是否只有管理员允许公布的信息才可使用。同样,也要从内部来确定防火墙是否已适当地设置,以及防火墙内部的用户是否能解析外部域。外部域的大规模解析对容量和可靠性的要求可能需要提供并行路径。 一种DNS通过防火墙的很好的配置方法是在防火墙或DMZ内部有一个主服务器存放外部名字空间,在其外部有一个辅服务器。就全世界来说,外部服务器可以是主服务器,因为区别仅在于何时考虑谁拥有主域区文件。可以在内部服务器上执行所有的维护操作,而外部服务器将按所要求更新域区,这样可能需要运行三个服务器,但这样肯定比允许从外部访问主服务器更安全。而且,如果域区被毁坏,还可以在内部控制主服务器域区。如果想使用这种技术,要确保防火墙仅用于辅服务器到主服务器的通信(反之亦然)。有些专家还建议,为了确保更安全,要用没有用过的高端口进行通信而不是标准DNS的53端口。这仅涉及到有关DNS设计的一些可选方案和一些防火墙产品的特点。这是一个很大的主题而且附加的资源可直接用于防火墙类型和能力,在应用中可作为参考。 10.4服务通告 windows 团体已意识到并且承认在进出一个园区网络时过滤NetBIOS端口是一个很好的预防措施。主要考虑的问题与大部分DNS管理员看到的原因相似,那就是没有必要让每个人都有能力接收域区传送。知识就是力量,至少在这种情况下,它可以映射出可以在哪里获得权力。从DNS域区文件中得到的信息与以前从WINS数据库中得到的信息有质的不同,两者都给节点上的机器和公司在结构的某些方面提供了一个相当好的映射。但NetBIOS名字可附有一些信息,比如在不同的机器上正在运行何种类型的服务,哪一台为域控制器,哪一台主管Web服务,哪一台主管数据库等,这甚至是给了每个人更大的“权力”。 随着使用SRV记录的引入,DNS数据如果不能超过,也至少在能力上等价于NetBIOS,提供通告服务以使其他主机定位。这是有关在域定位服务的帮助下windows 2000 可提供的多个方面的功能(理解windows 2000 SRV记录的结构) SRV记录不使用传统的用法,也不使用NetBIOS名字空间。困难在于通告增加了系统管理员的负担,管理员不得不进一步加强对机器的管理。安全性是通过附加的努力而获得的,有时它是由不需要大家都知道的模糊的东西来提高的。尽量隐藏并不是真正的安全,但进一步加强是很困难的。底线是如果该SRV记录并不需要公布于众,那就不要公布,这将导致双向名和拆分设计,然而这是因为外部世界已被隔离,而内部网络仍在使用这些信息。 LDAP与DNS没有直接的关系,但是对于名字空间,LDAP的收集有关windows 机器(无论它是对NT4.0的升级或windows 2000 机器)的配置,它的服务、小组、帐号等信息的能力也是不应忽略的。活动目录及其目录服务建立在LDAP之上,活动目录设计的目标包括帮助一个合法用户发现和访问资源。这种可访问性本身并不坏,问题在于什么是“合法用户”。实现方法从加强直到隐藏,在其中有很多结合。 10.5动态DNS 安全性总是在提供的能力与希望封锁的程度之间的一种平衡,DNS中的动态更新能力为抢劫名字提供了前所未有的机会。反过来,它可以促成欺骗和中间人产生,以及一般恶意的毁坏性攻击。这不是它不得不怎么样的问题,而是它能怎么样的问题。随着工业DNS提供者使用这种技术
[1] [2]
(出处:http://www.sheup.com)
[1] [2]