使用Windows Server 2008 R2 DNSSEC保护DNS连接

  随着即将到来Ipv6混乱时代通过DNS名称访问计算机将比以往任何时候都更加重要在过去Ipv4时代大家都发现运用IP网号点分 4组机制能够很容易记住Ipv4地址然而Ipv6地址空间如此的大十 6进制格式如此的复杂每个Ipv6地址都有128位这是Ipv4地址长度 4倍常人完全不可能记住这么长IP地址虽然更大地址空间是为了满足不断增加计算机需求但这也让我们更难以记住地址

  问题:DNS数据库不安全性

  这样造成结果肯定是我们将越来越依赖于DNS因此我们需要找到种思路方法来确保DNS数据库内数据总是准确而可靠而其中最有效途径就是确保DNS数据库安全性众所周知DNS直属于相对不安全系统

  由于这种不安全本质DNS很容易成为攻击目标DNS服务器曾遭遇过劫持攻击(将DNS域名解析重定向至流氓DNS服务器)、DNS记录欺骗以及DNS缓存Cache中毒让用户相信他们正在连接到合法网站WebSite而实际上是连接到包含恶意内容网站WebSite或者网址嫁接(pharming)获取用户信息网址嫁接和网络钓鱼攻击类似 2者区别在于网络钓鱼攻击是通过诱使用户点击电子邮件中链接来登录到恶意网址而网址嫁接则更加高明用户在浏览器输入合法网站WebSite正确网址然而被更改DNS记录则会将合法网址重定向至假网络嫁接网址

  解决方案: Windows Server 2008 R2 DNSSEC

  你可以在局域网使用Windows Server 2008 R2 DNSSEC来保护DNS环境DNSSEC是能够提高DNS协议安全性扩展集这些扩展向DNS添加权限、数据完整性和认证否定存在该解决方案还可以向DNS添加几条新记录包括DNSKEY、RRSIGN、NSEC和 DS

  DNSSEC如何运作

  DNSSEC作用在于可以对DNS数据库中所有数据都做标记采用思路方法和其他数据签名电子通信类似例如电子邮件当DNS客户端向 DNS服务器发出个请求时DNS服务器会返回请求数据数字签名然后拥有DNS数据签名CA公钥客户端就能够解密哈希数值(签名)然后验证响应为了实现这个过程DNS客户端和服务器都要配置为使用相同信任锚(trust anchor)信任锚是和特定DNS区域相关预先设定公钥

  DNS数据库签名适用于基于文件(非Active Directory集成)和Active Directory集成区域签名复制则可以用于这些区域授权其他DNS服务器

  Windows 2008 R2 和Windows 7 DNS客户端都默认配置为存根解析器这种情况下DNS客户端将允许DNS服务器代表客户端执行验证但是DNS客户端能够接收从DNSSEC启用 DNS服务器返回DNSSEC响应DNS客户端本身被配置为使用名称解析策略表(NRPT)来确定应该如何和DNS联系例如如果NRPT指明 DNS客户端需要确保DNS客户端和服务器间连接安全那么就可以对请求执行证书验证如果安全验证失败就介绍说明域名解析过程中存在信任问题并且域名查询请求也将失败在默认情况下当客户端向发出请求返回DNS查询响应时只有当DNS服务器验证信息后才会返回该信息

  确保结果有效性

  主要有两种思路方法来确保DNS请求结果有效性首先你需要确保DNS客户端连接DNS服务器确实是DNS客户端应当连接DNS服务器而不是攻击者部署DNS服务器Ipsec是用于验证DNS服务器有效方式DNSSEC使用SSL来确保连接安全性DNS服务器通过可信任方(例如私人PKI)签名证书来验证其本身

  请记住如果你部署了执行Ipsec服务器和域隔离那么你必须将TCP和UDP端口53从政策中分离否则Ipsec政策将不会被用于基于证书验证这会导致客户端无法通过DNS服务器证书验证安全连接也无法建立

  签名区域

  DNSSEC同样对区域签名使用是dnscmd.exe工具离线签名结果会生成签名区域文件该签名区域文件包含RRSIG、 DNSKEY、DNS和NSEC资源数据记录如果区域被签名该区域还必须使用dnscmd.exe工具或者DNS管理器控制台进行重新加载

  对区域签名个限制是动态更新将被禁用Windows Server 2008 R2仅限DNSSEC用于静态区域只要区域发生任何变化每次都必须重新签名这可能会严重影响DNSSEC在很多环境应用

  信任锚作用

  DNSKEY资源记录用于支持信任锚验证DNS服务器必须包括至少个信任锚信任锚同样适用于签名区域如果DNS服务器承载几个区域那么必须使用多个信任锚

  只要区域中部署了信任锚DNSSEC就能使DNS服务器为客户端请求中名称执行验证客户端不需要知道这种DNSSEC验证所以不清楚DNSSEC验证客户端能够继续使用这个DNS服务器来解析局域网中名称

  NSEC和NSEC3

  NSEC和NSEC3是可以用于为DNS记录提供认证否定存在有效思路方法NSEC3是原来NSEC升级版允许我们防止“区域走动”即防止攻击者重新获取DNS区域所有名称这是攻击者用于侦察网络有力工具这种功能在Windows Server 2008 R2中不支持仅支持NSEC

  以下是对NSEC3有限支持:

  Windows Server 2008 R2可以承载有NSEC3代表NSEC区域但NSEC3子区域并不在windows DNS服务器上

  Windows Server 2008 R2可以作为非授权DNS服务器为NSEC签名并有NSEC3子区区域配置了信任锚



  Windows 7可以用于非微软DNS服务器(支持NSEC3)来进行域名解析

  当某区域被NSEC签名时你可以配置NRPT不对该区进行验证这样做DNS服务器将不会执行验证并会直接返回数据

  部署 DNSSEC

  要部署DNSSEC需要按照以下步骤进行:

  了解DNSSEC重要概念

  将DNS服务器升级到Windows Server 2008 R2

  审查区域签名要求选择密钥滚动机制并确定计算机和DNSSEC保护区域安全性

  生成和备份为区域签名密钥确保DNS仍在运行并在签名区域后回答查询请求

  将信任锚分发到使用DNSSEC执行DNS验证非授权服务器

  为DNS服务器部署证书和Ipsec政策

  配置NRPT设置并向客户端计算机部署Ipsec政策

  整理总结

  在本文中我们探讨了DNSSEC和保护DNS基础设施对企业重要性Windows Server 2008 R2中存在很多新功能可以帮助企业保护DNS基础设施安全这主要通过使用签名DNS区域、SSL安全连接到可信DNS服务器以及Ipsec验证和加密来实现



Tags: 

延伸阅读

最新评论

发表评论