IPsec 策略配置基于 Windows 的计算机如何在 IPsec 环境中工作。 IPsec 策略是通信流要匹配的规则的集合。 Windows 2000 有三种不同的 IPsec 策略:
• |
本地策略 |
• |
Active Directory 域策略 |
• |
动态策略 |
Windows XP 和 Windows Server 2003 支持下列其他策略类型:
• |
启动 IPsec 策略。 本地注册表对它进行存储和管理。 仅 Windows XP SP2 或更高版本支持。 计算机获得 IP 地址之后立即应用,可以在 IPsec 服务启动之前应用。 当服务应用永久策略时被替代。 |
• |
永久 IPsec 策略。 本地计算机上的注册表对它进行存储和管理。 通过命令行工具进行配置。 当 IPsec 服务启动时首先应用。 替代启动策略。 |
• |
本地 IPsec 策略。 本地计算机对它进行存储和管理。 通过 IPsec 策略管理 MMC(Microsoft 管理控制台)管理单元或命令行工具进行配置。 如果没有指派域策略,则除了永久策略之外还可应用该策略。 |
• |
Active Directory 域 IPsec 策略。 存储在 Active Directory 中。 通过 IPsec 策略管理 MMC 管理单元或命令行工具进行管理。 覆盖任何可能已指派的本地策略。 可以使用组策略编辑器 MMC 管理单元或组策略管理控制台,在“Windows 设置”的“安全设置”的“IPsec 策略”下,对 GPO 指派 Active Directory IPsec 策略。 |
• |
动态 IPsec 策略。 仅存储在内存中。 通过命令行工具进行配置。 用于动态地添加到现有策略。 当 IPsec 服务停止时,动态策略将被舍弃。 |
为简单起见,本指南集中讨论如何使用 Active Directory 域 IPsec 策略。
当定义 IPsec 策略时,最好尝试设计一个通用策略,该策略将为所有计算机的 IPsec 基础结构建立一个基础。 然后可以创建附加的策略以对需要附加安全配置的系统实施更严格的设置。 应将每个附加的策略设计成影响最大数目的需要满足特定业务或技术要求的计算机。 使策略的总数最少将更容易管理策略和解决与策略有关的问题。
IPsec 策略包括名称、描述、规则集以及轮询间隔设置、密钥交换设置和密钥交换方法的配置,以下各节详细描述上述各项。
名称
应给策略(如筛选器操作)取有意义的名称,以便在项目的实施和操作阶段有助于解决方案的管理和疑难解答。
描述
策略的详细说明将帮助管理员确定策略实施的内容,而不必实际打开策略和研究它的规则。
规则
IPsec 规则包括一个筛选器列表、关联的筛选器操作、用于在计算机之间建立信任的身份验证方法、连接类型以及该规则是否是隧道配置。
每条规则定义一个或多个身份验证方法用于在主机之间建立信任。 选项包括 Kerberos V5 协议、来自特定证书颁发机构的证书和预共享密钥。
连接类型定义要应用 IPsec 策略的连接。 可以配置对所有连接、本地连接或基于远程访问的连接应用策略。
隧道类型定义该 IPsec 策略是否定义 IPsec 隧道。 如果禁用了隧道类型,则 IPsec 使用传输模式。
为了支持本指南先前确定的安全隔离组,Woodgrove Bank 实施了四种 IPsec 策略。 它配置了全部四种策略,以便它们使用 Kerberos V5 身份验证协议、应用于所有连接且未定义 IPsec 隧道。
下表显示 Woodgrove Bank 方案中使用的策略:
表 5.6:Woodgrove Bank IPsec 策略
策略名称 | 描述 |
IPSEC – 隔离域 IPsec 策略 (1.0.041001.1600) |
此策略定义隔离域。 当此隔离组中的主机发起与非 IPsec 主机的通信时,能够回退到使用明文。 它配置主机要求 IPsec 通信。 如果支持 IPsec 的客户端之间的协商失败,则通信将失败。 |
IPSEC – 边界隔离组 IPsec 策略 (1.0.041001.1600) |
此策略定义边界隔离组。 它配置主机请求 IPsec 通信,但允许它们在需要与不支持 IPsec 的主机进行通信时回退到使用明文。 |
IPSEC – 无回退隔离组 IPsec 策略 (1.0.041001.1600) |
此策略定义无回退隔离组。 它配置主机要求 IPsec 通信。 如果协商失败或尝试与不使用 IPsec 的客户端通信,则通信将失败。 |
IPSEC – 加密隔离组 IPsec 策略 (1.0.041001.1600) |
此策略定义加密隔离组。 它配置主机要求 IPsec 通信和加密。 如果协商失败或尝试与不使用 IPsec 的客户端通信,则通信将失败。 |
与每个策略名称关联的数字是版本号,稍后的“确定策略版本”一节将进行讨论。
Woodgrove Bank 的每个策略包含相同的免除列表,因为对为某个特定隔离组免除特殊的一组计算机没有要求。 下表显示了在前一表中确定的四个策略中相同的已启用规则:
表 5.7:Woodgrove Bank IPsec 策略中定义的公用规则
筛选器列表 | 筛选器操作 | 身份验证方法 | 隧道终结点 | 连接类型 |
DNS 免除列表 |
IPSEC – 允许 |
无 |
无 |
全部 |
域控制器免除列表 |
IPSEC – 允许 |
无 |
无 |
全部 |
WINS 免除列表 |
IPSEC – 允许 |
无 |
无 |
全部 |
DHCP,协商通信流 |
IPSEC – 允许 |
无 |
无 |
全部 |
ICMP,所有通信流 |
IPSEC – 允许 |
无 |
无 |
全部 |
除了表中列出的规则之外,还禁用了每个策略中的默认客户端响应规则。
Woodgrove Bank 定义的四个策略只是在如何处理未被任何免除筛选器列表处理的剩余通信流方面有所不同。 对于每个这些规则,身份验证方法设置为“Kerberos V5 协议”,隧道终结点设置为“无”,连接类型设置为“全部”。
下表显示 Woodgrove Bank 实施四个隔离组的规则:
表 5.8:Woodgrove Bank 实施隔离组的基本规则
策略名称 | 筛选器列表 | 筛选器操作 |
IPSEC – 隔离域 IPsec 策略 (1.0.041001.1600) |
Woodgrove Bank 安全子网 |
IPsec – 安全请求模式(忽略入站,允许出站) |
IPSEC – 边界隔离组 IPsec 策略 (1.0.041001.1600) |
Woodgrove Bank 安全子网 |
IPsec – 请求模式(接受入站,允许出站) |
IPSEC – 无回退隔离组 IPsec 策略 (1.0.041001.1600) |
Woodgrove Bank 安全子网 |
IPsec – 完全要求模式(忽略入站,禁止出站) |
IPSEC – 加密隔离组 IPsec 策略 (1.0.041001.1600) |
Woodgrove Bank 安全子网 |
IPsec – 要求加密模式(忽略入站,禁止出站) |
Woodgrove Bank 选择使用 Kerberos V5 协议作为它的唯一身份验证协议。 Woodgrove 没有使用预共享密钥,因为身份验证密钥值可被注册表中的本地管理员读取,也可被域中任何经过身份验证的用户和计算机读取。 Woodgrove 没有选择证书,因为该银行没有已部署的公钥基础结构 (PKI)。
通过使用 Kerberos V5 协议,所有加入域的计算机能够参与 IPsec 基础结构,因为它们可以进行身份验证并获得策略。 未加入域的计算机不能方便地参与 IPsec 环境,因为没有身份验证机制和策略分发系统。 如果这些计算机满足受信任主机条件,您可以使用证书身份验证配置 IPsec 本地策略,以使它们能够与其他受信任主机通信。 Woodgrove Bank 目前将非域计算机当作不受信任计算机处理。
注:对 IKE 身份验证使用 Kerberos V5 协议不会防止不属于域的计算机参与 IPsec 环境。 例如,如果已正确配置 UNIX 系统使用 Active Directory 作为它的 Kerberos 领域且 IKE 实施支持 Kerberos 身份验证,则它有可能能够参与隔离域。 但是,这种配置越出本文的范围且没有经过 Microsoft 测试。
轮询间隔
有两个轮询间隔需要考虑:组策略轮询间隔和 IPsec 服务轮询间隔。 IPsec 服务策略更改轮询间隔的默认设置是连续轮询之间的间隔为 180 分钟,这些轮询检查那些基于 Active Directory 的 IPsec 策略中的更改。 这些轮询只检查 IPsec 策略中的更改,不检查域或组织单元 (OU) 成员身份中的更改,也不检查 GPO 中 IPsec 策略的指派或删除。 通过组策略服务轮询检测对计算机的 OU 成员身份和 GPO 指派的更改,默认情况下每隔 90 分钟进行一次。
Woodgrove Bank 选择将两个轮询间隔都设置为 60 分钟,以便当需要安全响应时,可以在 1 小时内更新和部署策略以降低风险。 轮询频率增加引入了附加的轮询通信流,因为来自客户端的 LDAP 查询要检查 IPsec 策略上的时间戳。 虽然在 Woodgrove Bank 方案中,这没有带来显著的开销,但是在具有大量客户端的部署中,这种增加可能变得非常显著。
密钥交换设置
以下密钥交换设置定义如何派生新密钥以及每隔多久续订它们。 术语“主密钥”意思是 IKE 主模式中生成的 Diffie-Hellman 共享密钥资料。 术语“会话密钥”指的是 IKE 快速模式生成的密钥,这些密钥将用于 IPsec 完整性和加密算法。 会话密钥是从主密钥派生出来的。
• |
完全向前保密 (PFS)。 IKE 中有两种 PFS:主密钥 PFS(意思是主模式 PFS),会话密钥 PFS(意思是快速模式 PFS)。 建议不要使用主模式 PFS,因为其他受支持的密钥交换设置也具有其功能。 主模式 PFS 要求每当执行快速模式来刷新会话密钥时,IKE 应重新进行身份验证并协商新的主密钥。 此要求确保每当需要刷新任何加密密钥时,两台计算机都开始进行新的 IKE 主模式和快速模式协商。 此附加保护会带来附加的开销。 会话密钥 PFS 在快速模式(不进行主模式身份验证)期间生成新的主密钥,然后从这个新的主密钥派生新的会话密钥。 此功能确保通信中的大量或所有数据不是只由一个主密钥值保护,如果攻击者发现了主密钥,也只会泄露很少量的加密数据。 会话密钥 PFS 受到支持,作为筛选器操作的安全措施中的一个复选框。 仅当 IPsec 保护的通信流面临精心策划针对 Diffie-Hellman 主密钥的加密攻击的风险时,才应使用会话密钥 PFS。 |
• |
每隔 <数字> 分钟之后进行身份验证并生成新密钥。 此值设置 IKE 主模式 SA 寿命,默认情况下为 480 分钟。 它控制在必须进行重新协商之前,可以使用主密钥和信任关系多长时间。 从不同客户端到主机的第一个 TCP/IP 连接导致创建新的 IKE 主模式 SA。 与软 SA 不同,主模式 SA 不活动 5 分钟之后,不会从主机删除它。 每个主模式 SA 大约占 5 KB 内存。 通过调整此值,管理员可优化 IKE 要求的 CPU 负荷和内存利用率。 如果减少寿命,就会减少服务器上活动主模式 SA 的数目。 维护较少的 SA 可以减少内存利用率并节省 IKE 处理时间。 但是,您可以为经常通信的客户端增加重新协商主模式 SA 所需的 CPU 负荷。 |
• |
每隔 <数字> 个会话之后进行身份验证并生成新密钥。 此设置控制一个主模式 SA 寿命期间所允许的 IKE 快速模式的最大数目,从而限制可从同一主密钥生成的会话密钥数。 当达到此限制时,将协商新的 IKE 主模式 SA,从而生成新的主密钥。 默认设置为 0,意思是没有限制。 因此,除非使用快速模式 PFS,否则仅当 IKE 主模式 SA 寿命到期,才会刷新主密钥。 为了获得与主密钥 PFS 设置相同的行为,此选项设置为 1。 |
Woodgrove Bank 选择不使用主密钥 PFS,因为它没有需要它的特殊安全要求。 同样,在筛选器操作中也没有使用 IKE 快速模式 PFS。 在除边界隔离组之外的所有隔离组中,已将 IKE 主模式 SA 寿命从 480 分钟更改为 180 分钟,以便更快地删除忙碌服务器上的主模式 SA。 对“边界”隔离组,Woodgrove Bank 管理员将 IKE 主模式 SA 寿命减少为 20 分钟,以减少与“加密”隔离组协商得到的驻留主模式 SA 带来的攻击面。 虽然边界隔离组中的主机不能发起与加密隔离组中的主机进行新的 IKE 协商,但可能出现相反的情况。 在建立主模式 SA 之后直到该主模式 SA 被删除期间,边界主机将可以使用这个 SA 为到加密隔离组中相应系统的入站通信流保护协商快速模式 SA。 通过强制更频繁地删除边界服务器上的主模式 SA,降低了这种风险。 可使用主密钥为其生成会话密钥的会话数保留为默认设置 0。
密钥交换方法
密钥交换方法控制主模式 IKE 协商期间使用的安全措施。 配置选项用于完整性(SHA-1 和 MD5)、机密性或加密(3DES 和 DES)以及密钥交换过程期间使用的基本素数的长度。
注:运行 Windows 2000 的计算机必须安装了高级加密软件包或 SP2(或更高版本)才能使用 3DES。
对 IKE 协商本身的完整性和加密以及 IPsec 数据保护使用的密钥的加密强度,取决于素数所基于的 Diffie-Hellman 组的强度。 Diffie-Hellman 组有以下三个选项:
• |
高 (3) – 2048 位密钥强度。 此选项对应于 Diffie-Hellman 组 14 的 IETF RFC 3526 规范。 3DES 需要此密钥强度,以便具有最大加密强度。 有关其他信息,请参阅 IETF RFC 3526。 |
• |
中 (2) – 1024 位密钥强度。 |
• |
低 (1) – 768 位密钥强度。 |
仅可在基于 Windows XP SP2 和基于 Windows Server 2003 的系统中使用“高”配置。 “中”配置为 Windows 2000 和 Windows XP SP1 提供互操作性。 提供“低”是为了向后兼容性,因为它相对较弱,所以不应使用它。
下表按 Woodgrove Bank 选择实施的优先次序列出了密钥交换安全措施。
表 5.9:默认密钥交换安全措施
加密 | 完整性 | Diffie-Hellman 组 |
3DES |
SHA-1 |
高 (3) 2048 位 |
3DES |
SHA-1 |
中 (2) 1024 位 |
3DES |
MD5 |
中 (2) 1024 位 |
注:在 IPsec 策略中使用 2048 位组要求使用 Windows Server 2003 管理工具(如 IPsec 策略管理 MMC 管理单元或 Netsh IPsec 命令行实用工具)配置 IPsec 策略。 可对域中的 Windows 2000 平台指派此策略,Windows 2000 平台将忽略 2048 位选项。
确定策略版本
IPsec 策略设计在初始规划、实验室测试、试验部署和操作使用过程中可能更改许多次。 如果使用脚本、电子表格或其他文档来创建 IPsec 策略,应使用类似于 Microsoft Visual SourceSafe® 的版本控制系统来管理这些文件。
通过查看策略的属性,很难确定 Active Directory 内的 IPsec 策略的版本。 疑难解答步骤将要求能够确定计算机上活动 IPsec 策略的版本。 因此,建议同时在策略的名称和策略规则内存储某种形式的版本确定信息。
一个简单的版本确定方法是基于以下公式创建版本 ID:
<Major Change>.<Minor Change>.<Date:yymmdd>.<Time:24 Hour>
例如,1.0.041001.1600 是 2004 年 10 月 1 日下午 4 点创建的版本 1.0。
然后您应将这个版本 ID 放在所创建策略的名称的末尾。 例如,IPSEC – 边界 IPsec 策略 (1.0.041001.1600)。 还可将它追加到经常更改的筛选器列表的名称或描述后面。
组策略检索 IPsec 策略名称,它存储在本地注册表中的 HKEY_LOCAL_MACHINE \SOFTWARE\
Policies\Microsoft\Windows\IPsec\GPTIPSECPolicy 下,在那里它存储为 DSIPSECPolicyName 注册表项下的字符串值。
虽然 IPsec 服务轮询检查所有指派的策略对象中的更改,但它不更新组策略存储的已指派策略的名称。 组策略不会更新本地注册表中的名称,直到 GPO 指派被更改。 Microsoft IT 部门发现 IPsec 策略内未使用的规则可以是存储策略版本信息的有效方法。 例如,您可创建一个筛选器列表,该筛选器列表中的一个筛选器包含无效的地址且与允许筛选器操作关联,例如:
筛选器列表名称:IPsec 策略版本 1.0.041001.1600
筛选器列表描述:IPsec 策略版本 1.0.041001.1600
1.1.1.1 <-> 1.1.1.2,ICMP,描述 =“IPsec 策略版本 ID 1.0.041001.1600”
在 Active Directory 中创建这个筛选器列表之后,通过使用以高级模式运行的 Active Directory 用户和计算机 MMC,您可以确定该筛选器列表的版本对象可分辨名称 (DN)。 可以在“<域名>\系统\IP 安全性”树下找到该筛选器列表对象并根据它的描述确定它。
在了解版本对象 DN 之后,您可以用编程方式将它与注册表中 HKEY_LOCAL_MACHINE \SOFTWARE
\Policies\Microsoft\Windows\IPSec\Policy\Cache 下存储的 IPsec 对象比较,以确定它是否位于高速缓存中。 如果您在高速缓存中找到版本对象 DN,您可以比较 Active Directory 中存储的对象的策略名称与本地计算机上存储的对象的策略名称。 如果名称相同,则本地和域策略是同步的。 每个 IPsec 筛选器列表的名称和描述还会存储在 IPsec 策略缓存中,将有助于确定当前指派了这些对象的哪些版本。 IPsec 服务在内存中保留了每个筛选器(不是筛选器列表)的文本描述,以便 IPsec 监视器 MMC 管理单元和命令行工具可报告此信息。
脚本可帮助使客户端的策略版本检查自动化,如示例脚本 Detect_IPsec_Policy.vbs,该脚本包括在本解决方案的“工具和模板”文件夹中。
因为在一段时间内会编辑策略,所以应更新相应的筛选器名称以反映更改。
如何将 IPsec 策略应用到个别计算机
启用 IPsec 的最后步骤是将策略部署到主机。 部署策略有两种方法。 第一种方法是将它们直接应用到个别主机,第二种方法是通过使用 GPO 和 Active Directory。 本章稍后的“如何使用 GPO 应用 IPsec 策略”一节讨论了通过 Active Directory 应用策略。
可以使用以下两种方法之一来完成将 IPsec 策略应用到个别计算机:通过 IPsec 安全策略管理 MMC 管理单元,或通过命令行使用 Netsh(对于 Windows Server 2003)、Ipseccmd.exe(对于 Windows XP)或 Ipsecpol.exe(对于 Windows 2000)。
MMC 管理单元提供一个图形用户界面 (GUI),管理员可用来手动应用策略或导入从另一台计算机导出的先前定义的 IPsec 策略。 除了操纵本地计算机上的策略之外,管理员还可使用该管理单元管理远程计算机上的策略。
以下资源提供有关命令行工具的详细信息:
• |
对于 Netsh,请参阅 Windows Server 2003 帮助和支持 |
• |
对于 Ipseccmd.exe,请参阅 Windows XP 支持工具文档 |
• |
对于 Ipsecpol.exe,请参阅 Windows 2000 Server 资源工具包 |
Microsoft 为 Windows XP SP2 提供了已更新的 IPseccmd 和其他支持工具。 Microsoft 知识库文章 838079“Windows XP Service Pack 2 支持工具”,网址为 http://support.microsoft.com/?kbid=838079。
有关如何使用这些工具的详细信息超出本指南的范围。 本指南中的示例是为在运行 Windows Server 2003 的服务器上使用 Netsh 设计的。
如何使用 GPO 应用 IPsec 策略
Active Directory 组策略可用作加入域的计算机的 IPsec 策略指派和分发机制。 在通过 Active Directory 中的组策略分发机制分发策略之前,必须先配置将用于对主机应用 IPsec 策略的 GPO。
注:虽然下节讨论将 IPsec 策略直接加载到 Active Directory 中,但是假定在将策略部署到生产环境之前,已在本地系统上、测试实验室中和小规模试验项目中创建和测试了这些策略。
如何将 IPsec 策略加载到 Active Directory 中
通过 Active Directory 实施 IPsec 策略的第一个任务是在目录服务中创建筛选器列表、筛选器操作和 IPsec 策略。 可以使用 IPsec 安全策略管理 MMC 管理单元或命令行工具(如 Netsh)来执行此任务。 不管您选择哪种工具,都必须执行以下三个子任务来实施 IPsec 策略:
1. |
创建本章“IPsec 筛选器列表”一节中确定的筛选器列表和筛选器。 |
2. |
创建本章“IPsec 筛选器操作”一节中确定的筛选器操作。 |
3. |
创建本章“IPsec 策略”一节中确定的 IPsec 策略。 |
使用 IPsec 安全策略管理 MMC 管理单元
IPsec 安全策略管理 MMC 管理单元是一个基于 GUI 的工具,允许管理员创建、配置和编辑本地计算机、远程计算机或域上的 IPsec 策略。 IPsec 组件的配置是一个手动过程,涉及直接编辑正在创建的对象并受向导指导。
在本地或 Active Directory 中定义 IPsec 策略之后,管理员可将 IPsec 策略(包括所有筛选器列表和筛选器操作)导出到使用 .ipsec 文件扩展名的文件。 可以将此文件复制到其他媒体作为备份用途。
如果 IPsec 策略的备份已存在,则可使用工具将备份的策略导入到 Active Directory 中。 可以使用这种方法用于恢复用途或将 IPsec 策略文件从测试林移入生产林,而不必手动重新创建每个筛选器列表、筛选器操作和策略。 请全面审查从备份还原的策略的设计。 建议进行测试以评估在当前环境中应用旧设置的影响。 旧的备份文件可能包含无效策略设置(如筛选器列表或筛选器操作),如果将它们指派给当前域成员,可能导致通信失败。
有关使用 IPsec 安全策略管理 MMC 管理单元的详细信息,请参阅 Windows Server 2003 帮助和支持中心中的“定义 IPSec 策略”主题。
使用 Netsh
对于在基于 Windows Server 2003 的 Active Directory 内配置 IPsec 策略,可以使用 Netsh 作为 IPsec 安全策略管理 MMC 管理单元的备用方法。 可用交互模式或批处理模式运行这个命令行工具。 当以交互模式使用 Netsh 时,它要求管理员将个别命令键入 Netsh 命令外壳中。 在创建筛选器列表、筛选器操作和 IPsec 策略之前,必须将该工具配置为指向 Active Directory。
要使 Netsh 指向 Active Directory,请在 Netsh 提示符下键入以下命令:
ipsec static set store location=domain
管理员然后通过 Netsh 命令外壳手动进入筛选器列表、筛选器、筛选器操作和 IPsec 策略。 与 GUI 工具相似,Netsh 支持备份和恢复方案中 IPsec 策略的导出和导入。
以批处理模式运行 Netsh 要求创建 Netsh 命令的脚本文件。 此脚本文件必须包含指向域的命令以及筛选器列表、筛选器、筛选器操作和 IPsec 策略的所有配置命令。
然后可以通过启动 Netsh 并执行该脚本文件在 Active Directory 中创建 IPsec 策略信息。 启动 Netsh 并执行脚本文件的命令行语法如下:
netsh –f <scriptfile>
有关使用 Netsh 的详细信息,请参阅 Windows Server 2003 帮助和支持中心的“管理和脚本编写工具”一节中的“Netsh”主题。
注:Netsh 仅可在运行 Windows Server 2003 的计算机上操纵 IPsec 策略。 在运行 Windows 2000 或 Windows XP 的计算机上使用命令行操纵 IPsec 策略分别需要 Ipsecpol.exe 或 Ipseccmd.exe。 另外,Netsh 在该工具的 IPsec 上下文中列出了一个 dump 命令。 虽然帮助文本中列出了此功能,但尚未实现它。 另外,与 GUI 工具不同,Netsh 不支持远程连接。
为 IPsec 策略分发创建组策略对象
GPO 是 Active Directory 内存储的一些对象,它们定义要对计算机应用的一组设置。 IPsec 策略没有直接存储在 GPO 内。 而是由 GPO 维护至 IPsec 策略的 LDAP DN 链接。 IPsec 策略存储在 Active Directory 内的 cn=IP Security, cn=System, dc=<domain> 位置。
GPO 被指派给 Active Directory 内的站点、域或 OU。 那些位置或容器内的计算机将接收 GPO 定义的策略,除非被另行阻止。 IPsec 设计小组应与 Active Directory 小组磋商,讨论使用现有 GPO 传递他们的 IPsec 策略的可行性。 如果这种方法不可行或需要对他们的管理做法进行大量修改,则可为要部署的每组 IPsec 策略定义新的 GPO。 本指南中描述的解决方案为 IPsec 策略的部署使用新的 GPO。
虽然可以通过 Active Directory 用户和计算机或 Active Directory 站点和服务工具创建 GPO,但是建议通过使用组策略管理控制台 (GPMC) 来创建新的 GPO。 通过 Active Directory 工具创建策略会自动使 GPO 链接至正在浏览的对象。 通过使用 GPMC 创建 GPO,管理员可确保在 Active Directory 内创建 GPO,直到每个 GPO 显式链接至站点、域或 OU,才应用到计算机。
GPMC 是运行 Windows XP Service Pack 1(或更高版本)或 Windows Server 2003 的计算机的加载实用工具。 GPMC 允许管理员通过具有拖放支持的简化用户界面,管理一个或多个林内多个域和站点的组策略。 关键功能包括如下功能:备份、还原、导入、复制和报告 GPO。 这些操作可完全实现脚本化,允许管理员自定义管理和使管理自动化。 请注意,这些 GPO 管理技术适用于管理 IPsec 策略对象本身。 您应制订一个管理策略,用来对 IPsec 策略和传递 IPsec 策略指派的 GPO 进行一致管理。
使用 GPMC,管理员可以通过完成以下步骤为每个 IPsec 策略创建 GPO:
创建新的 GPO
1. |
展开域树,右键单击“Group Policy Objects”容器,然后选择“新建”。 |
2. |
键入一个新的组策略对象名称,然后单击“确定”。 |
如同使用 IPsec 筛选器操作和策略那样,应为 GPO 制订命名标准,即在名称内包括策略的版本号 — 因为不容易获得 Active Directory 对象的版本信息。 在策略名称中包括版本号允许管理员迅速确定当前有效的策略。 Microsoft 建议使用本章先前为筛选器操作和 IPsec 策略描述的相同命名规则。 例如,名称为“隔离域 IPsec GPO 版本 1.0.040601.1600”的 GPO 应该是 2004 年 6 月 1 日下午 4 点创建的版本 1.0。
创建 GPO 之后,管理员需要配置它使用适当的 IPsec 策略。
在 GPO 中指派 IPsec 策略
1. |
通过右键单击组策略对象名称并选择“编辑”,启动组策略编辑器。 | ||
2. |
可指派的可用 IPsec 策略位于 Active Directory 中的“计算机配置\Windows 设置\安全设置\IP 安全策略”下。 | ||
3. |
要指派 IPsec 策略,右键单击右窗格中的策略名称,然后选择“指派”。
| ||
4. |
要保存对 GPO 的更改,关闭“组策略编辑器”工具。 |
IPsec 策略通过 GPO 上的计算机配置设置应用到主机。 如果 GPO 只用来应用 IPsec 策略,则建议将 GPO 配置为禁用用户配置设置。 禁用这些设置将帮助缩短 GPO 的处理时间,因为这将绕过用户配置选项的评估。
禁用 GPO 上的用户配置
1. |
打开 GPMC 工具。 |
2. |
在 GPMC 中,右键单击组策略对象名称。 |
3. |
选择“组策略对象状态”,然后选择“用户配置设置被禁用”。 |
如果以后要在 GPO 中配置用户配置设置,管理员将必须重新启用用户配置设置的处理,以便让它们应用。
域安全组
域安全组具有两个用途。 第一个用途是确定是隔离组成员的域计算机帐户,第二个用途是确定是网络访问组成员的域计算机帐户。
要求隔离组的所有成员接收同一个 IPsec 策略。 因此,可以创建域安全组来应用和管理 IPsec 策略,而不是使用 OU 容器来控制策略指派。 通用组是控制策略指派的非常好的选择,因为它们可应用于整个林并可减少需要管理的组数。 但是,如果通用组不可用,可以使用域全局组代替。 域本地组用于稍后一节中讨论的网络访问组。
下表列出了为 Woodgrove Bank 方案创建的组,用来管理 IPsec 环境和控制策略应用:
表 5.10:IPsec 组名
组名 | 描述 |
No IPsec |
未参与 IPsec 环境的计算机帐户的通用组。 通常由基础结构计算机帐户组成。 |
CG_IsolationDomain_computers |
是隔离域成员的计算机帐户的通用组。 |
CG_BoundaryIG_computers |
计算机帐户的通用组,这些帐户是边界隔离组成员从而允许与不受信任系统通信。 |
CG_NoFallbackIG_computers |
计算机帐户的通用组,这些帐户是无回退隔离组的一部分且不允许进行未经身份验证出站通信。 |
CG_EncryptionIG_computers |
计算机帐户的通用组,这些帐户是加密隔离组的成员从而要求对它们的通信加密。 |
除了上面列出的组之外,在初始部署期间,还可能创建了其他组并用来限制策略应用。 当部署 IPsec 时,建议不要只是创建 GPO 和 IPsec 策略然后同时将它们指派给域中所有计算机。 域安全组可用于精确控制哪些计算机可读取 GPO 从而接收相应的 IPsec 策略。 可对整个域指派所有传递 IPsec 策略的 GPO。 部署过程必须仔细考虑是否正确设计了 IPsec 策略,是否将它正确指派给期望协商 IPsec 的所有节点以及这些节点是否可以正确检索该策略。 边界组策略的设计通常用于允许与尚未接收到 IPsec 策略的计算机进行非 IPsec 的入站和出站通信。
通过 Active Directory 分发 IPsec 策略
组合使用以下三种方法,可以在 Active Directory 中控制对计算机应用哪些 GPO:
• |
使用具有链接的 GPO 的 OU。 |
• |
将计算机帐户放在对 GPO 应用的 ACL 中引用的安全组中。 |
• |
对 GPO 使用 Windows Management Instrumentation (WMI) 筛选器。 |
通过具有链接的 GPO 的 OU 控制 GPO 应用是 Active Directory 中最常见的策略应用形式。 这种方法在 Active Directory 内创建 OU,并使 GPO 链接到站点、域或 OU。 计算机基于它们在 Active Directory 内的位置接收策略。 如果计算机被从一个 OU 移动到另一个 OU,则链接到第二个 OU 的策略最终将在组策略在轮询期间检测到更改时生效。
第二种方法使用 GPO 自身上的安全设置。 在 Active Directory 中,组被添加到 GPO 的 ACL。 然后给此组指派对某个策略(该策略应对组内的计算机生效)具有“读取”和“应用组策略”权限。 另外,还要专门拒绝该组对某些策略(不应对组内计算机应用这些策略)的权限。 然后在域级链接该策略。
第三种方法对策略使用 WMI 筛选器来动态控制策略应用的范围。 创建了 WMI SQL 筛选器并链接至策略。 如果查询的条件为真,则应用该策略,否则忽略它。 运行 Windows 2000 的计算机会忽略 WMI 筛选并将应用该策略。 WMI 查询会使 GPO 处理变慢,应仅在必要时使用。
Woodgrove Bank 选择使用安全组来控制策略应用而不是直接链接至 OU。 Woodgrove 选择了使用这种方法轻松地将 IPsec 策略引入环境,而不必强制策略进入多个位置或强制计算机从一个 OU 移动到另一个 OU 来接收正确的策略。 除非 GPO 上的 ACL 极大,否则与第一种方法相比,这种方法没有关联的附加开销,因为在两种情况下都必须评估 ACL。 Woodgrove 没有选择 WMI 筛选,因为环境中有 Windows 2000 系统。
下表显示最终的组策略 ACL 配置。 请注意,没有使用 IPsec 策略对象自身上的 ACL,建议不要使用。
表 5.11:Woodgrove Bank 策略 GPO 权限
组策略对象名称 | 安全组名称 | 分配的权限 |
IPSEC – 隔离域策略 |
No IPsec |
拒绝应用组策略 |
IPSEC – 隔离域策略 |
CG_IsolationDomain_computers |
允许读取和应用组策略 |
IPSEC – 边界组策略 |
No IPsec |
拒绝应用组策略 |
IPSEC – 边界组策略 |
CG_BoundaryIG_computers |
允许读取和应用组策略 |
IPSEC – 无回退隔离组策略 |
No IPsec |
拒绝应用组策略 |
IPSEC – 无回退隔离组策略 |
CG_NoFallbackIG_computers |
允许读取和应用组策略 |
IPSEC – 加密隔离组策略 |
No IPsec |
拒绝应用组策略 |
IPSEC – 加密隔离组策略 |
CG_EncryptionIG_computers |
允许读取和应用组策略 |
隔离域
Woodgrove Bank 选择了将隔离域策略链接至组织中每个域中的域级。 该策略使用 ACL,防止不是 CG_IsolationDomain_computers 组成员的任何人应用该策略。 已从策略 ACL 中删除了 Authenticated Users 组的“应用组策略”权限。
隔离域策略被组织中的所有计算机用作默认 IPsec 安全策略。 因此,“域计算机”组被授予对策略具有“读取”权限。 已从策略 ACL 中删除了 Authenticated Users 组的“应用组策略”权限。 在初始部署期间,从 ACL 删除了 Domain Computers 组,并使用了另一个临时安全组来控制谁可以接收此策略。 这种方法允许对此策略进行分阶段部署。
边界隔离组
Woodgrove Bank 选择将边界隔离组策略链接至组织中每个域中的域级。 该策略使用 ACL,防止不是 CG_BoundaryIG_computers 组成员的任何人应用该策略。 已从策略 ACL 中删除了 Authenticated Users 组的“应用组策略”权限。
如果有业务需要系统接受来自不受信任系统的通信,可将该系统的计算机帐户添加至 CG_BoundaryIG_computers 安全组。
无回退隔离组
Woodgrove Bank 选择将无回退隔离组策略链接至组织中每个域中的域级。 该策略使用 ACL,防止不是 CG_NoFallbackIG_computers 组成员的任何人应用该策略。 已从策略 ACL 中删除了 Authenticated Users 组的“应用组策略”权限。
如果有业务需要要求系统没有发起与不受信任系统通信的能力,可将该系统的计算机帐户添加至 CG_NoFallbackIG_computers 组。
加密隔离组
Woodgrove Bank 选择了将加密隔离组策略链接至组织中每个域中的域级。 此策略使用 ACL,防止不是 CG_EncryptionIG_computers 组成员的任何人应用该策略。 已从策略 ACL 中删除了 Authenticated Users 组的“应用组策略”权限。
如果有业务需要要求系统只使用加密通信流进行通信,可将该系统的计算机帐户添加至 CG_EncryptionIG_computers 组。
授权到隔离组的入站访问
Woodgrove Bank 的要求是只允许受信任主机的子集有权对加密隔离组中的服务器进行入站网络访问。 第 4 章中的表 4.8 定义下列网络访问组 (NAG) 来实施这些要求:
• |
ANAG_EncryptedResourceAccess_Users |
• |
ANAG_EncryptedResourceAccess_Computers |
• |
DNAG_EncryptedResourceAccess_Computers |
当客户端发起与加密服务器的 IKE时,IKE 必须获得包含域安全组标识符的 Kerberos 服务票证,该标识符指示客户端计算机是否是 ANAG 和/或 DNAG 的成员。 如果加密隔离组中的所有计算机是同一域的成员,则可将这些 NAG 创建为域本地安全组。 如果加密隔离组中的计算机是不同受信任域的成员,则可对 NAG 使用一组域全局组,也可在每个域中创建域本地组。 Woodgrove Bank 方案只涉及一个域,因此它对这些 NAG 使用域本地组。
为定义实施入站授权的“从网络访问此计算机”权限,创建了下面的附加 GPO:
• |
EncryptionIG 入站网络授权 GPO |
CG_EncryptionIG_Computers 组被授予对此 GPO 具有“读取”和“应用”权限。 从“读取”权限中删除了 Authenticated Users 组,导致仅对是加密隔离组成员的计算机应用此 GPO。
如第 4 章的表 4.8 中所示,授权客户端域计算机帐户 IPS-ST-XP-05 已添加到 ANAG_EncryptedResourceAccess_Computers 网络访问组。 还添加了加密服务器帐户自身、IPS-SQL-DFS-01 和 IPS-SQL-DFS-02。 但是,通过使用 CG_EncryptionIG_computers 组来管理较大的列表可以更容易获得相同的结果。 必须以某种方式授权这些帐户拥有“从网络访问此计算机”权限,可以通过 ANAG 成员身份、直接包括它们的 CG_EncryptionIG_computers 组或在权限中显式列出计算机帐户。 否则,这些帐户将不能彼此建立它们的应用程序所要求的 IPsec 保护的连接。 为了模拟大型域环境,ANAG 组是 Woodgrove Bank 方案中仅有授予了入站访问权限的组。
因为 Authenticated Users 组包括所有域计算机,所以必须从“从网络访问此计算机”权限中删除它。 现在必须对授权域用户进行显式授权,可以通过使用域用户的内置组来实现。 但是,Woodgrove Bank 想要利用为用户以及计算机定义入站网络访问限制的能力。 因此,它创建了称作 ANAG_EncryptedResourceAccess_Users 的域本地安全组,并在里面填充了授权应用程序用户帐户(如 User7)以及本地管理员组和域管理员组。 这些用户级网络访问限制在成功建立 IPsec ESP 3DES 连接之后的上层协议(如 RPC、SMB 和 SQL)身份验证请求期间起作用。
为加密服务器的网络登录权限创建了下列域安全组。 它们位于 GPO 中的“计算机配置\Windows 设置\安全设置\本地策略\用户权限分配\从网络访问此计算机”权限下:
• |
ANAG_EncryptedResourceAccess_Computers |
• |
ANAG_EncryptedResourceAccess_Users |
为同一 GPO 配置了以下的“拒绝从网络访问这台计算机”组:
• |
DNAG_EncryptedResourceAccess_Computers |
假定 User7 不能直接登录到加密服务器,则结果是 User7 必须使用 IPS-ST-XP-05 客户端计算机来访问 IPS-SQL-DFS-01 或 IPS-SQL-DFS-02 服务器。 IPS-ST-XP-05 计算机必须具有有效的域计算机帐户和可以发起与加密服务器 IP 地址进行 IKE 协商的活动 IPsec 策略。
请注意,有效地拒绝了域中其余用户和计算机的访问,因为特意从“从网络访问此计算机”权限中省略了它们。 只有边界计算机是通过使用 DNAG 显式拒绝访问的,作为针对未来组成员身份更改的纵深防御措施,这些更改可能将边界计算机帐户包括在 ANAG 中。 显式拒绝参数覆盖所有形式的允许参数。
其他 IPsec 注意事项
除了定义 IPsec 策略之外,为了成功地实施 IPsec,还有一些其他注意事项。 “工具和模板”文件夹中的 Business_Requirements.xls 电子表格提供了使用 IPsec 时的约束的详细信息。
默认免除
在 Windows 2000 和 Windows XP 中,默认情况下以下类型的通信流被免除进行筛选器匹配:
• |
广播 |
• |
多播 |
• |
Kerberos 身份验证协议 |
• |
IKE |
• |
资源保留协议 (RSVP) |
在 Windows Server 2003 系列操作系统中,默认情况下来自广播、多播、RSVP 和 Kerberos 身份验证协议的通信流未免除进行筛选器匹配(仅免除 IKE 通信流)。 如果广播和多播数据包与具有协商安全性的筛选器操作的筛选器匹配,则将丢弃它们。 默认情况下,Windows Server 2003 系列为筛选广播和多播通信流提供有限支持。 源地址为“任何 IP 地址”的筛选器将与多播和广播地址匹配。 源地址和目标地址均为“任何 IP 地址”的筛选器将与入站和出站多播地址匹配。 可以使用这样的筛选器来阻止所有通信流。 但是不支持将用于阻止或允许特定多播或广播通信流的单向筛选器。
由于 Windows Server 2003 系列 IPsec 实施的默认免除行为的更改,所以应验证为 Windows 2000 或 Windows XP 设计的 IPsec 策略的行为,并确定是否配置显式允许筛选器来允许特定的通信流类型。 为了复原 IPsec 策略的默认 Windows 2000 和 Windows XP 行为,可以使用 Netsh 命令或修改注册表。
使用 Netsh 使 IPsec 驱动程序复原为默认 Windows 2000 和 Windows XP 筛选行为
1. |
在 Netsh 提示符下键入以下命令,然后按 ENTER 键: netsh ipsec dynamic set config ipsecexempt 0 |
2. |
重新启动计算机。 |
通过修改注册表免除所有广播、多播和 IKE 通信流进行 IPsec 筛选
1. |
将注册表设置 HKEY_LOCAL_MACHINE\System\CurrentControlSet\ |
2. |
重新启动计算机。 |
NAT-遍历
因为网络地址转换器的工作方法,当客户端与使用 IPsec NAT-T 的网络地址转换器后面运行 Windows 2000 Server 或 Windows Server 2003 的服务器通信时,可能得到意外的结果。 默认情况下,Windows XP SP2 不再支持与这种服务器的 IPsec NAT-T 安全关联。
进行了此更改以在发生下列事件的情况下避免可预见的安全风险:
1. |
网络地址转换器配置为将 IKE 和 IPsec NAT-T 通信流映射到配置了 NAT 的网络上的服务器(服务器 1)。 |
2. |
来自配置了 NAT 的网络之外的客户端(客户端 1)使用 IPsec NAT-T 与服务器 1 建立双向安全关联。 |
3. |
配置了 NAT 的网络上的客户端(客户端 2)使用 IPsec NAT-T 与客户端 1 建立双向安全关联。 |
4. |
出现了导致客户端 1 与客户端 2 重新建立安全关联的情况,因为存在将 IKE 和 IPsec NAT-T 通信流映射到服务器 1 的静态网络地址转换器映射。 这种情况可能导致客户端 1 向客户端 2 发送的 IPsec 安全关联协商通信流被错误地路由到服务器 1。 |
虽然不太可能发生这种情况,但是基于 Windows XP SP2 的计算机上的默认行为防止任何到位于网络地址转换器后面的服务器基于 IPsec NAT-T 的安全关联,以确保决不发生这种情况。
如果对穿过 NAT 的 IPsec 通信有需求,建议对可直接从 Internet 连接的所有服务器使用公共 IP 地址。 如果不可能进行这种配置,则可更改 Windows XP SP2 的默认行为,以启用与位于网络地址转换器后面的服务器的 IPsec NAT-T 安全关联。
创建和配置 AssumeUDPEncapsulationContextOnSendRule 注册表值
1. |
单击“开始”,再单击“运行”,键入 regedit,然后单击“确定”。 | ||||||
2. |
找到然后单击以下注册表子项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet Services\IPSec | ||||||
3. |
在“编辑”菜单上,指向“新建”,然后单击“双字节值”。 | ||||||
4. |
在“新值 #1”框中,键入以下内容,然后按 ENTER 键:AssumeUDPEncapsulationContextOnSendRule 注:此值名称区分大小写。 | ||||||
5. |
右键单击 AssumeUDPEncapsulationContextOnSendRule,然后单击“修改”。 | ||||||
6. |
在“数值数据”框中,键入下列其中一个值:
| ||||||
7. |
单击“确定”,然后关闭“注册表编辑器”。 | ||||||
8. |
重新启动计算机。 |
在用值 1 或值 2 配置 AssumeUDPEncapsulationContextOnSendRule 之后,Windows XP SP2 可以连接到位于网络地址转换器后面的服务器。
当被放在 NAT 设备后面时,基于 Windows Server 2003 的服务器还需要更新才能与 IPsec 一起正确操作,有关如何获取 Windows Server 2003 Service Pack 1 的信息,请访问以下 URL:
http://go.microsoft.com/fwlink/?LinkId=41652
注:有关详细信息,请参阅知识库文章 885348“IPSec NAT-T is not recommended for Windows Server 2003 computers that are behind network address translators”,网址为 http://support.microsoft.com/default.aspx?
scid=kb;en-us;885348。 本文说明使用此方案的安全风险。 每个客户必须评估在此方案中使用 IPsec 的益处以及与它关联的安全风险。 虽然由于关联的风险,Microsoft 建议不要使用该方案,但是 Microsoft 将使用本解决方案中记录的配置支持该方案。
为了使入站 NAT 连接成功工作,PMTU 发现必须被启用且正常工作。 一些信息来源(如“Windows XP 强化指南”和“Windows Server 2003 强化指南”)建议禁用 PMTU 发现,在某些情况下,它们还提供了禁用 PMTU 发现功能的策略模板。
启用 PMTU 发现
1. |
单击“开始”,再单击“运行”,键入 regedit,然后单击“确定”。 |
2. |
找到然后单击以下注册表子项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet Services\tcpip\parameters |
3. |
在“编辑”菜单上,指向“新建”,然后单击“双字节值”。 |
4. |
在“新值 #1”框中,键入 EnablePMTUDiscovery,然后按 ENTER 键: |
5. |
右键单击“EnablePMTUDiscovery”,然后单击“修改”。 |
6. |
在“数值数据”框中,键入 1 |
7. |
单击“确定”,然后关闭“注册表编辑器”。 |
8. |
重新启动计算机。 |
有关其他信息,请参阅以下知识库文章:
• |
Microsoft 支持网站上的 885407“The default behavior of IPSec NAT traversal (NAT-T) is changed in Windows XP Service Pack 2”,网址为 http://support.microsoft.com/kb/885407。 |
• |
Microsoft 支持网站上的 818043“用于 Windows XP 和 Windows 2000 的 L2TP/IPSec NAT-T 更新”,网址为 http://support.microsoft.com/kb/818043。 |
IPsec 和 Windows 防火墙
运行 Windows XP SP2 的计算机上的 Windows 防火墙通过阻止未经请求的传入通信流来针对攻击提供附加保护。 Windows XP SP2 中的 IPsec 支持 Windows 防火墙。 当有活动的 IPsec 策略时,Windows XP SP2 的 IPsec 组件指示 Windows 防火墙打开 UDP 端口 500 和 4500 来允许 IKE 通信流。
IPsec 支持的另一个功能是可以通过组策略指定所有 IPsec 保护的通信流绕过 Windows 防火墙处理。 有关详细信息,请参阅白皮书“Deploying Windows Firewall Settings for Microsoft Windows XP with Service Pack 2”的附录 A,网址为 http://download.microsoft.com/download/
6/8/a/68a81446-cd73-4a61-8665-8a67781ac4e8/wf_xpsp2.doc。
IPsec 和 Internet 连接防火墙 (ICF)
对于未运行 SP2 基于 Windows XP 的计算机,Internet 连接防火墙 (ICF) 可能更好地满足筛选通信流的安全要求。 在 Windows XP SP1 中,ICF 提供筛选并可阻止入站多播和广播通信流。 但是,ICF 不能识别传输或隧道模式中 IPsec AH 或 ESP 保护的通信流。 因为 IPsec 在 ICF 之下的网络层运行,IKE 在 ICF 之上的网络层运行,所以应为入站通信流设置静态允许 IKE(UDP 端口 500)。 如果 IPsec 阻止通信流,则 ICF 舍弃数据包日志将不包含 IPsec 舍弃的数据包。
总结
本章提供了有关创建和部署 IPsec 策略的信息,这些策略基于第 4 章创建的隔离组设计。 该信息分为以下七个基本任务:
• |
确定和创建筛选器列表 |
• |
确定和创建筛选器操作 |
• |
确定和创建规则 |
• |
确定和创建 IPsec 策略 |
• |
定义 IPsec 策略的分发机制 |
• |
定义 IPsec 策略的部署方法 |
• |
使用组策略网络登录权限配置为入站访问控制定义授权 |
上述任务完成服务器和域隔离解决方案的设计和规划阶段。 项目的下一阶段是部署测试或试验环境,以便对设计进行验证。 Microsoft 在它的测试实验室进行了这种验证,并使用 Woodgrove Bank 方案作为试验。 如果您想重新创建此环境或研究部署阶段,本指南的附录 C 包含部署过程的逐步指导,Microsoft 在它的测试实验室使用该部署过程来验证方案的设计。