IPSec 默认免除项在某些情况下可以用于回避 IPSec 保护

文章翻译 文章翻译
文章编号: 811832 - 查看本文应用于的产品
重要说明:本文包含有关修改注册表的信息。修改注册表之前,一定要先进行备份,并且一定要知道在出现问题时如何还原注册表。有关如何备份、还原和编辑注册表的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 高级用户的 Windows 注册表信息
展开全部 | 关闭全部

本文内容

概要

Windows 2000、Windows XP 和 Windows Server 2003 中的 Internet 协议安全性 (IPsec) 功能并不是按照功能齐全的、基于主机的防火墙设计的。IPsec 旨在通过使用网络数据包中的地址、协议和端口信息来提供基本的允许和阻止筛选。IPsec 还是一个管理工具,可通过一种对程序透明的方式增强通信的安全性。为此,IPsec 提供了协商 IPsec 传输模式或 IPsec 隧道模式的安全性所必需的通信筛选功能,此功能主要针对可在其中从 Kerberos 服务获得计算机信任的 Intranet 环境或可在其中使用公钥基础结构 (PKI) 数字证书的 Internet 上的特定路径。

Microsoft Windows 2000 和 Microsoft Windows XP 联机帮助中说明了针对 IPsec 策略筛选器的默认免除项。这些筛选器可使 Internet 密钥交换 (IKE) 和 Kerberos 正常运行。这些筛选器还可使网络服务质量 (QoS) 在数据通信受到 IPsec 保护时收到信号,并使可能不受 IPsec 保护的通信(如多播和广播通信)收到信号。 有关这些筛选器的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
253169 IPSec 可以保护的和无法保护的通信

更多信息

随着 IPsec 越来越多地用于基本的主机防火墙数据包筛选(特别是连接到 Internet 的情况下),这些默认免除项所产生的影响尚未完全为人了解。为此,一些 IPsec 管理员可能会创建他们认为安全的 IPsec 策略,但实际上,这些策略对于使用默认免除项的入站攻击并不安全。

Microsoft 强烈建议网络管理员按照本文中的步骤操作以删除针对 IPSec 的默认免除项。当在类似防火墙的功能必须阻止攻击者获取对计算机的网络访问权的情况下使用 IPsec 时,尤其建议执行这些操作。对于某些 IPsec 策略配置,删除 Kerberos 的默认免除项可阻止攻击者突破应由 IPsec 提供的保护。删除这些免除项之后,可能必须对现有安全策略进行更改以使其正常工作。

通过在所有基于 Windows 2000 和基于 Windows XP 的计算机上使用
NoDefaultExempt=1
注册表项,管理员可以开始为所有现有的和新的 IPsec 部署规划这些更改。本文后面会说明此注册表项的用途。

IPsec 默认免除项的定义

下表总结了启用针对 IPSec 筛选的所有默认免除项(默认为启用)时或在
NoDefaultExempt
设置为 0 时要实施的等效筛选器。这些筛选器定义描述在 IPsec 驱动程序中应用以允许通信(与其他 IPsec 策略筛选器无关)的默认免除项。旨在显示 IPSec 策略筛选器详细信息的工具不会在其结果中显示这些免除项。

NoDefaultExempt=0
的等效筛选器:
收起该表格展开该表格
源地址目标地址协议源端口目标端口筛选器操作
我的 IP 地址任何 IP 地址UDP任何88允许
任何 IP 地址我的 IP 地址UDP88任何允许
任何 IP 地址我的 IP 地址UDP任何 88允许
我的 IP 地址任何 IP 地址UDP88任何允许
我的 IP 地址任何 IP 地址TCP任何 88允许
任何 IP 地址我的 IP 地址TCP88任何允许
任何 IP 地址我的 IP 地址TCP任何 88允许
我的 IP 地址任何 IP 地址TCP88任何允许
我的 IP 地址任何 IP 地址UDP500500 (1)允许
任何 IP 地址我的 IP 地址UDP500500允许
我的 IP 地址任何46 (RSVP)允许
任何 IP 地址我的 IP 地址46 (RSVP)允许
任何 IP 地址<多播> (2)允许
我的 IP 地址<多播>允许
任何 IP 地址<广播> (3) 允许
我的 IP 地址<广播>允许
<所有 IPv6 协议通信> (5)<所有 IPv6 协议通信> (4)允许
若指定 IP 地址,则子网掩码为 255.255.255.255。若 IP 地址为任意地址,则子网掩码为 0.0.0.0。
  1. 为了通过 IPSec 隧道模式 SA 来协商 IPSec 传输模式,如果 ISAKMP 通信需要先通过 IPSec 隧道,则不会免除此通信。
  2. 多播通信被定义为 D 类范围,目标地址范围为 224.0.0.0,子网掩码为 240.0.0.0。这将包括 224.0.0.0 和 239.255.255.255 之间的 IP 地址范围。
  3. 广播通信被定义为目标地址 255.255.255.255(受限的广播地址)或被定义为 IP 地址的主机 ID 部分都设置为 1(子网广播地址)。
  4. IPSec 不支持对 IP 版本 6 (IPv6) 数据包进行筛选,除非将 IPv6 数据包用一个 IPv4 标头作为 IP 协议 41 进行封装。有关 Windows 中的 IPv6 支持的更多信息,请访问下面的 Microsoft 网站:
    http://technet.microsoft.com/zh-cn/network/bb530961(en-us).aspx

NoDefaultExempt 的操作系统支持

下表描述了各种版本的 Windows 2000 和 Windows XP 中的默认免除项行为:
收起该表格展开该表格
零售发行版SP1SP2SP3SP4
Windows 2000带有默认免除项。不支持
NoDefaultExempt
项。
带有默认免除项,支持
NoDefaultExempt
项,值为 01
带有默认免除项。支持
NoDefaultExempt
项,值为 01
带有默认免除项。支持
NoDefaultExempt
项,值为 01
更改默认设置
NoDefaultExempt=1
,这将删除 Kerb 和 RSVP 免除项。
Windows XP带有默认免除项,支持
NoDefaultExempt
,值为 01
带有默认免除项,支持
NoDefaultExempt
,值为 01
更改默认设置
NoDefaultExempt=1
,这将删除 Kerb 和 RSVP 免除项。


注意:Windows 2000 和 Windows XP 中的 IPSec 不支持筛选广播或多播通信。

默认免除项的删除

下列注册表项可控制 IPsec 的默认免除项的类型:
NoDefaultExempt

数据类型:REG_DWORD
范围:可变:
Windows 2000:仅支持 0-1
Windows XP:仅支持 0-1
Windows Server 2003:仅支持 0-3
默认行为(Windows 2000 和 Windows XP):0
默认行为 (Windows Server 2003):3
默认显示:无
可能值的描述:
  • 0 指定从 IPSec 筛选中免除多播、广播、RSVP、Kerberos 和 IKE (ISAKMP) 通信。这是 Windows 2000 和 Windows XP 的默认筛选行为。仅在需要获得与现有 IPsec 策略或 Windows 2000 和 Windows XP 行为的兼容性时使用此设置。
  • 1 指定不从 IPSec 筛选中免除 Kerberos 和 RSVP 通信,而免除多播、广播和 IKE 通信。建议在 Windows 2000 和 Windows XP 中使用此值。
  • 2 指定不从 IPSec 筛选中免除多播和广播通信,但免除 RSVP、Kerberos 和 IKE 通信。仅在 Windows Server 2003 中支持此行为。
  • 3 指定仅从 IPSec 筛选中免除 IKE 通信。仅在 Windows Server 2003 中支持此行为。虽然该注册表项默认情况下不存在,但 Windows Server 2003 包含此默认行为。
警告:注册表编辑器使用不当可导致严重问题,可能需要重新安装操作系统。Microsoft 不能保证您可以解决因注册表编辑器使用不当而导致的问题。使用注册表编辑器需要您自担风险。 若要配置此注册表项,请执行下列操作:
  1. 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
  2. 单击下面的注册表项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPSEC
  3. 右键单击“IPSEC”,指向“新建”,然后单击“DWORD 值”。
  4. 将此新项命名为 NoDefaultExempt
  5. NoDefaultExempt
    项的值从 0 更改为 1。如果需要,可以使用 1 以外的其他值(如果该值最适合于您的环境)。
  6. 退出注册表编辑器。
  7. 在 Windows XP 中,单击“开始”,单击“控制面板”,然后双击“管理工具”。在 Windows 2000 中,依次单击“开始”、“设置”和“控制面板”,然后双击“管理工具”。
  8. 双击“服务”。
  9. 停止并重新启动“IPSec Services”服务。执行上述操作之后,Windows XP 会要求您重新启动计算机。

默认免除项的影响

下面的示例演示配置为单向阻止筛选器的 Windows 2000 或 Windows XP IPSec 策略。将阻止筛选器与这些规则一起应用的结果是阻止所有入站通信。提供此筛选规则只是为了演示 IPSec 免除项对于此规则的影响:
源地址:		任何
源掩码:		0.0.0.0
目标地址:	我的 IP 地址 (10.10.1.2)
目标掩码:	(255.255.255.255)
协议:		任何
源端口:		任何
目标端口:	任何
已镜像:		否
在此示例中,管理员的意图是阻止发送到 10.10.1.2 IP 地址的所有入站单播通信。下面几节描述将默认免除项应用于此筛选器所产生的影响。

IKE 免除项的影响

IKE 免除项是特定于源和目标端口 UDP 500 的。此默认的 IKE 免除项导致 IKE 总是收到来自任何源地址的此类型的数据包。攻击者可能使用 IKE 端口来攻击 IKE 本身,并且可能导致发生问题。不过,不能使用 IKE 端口来攻击其他打开的 UDP 或 TCP 端口。IKE 将执行 IPsec 策略查找以确定是否应答复传入的数据包。由于 IKE 可用于在两台 IPSec 主机之间协商安全设置,并且 IPsec 筛选器仅用于通信的允许和阻止控制,因此 IKE 将无法找到匹配的安全策略,并且不会答复传入请求。

IKE 会使用各种避免拒绝服务 (DoS) 的方法。Windows 2000 Service Pack 3 和 Windows XP 提供了改进的针对 IKE 泛洪攻击的 DoS 避免方法。不能从 IPsec 服务和 IPsec 驱动程序中单独禁用 IKE。只能通过停止 IPsec 服务来禁用 IKE,这样做也会禁用 IPsec 筛选。

如果 IKE 受到来自 Internet 的攻击而且不再需要 IKE,但仍需要 IPsec 筛选,则有多个选项可供选择:
  • 可以在默认网关或防火墙上使用针对 UDP 500 通信的阻止筛选器。
  • 在 Internet 接口上配置 TCP/IP 高级属性筛选器。使用“只允许”选项,然后添加 UDP 500 之外的必需的 UDP 端口。 有关使用此选项的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    309798 如何在 Windows 2000 中配置 TCP/IP 筛选
    使用“netstat –a”命令可查看打开的 UDP 端口。
  • 在 Windows XP 中,可以在 Internet 接口上启用 Internet 连接防火墙 (ICF) 以阻止所有传入通信。可以为 UDP 500 之外的 UDP 端口配置特定的通道。 有关 ICF 的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    283673 如何在 Windows XP 中打开或关闭防火墙

Kerberos 默认免除项的影响

对于这个阻止所有单向入站通信的示例,所有入站或出站单播 Kerberos 通信将会被免除与该筛选器匹配的要求。为此,攻击者可以构造使用源端口 88 的单播 UDP 或 TCP 数据包以访问位于 10.10.1.2 地址的任何打开的端口。这将启用 UDP 和 TCP 端口扫描,即使在使用阻止筛选器的情况下也会启用。管理员必须设置
NoDefaultExempt
注册表项以阻止攻击。如果正在使用筛选路由器或防火墙,则它可能会也可能不会允许来自攻击者的此类通信,具体取决于它如何处理使用 Kerberos 端口的通信。

注意:许多端口扫描工具不会检测此行为,原因是当检查打开的端口时,这些工具不允许将源端口设置为 88。还请注意,许多端口扫描工具会期待 ICMP 消息以响应发送到未打开的 TCP 或 UDP 端口的探测。如果 IPsec 正在阻止 ICMP 通信,则扫描工具可能会错误地报告此端口处于打开状态。通过网络监视器工具进行网络跟踪以确保正在网络上发送和接收通信。

若删除 Kerberos 免除项,并且还通过在 IKE 中使用 Kerberos 身份验证将 IPsec 用于保护通信时,必须考虑下面的 IPsec 策略设计注意事项:
  • 使用 IKE Kerberos 身份验证且
    NoDefaultExempt=1
    的计算机不能与使用 IKE Kerberos 身份验证但没有相同的注册表项值的对等计算机进行通信。对 IKE 而不是 Kerberos 使用证书身份验证(对于 Kerberos 必须使用证书身份验证)。
  • IPsec 策略中必须明确指定有关从所有相关 DC IP 地址收发的 Kerberos 和 UDP 389 通信的免除项。由于从 2003 年 3 月起,Microsoft 不再支持 IPsec 保护域成员与其域控制器之间的通信,因此应向 IPsec 策略添加筛选器以明确允许发送到域控制器 IP 地址的所有通信。如果存在很多 DC,则可能需要多个允许筛选器。必须将 DC IP 地址永久性地分配到 DC(静态 IP 地址)。管理员必须手动维护单个域中的所有 DC 的筛选器列表,以获得 IP 地址的最新列表。在创建新筛选器的过程中,如果筛选器将域的 DNS 名称指定为源或目标地址,则管理员可以更轻松地更新上述列表。这样做可对照 DNS 将域名解析为域中所有当前的 IP 地址,并为每个 IP 创建相应的筛选器。在生产中使用筛选器列表之前,请验证 IP 地址列表。若要添加新的 DC,则需要在此筛选器列表中添加新的筛选器。Microsoft 建议为特定域中的所有 DC 使用一个筛选器列表,然后在各个 IPsec 策略规则之间共享该列表。确保筛选器列表的名称指明 IP 地址列表的上一次更新时间,以便于参考。
有关域控制器之间的通信的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
254949 IPSec 对客户端与域控制器之间的通信以及域控制器与域控制器之间的通信的支持

RSVP 免除项的影响

对于使用 RSVP 的计算机,攻击者也许可以通过将具有欺骗性的或恶意的 RSVP 数据包泛洪或发送到 10.10.1.2 地址,从而导致拒绝服务。此 IP 地址是在上一个示例中使用的 IP 地址,并且此类攻击会绕过在示例中的单向入站阻止 IPsec 筛选器。

RSVP 协议为 IP 协议 46。这是一份信号协议,可用于在路由器中保留用于程序通信的带宽。

Windows 2000 中的 RSVP

在下列情况中,Windows 2000 会使用 RSVP 协议:
  • 已安装 QoS 许可控制服务。这是 Windows 2000 Server 计算机中的一个可选网络组件。如果安装此组件,则计算机可以接收和发送 RSVP 通信。
  • 正在运行服务质量 (QoS) RSVP 服务。默认情况下,将安装此服务并将其配置为自动启动服务。当启动此服务时,它会加载使用 RSVP 协议的 Rsvp.exe 程序,并在没有需要 RSVP 信号的通信时卸载该程序。当需要 QoS 服务时,此服务会动态加载 Rsvp.exe 程序。
  • 某个程序使用 GQoS 套接字选项打开套接字。Rsvp.exe 程序持续运行以管理套接字通信的信号。
  • pathping –r 命令使用 RSVP 协议以确定路由器是否支持 RSVP。
有关如何禁用 RSVP 协议信号的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
247103 如何禁用 RSVP 信号
当使用 QoS RSVP 服务时,它不会在指定的接口上发送 RSVP 信号。

Windows XP 中的 RSVP

Windows XP 中已弃用 RSVP 协议。尽管默认情况下将安装质量服务 (QoS) RSVP 服务,但会将其配置为手动启动。该服务不会发送或处理接收到的 RSVP 协议消息。该服务仍会注册 RSVP 协议,因此 TCPIP 堆栈可接收 IP 协议 46 类型数据包。但是,这些入站数据包随后将被丢弃。如果未启动 QoS RSVP 服务,则 TCP/IP 协议栈将会丢弃传入的 RSVP 数据包,然后发送 ICMP“目标不可访问”数据包作为响应。

pathping –r 命令使用 RSVP 协议来确定路由器是否支持 RSVP 时,Windows XP 仅使用 RSVP 协议。

抵御 RSVP 攻击

若要启用 IPsec 以抵御可能使用 RSVP 协议发起的攻击,管理员必须设置
NoDefaultExempt=1
注册表项以在 IPsec 中禁用 RSVP 免除项。此外,您可以禁用 QoS RSVP 服务或禁用 RSVP 作为协议。 有关如何执行此操作的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
247103 如何禁用 RSVP 信号
如果 RSVP 协议操作是必需的,则可以在 IPsec 策略中明确定义允许筛选器以允许对适当的源和目标地址使用 IP 协议 46。由于 RSVP 是用于与路由器进行通信的,因此 Microsoft 不建议使用 IPsec 来协商 RSVP 的安全性。请注意,RSVP 也可能使用 IPSec 无法筛选的多播地址。 有关本主题的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
278517 资源保留安装协议数据包使用本机多播地址

广播和多播免除项的影响

带有多播和广播目标地址的数据包将不会匹配示例入站筛选器,原因是入站筛选器具有特定单播 IP 地址 (10.10.1.2) 的目标地址。Windows 2000 和 Windows XP IPsec 筛选不能筛选多播或广播通信。

如果攻击者构造多播或广播数据包,并且如果网络允许计算机接收这些数据包,则攻击者可以绕过在上一个示例中使用的 IPsec 筛选器。通常,攻击者必须位于本地子网上才能通过使用此通信来发起攻击,原因是默认网关路由器配置将不会转发未经请求的入站多播或广播通信。在一些使用筛选器选项以“允许与识别非 IPsec 的计算机进行不安全通信”的 IPsec 策略设计中,攻击者可能可以使用多播或广播入站通信以促使目标计算机发送单播响应。这将触发 IKE 出站协商,从而创建 Soft SA 数据包并为攻击者开放连接路径。攻击者可以通过使用多播或广播目标地址来构造无效的 TCP 数据包,从而尝试绕过 IPsec 筛选器。如果某个程序或协议正在运行并请求接收多播或广播数据包,则当攻击者和该程序都只使用广播和多播通信时,则攻击者可能可以与该程序进行通信。

Microsoft 建议 IPsec 管理员与网络管理员一起讨论路由器和防火墙配置,以便进一步调查此类基于当前 IPsec 策略的攻击的可行性。

由于基于 TCP 的通信要求使用单播 IP 通信的三次握手,因此无法使用多播或广播通信类型。在 Windows 2000 和 Windows XP 中,使用 UDP 和原始套接字的程序和服务在默认情况下会接收广播通信(如果该通信发送到程序打开的端口)。默认情况下,RFC 2644 声明路由器不得转发直接广播通信。有两种可以通过本地链接使用的其他类型的广播通信:
  • 有限广播地址 – 如果目标 IP 地址为 255.255.255.255,则为有限广播地址。
  • 网络前缀定向广播 - 如果目标 IP 地址为带有适当的子网掩码的 x.y.255.255 或 x.y.z.255,则为网络前缀定向广播。
通常,程序使用此通信来定义其自身的通信模型。多播和广播通信一般用于最初公布和发现服务。然后,源计算机和目标计算机将在其 IP 地址之间使用单播 IP 通信以继续进行通信。

若要查看默认情况下将接收广播通信的 UDP 程序,请使用 netstat 命令:
  • Windows 2000:netstat -a -p UDP 没有办法显示打开这些端口的程序。
  • Windows XP:netstat –ao –p UDP-ao 开关显示进程 ID 以帮助确定使用打开的端口的程序。

什么类型的程序可以接收多播通信?


程序必须向 TCPIP 堆栈显式注册,以便接收入站多播通信。如果程序尚未注册接收此类通信,则将丢弃入站多播数据包。不过,可以在网络适配器(最常见情况)、微型端口、IP 层或 UDP 层上丢弃多播数据包。管理员应进行检查以确定哪些多播通信类型可以通过网络传送,从而更好地评估多播通信是否可用于攻击计算机。若要确定某个程序已加入了哪些多播组,请执行下列操作:
  • Windows 2000:无可用方法
  • Windows XP:
    1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
    2. 键入 netsh interface ip show joins,然后按 Enter。

将 IPsec 与 Internet 连接防火墙结合使用

对于 Windows XP,Internet 连接防火墙 (ICF) 可能更符合筛选通信的安全要求。在 Windows XP SP1 中,ICF 执行筛选并可以阻止入站多播和广播通信。不过,ICF 无法识别传输模式或隧道模式中受 IPsec AH 或 ESP 保护的通信。IPsec 位于 ICF 下方的网络层中。IKE 位于 ICF 的上一层中。为此,ICF 应静态允许 IKE(UDP 端口 500)入站,并将不会看到 IPsec AH 或 ESP 协议,但当 IPsec 在接收处理过程中解除对 TCP 或 UDP 通信的封装之后,可以看见它们。如果 IPsec 阻止通信,则 ICF 丢弃的数据包日志将不会包含 IPsec 丢弃的数据包。

可以将 IPsec 功能与 ICF 筛选相结合,以实现高级筛选行为。例如,可以仅将 ICF 配置为从任何 IP 地址打开 TCP 端口 445,并可以使用 IPsec 筛选器来进一步将此限制为包含作为源地址的内部子网的数据包。又例如,将 IPsec 配置为协商所有通信的安全性,但 ICF 配置限制允许接受的入站连接、仅允许入站 IKE(UDP 端口 500)和 SMB 文件共享(TCP 端口 445)。

参考

有关 TCP/IP 实施的更多信息,请参阅“Windows 2000 TCP/IP 详细实施”白皮书。为此,请访问下面的 Microsoft 网站:
http://www.microsoft.com/technet/itsolutions/network/deploy/depovg/tcpip2k.mspx
有关 IP 安全的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
253169 IPSec 可以保护的和无法保护的通信
254728 IPSec 不保护域控制器之间的 Kerberos 通信的安全
308127 如何在 Windows XP 中的 Windows 防火墙中手动打开端口
810207 Windows Server 2003 中删除的 IPSec 默认免除项

属性

文章编号: 811832 - 最后修改: 2008年1月29日 - 修订: 6.4
这篇文章中的信息适用于:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows XP Professional Edition
关键字:?
kbinfo kbfirewall kbprb KB811832
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com