解决 Microsoft Windows 2000 Server 中的 IPsec 问题

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

本文内容

概要

要解决 Microsoft Windows 2000 中的 IPsec 连接问题,请首先验证 Internet 密钥交换 (IKE) 安全协商是否成功。为此,请启用审核策略,然后检查安全日志。接下来,使用 Netdiag.exe 命令行工具显示调试信息。然后,根据问题是发生在第一阶段还是第二阶段,检查 IPsec 策略属性和 IPsec 规则。

使用 IP 安全监视器查看有关 IPsec 和安全关联的更多信息。还可以使用 IP 安全监视器查看 IKE 统计信息。使用网络监视器来分析网络流量和网络中使用的各种协议的状态。对于 IPsec 数据包上发生 IP 卸载的情况,可以使用 Netsh 命令解决相关问题。

本文中的信息还可用于执行以下操作:
  • 获取 Oakley 日志
  • 了解事件日志的内容
  • 对消息“bad SPI”进行疑难解答
  • 重新启动策略代理
  • 验证策略的完整性

简介

本文包含有关如何解决 Microsoft Windows 2000 中的 Internet 协议安全 (IPsec) 连接问题的指南。IPsec 依靠 Internet 密钥交换 (IKE) 协议在两台计算机之间建立共享安全参数和已验证的密钥。IKE 协议使用两个阶段。在第一阶段,Windows 2000 使用 IKE 安全关联和密钥管理协议 (ISAKMP) 主模式交换。(Windows 2000 不支持攻击性模式。)当第一阶段交换提供了安全通道后,计算机便可获取已验证的密钥和 IKE 安全关联。此安全通道在第二阶段中将用于保护快速模式交换。快速模式交换可提供 IPsec 安全关联。

更多信息

基本 IPsec 疑难解答

要对 IPsec 进行疑难解答,请首先启用审核策略,然后验证第一阶段和第二阶段交换的结果。启用审核策略时,会在安全日志中记录安全事件。通过检查安全日志,可以确定 IKE 安全关联协商是否成功。要启用审核策略,请按照下列步骤操作:
  1. 在组策略中,展开“‘本地计算机’策略”。
  2. 按“计算机配置”/“Windows 设置”/“安全设置”/“本地策略”/“审核策略”顺序找到并单击“审核策略”。
  3. 在细节窗格中,右键单击“审核登录事件”,然后单击“安全”。
  4. 单击以选择“成功”,单击以选择“失败”,然后单击“确定”。
  5. 在细节窗格中,右键单击“审核对象访问”,然后单击“安全”。
  6. 单击以选择“成功”,单击以选择“失败”,然后单击“确定”。
注意:如果使用域策略进行审核,则域策略将覆盖本地策略。

接下来,键入以下命令以使用 Netdiag.exe 命令行工具:
netdiag /test:ipsec /debug
此命令会显示有关第二阶段的调试信息。

注意:要使用 Netdiag.exe,必须在计算机上安装 Windows 2000 支持工具包。要安装 Windows 2000 支持工具,请按照下列步骤操作:
  1. 启动 Windows 2000。

    注意:必须以管理员组成员的身份登录,才能安装这些工具。
  2. 将 Windows 2000 CD 插入到 CD 驱动器中。
  3. 单击“浏览该 CD”,然后打开 Support\Tools 文件夹。
  4. 双击 Setup.exe,然后按照屏幕上出现的说明操作。
还可以使用 Netdiag.exe 在无活动连接的情况下查看策略。为此,请在命令提示符处键入以下命令,然后按 Enter:
netdiag /test:ipsec /v
此命令会显示当前策略以及与第一阶段相关的 IPsec 统计信息。

如果记录的事件指示第一阶段主模式交换失败,请在 IPsec 策略属性中验证 IKE 设置和 IKE 身份验证方法。为此,请按照下列步骤操作:
  1. 单击“开始”,单击“运行”,键入“secpol.msc”,然后单击“确定”。
  2. 单击所需的 IPsec 规则,右键单击“IPsec 规则”,然后单击“属性”。
  3. 单击“常规”选项卡,然后验证设置是否正确。
  4. 单击“高级”和“方法”,分别检查其中的设置。
  5. 单击“确定”两次。
  6. 单击“规则”选项卡,单击“编辑”,然后单击“身份验证方法”选项卡。
  7. 检查此选项卡上的设置。
如果记录的事件指示第二阶段快速模式失败,请在 IPsec 规则和 IPsec 策略属性中验证 IPsec 安全方法。为此,请按照下列步骤操作:
  1. 单击要验证的 IPsec 规则,单击“编辑”,然后单击“筛选器操作”选项卡。
  2. 单击启用的筛选器操作,单击“编辑”,然后检查设置。

使用 IP 安全监视器

可以使用 IP 安全监视器来监视安全关联、IPsec 统计信息和 IKE 统计信息。特别是可以使用 IP 安全监视器验证身份验证和安全关联是否成功。要启动 IP 安全监视器,请单击“开始”,单击“运行”,键入 ipsecmon,然后单击“确定”。

注意:默认情况下,IP 安全监视器会显示本地计算机的统计信息。要指定远程计算机,请单击“开始”,单击“运行”,键入 ipsecmon computer_name,然后单击“确定”。

“IP 安全监视器”对话框上方的分组框会显示活动的安全关联和活动策略的配置。左下方的分组框会显示以下 IPsec 统计信息:
  • 活动关联
    活动安全关联的数目。
  • 发送的保密字节
    使用封装式安全措施负载 (ESP) 安全协议(十进制 ID 50)发送的字节数。
  • 接收的保密字节
    使用 ESP 安全协议接收的字节数。
  • 发送的经过验证的字节
    启用了身份验证属性时发送的字节数。
  • 接收的经过验证的字节
    启用了身份验证属性时接收的字节数。
  • 损坏的 SPI 包
    安全参数索引 (SPI) 无效的数据包的数目。正数可能表示安全关联已过期或不再有效。

    在安全关联中,SPI 是唯一的标识值。使用此值,接收计算机便可以确定要用于处理数据包的安全关联。
  • 未解密的数据包
    接收 IPsec 驱动程序无法解密的数据包的数目。正数可能表示存在下列一个或多个问题:
    • 安全关联已过期
    • 安全关联不再有效
    • 验证未成功
    • 完整性检查未成功
  • 未验证的数据包
    未经 IPsec 驱动程序验证的数据包的数目。正数可能表示安全关联已过期或不再有效。IPsec 驱动程序必须具有安全关联中的信息,才能处理数据包。

    正数还可能表示两台计算机具有不兼容的身份验证设置。请验证每台计算机的身份验证方法是否相同。
  • 添加密钥
    ISAKMP/Oakley 机制发送到 IPsec 驱动程序的密钥的数目。正数表示已成功协商 ISAKMP 第二阶段安全关联。
ISAKMP/Oakley 统计信息位于右下方的窗格中。右下方的窗格会显示以下 ISAKMP/Oakley 安全机制统计信息:
  • Oakley 主模式
    在 ISAKMP 第一阶段建立的成功安全关联的数目。正数表示密钥信息交换成功。已验证标识且已建立公共密钥材料。
  • Oakley 快速模式
    在 ISAKMP 第二阶段建立的成功安全关联的数目。正数表示数据传输期间有关保护服务的协商已成功。
  • 软关联
    导致计算机仅同意明文数据传输的 ISAKMP 第二阶段协商的数目。明文数据传输不涉及加密或数据包签名。
  • 验证失败
    计算机标识验证不成功的次数。如果此数为正数,请验证每台计算机的身份验证方法设置是否兼容。正数还可能表示安全关联已过期。
  • IPsecmon 配置
    允许调整数据更新频率的可配置选项。
IP 安全监视器还指示是否启用了 IP 安全。此信息位于“IP 安全监视器”对话框的右下方分组框中。要重置 IP 安全监视器中的统计信息,请使用计算机管理 (Compmgmt.msc) 重新启动 IP 安全策略代理。

使用网络监视器

可以使用网络监视器分析以下内容:
  • 网络流量
  • IKE 交换协议
  • IPsec 协议
  • ESP 协议
  • 身份验证头 (AH)

获取 Oakley 日志

警告:注册表编辑器使用不当可导致严重问题,可能需要重新安装操作系统。Microsoft 不能保证您可以解决因注册表编辑器使用不当而导致的问题。使用注册表编辑器需要您自担风险。

已具备高级 IKE 知识的开发人员和网络管理员可通过修改注册表来获取 Oakley 日志。为此,请使用注册表编辑器找到下面的注册表子项。如果该子项不存在,请创建它。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent\Oakley
添加一项名为“EnableLogging”的 REG_DWORD 类型值。将此项的值设置为 1。当此项生效后,会在 %systemroot%\Debug 文件夹中创建 Oakley.log 文件。

注意:要关闭日志记录,请将 EnableLogging 项的值设置为 0。

使用 Netsh 命令

对于 IPsec 数据包上发生 IP 卸载的情况,可以使用 Netsh 命令解决相关问题。当网卡而非 CPU 执行 IP 功能时,将发生 IP 卸载。例如,当网卡执行校验和计算或执行数据包加密和解密时,会发生 IP 卸载。IP 卸载会导致 IPsec 驱动程序丢弃数据包。要确定接口是否可以执行 IP 卸载,请按照下列步骤操作:
  1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
  2. 在命令提示符处,键入 netsh int ip show offload,然后按 Enter。
此命令会显示接口的卸载能力。但是,此命令不会显示统计信息。要查看统计信息,请使用 IP 安全监视器来监视收到的保密字节。可以使用这些统计信息确定是丢失还是接收了数据包。

要禁用 IP 卸载,请按照下列步骤修改注册表:
  1. 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
  2. 找到并单击下面的注册表子项:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\IPSEC
    如果未显示 EnableOffload 项,请执行下列步骤创建该项:
    1. 右键单击“IPSEC”,指向“新建”,然后单击“DWORD 值”。
    2. 键入 EnableOffload 以命名新值,然后按 Enter。
    3. 双击“EnableOffload”。
    4. 键入 0,然后按 Enter。
如果您正在进行故障排除的 IP 连接成功,则说明该问题是由 IP 卸载导致的。

事件日志

安全事件日志中可能会记录以下事件:
  • 信息事件 279
    来源: PolicyAgent
    类别: 无
    此事件指示以下内容:
    • IPsec 策略是否有效
    • IPsec 策略的来源
    • Active Directory 轮询间隔(如果策略的来源是域)
    此外,如果已更改 IPsec 策略,则事件文本会包括“更新 Ipsec 策略”。
  • 错误事件 284
    来源: PolicyAgent
    类别: 无
    此事件指示 IP 安全策略代理无法为计算机所属的域联系 Active Directory。
  • 审核事件 541
    来源: Security
    类别: 登录/注销
    此事件指示已建立 IPsec 硬安全关联。尚未审核软安全关联。
  • 审核事件 542
    来源: Security
    类别: 登录/注销
    此事件指示 IPsec 安全关联已结束。已结束的安全关联可能是硬安全关联,也可能是软安全关联。
应用程序事件日志中可能会记录以下事件。应用程序事件日志中包括来自 ISAKMP/Oakley 的消息。以下事件指示 Windows 2000 的国内版本尝试协商高于导出客户端可支持的安全性级别。
  • 警告事件 541
    来源: Oakley
    类别: 无
    此事件指示导出客户端无法生成内部强度的密钥材料。因此产生的协商仅允许导出强度的密钥材料。
  • 警告事件 542
    来源: Oakley
    类别: 无
    此事件指示导出客户端无法执行比数据加密标准 (DES) 更严格的加密。如果其他计算机可以支持 DES,则产生的协商仅允许 DES。

一般疑难解答

对事件查看器中的消息“bad SPI”进行疑难解答

下列情况下会记录消息“bad SPI”:
  • 如果将密钥寿命值设置得过低
  • 如果发件人在安全关联过期后,仍继续向收件人传输数据
在收到新的安全关联后,必须在新的安全关联上进行数据传输。不过,如果您与滞后的响应程序通信,则该响应程序可能会收到它无法识别的受 IPSed 保护的数据。该响应程序会将其无法识别的 SPI 视为“损坏的 SPI”。要确定并更正该问题,请使用 IP 安全监视器检查重新生成的密钥的数目。请考虑连接已活动了多久。如果重新生成的密钥的数目非常大,请在策略中配置更长的密钥寿命。高流量以太网连接的可接受值大于 50 MB,且大于 5 分钟。

配置更大的值可能无法阻止出现损坏的 SPI。不过,配置更大的值可以明显降低损坏的 SPI 的数目。通常,Windows 2000 Server 会记录事件 4268,以指示因 SPI 损坏而导致丢弃数据包。

如果 IP 安全监视器指示未建立受保护的安全关联,则未受保护的安全关联可能会阻止建立受保护的安全关联。

注意:受保护的安全关联也称为安全关联。未受保护的安全关联也称为安全关联。

在某台对等计算机上运行 IP 安全监视器。如果存在安全关联,且安全设置为“无”,则表明存在未受保护的安全关联。只要定期发送通信,未受保护的安全关联就仍保留在计算机上。要防止出现这种情况,请停止所有通信,直到安全关联超时为止。通常,安全关联会在 5 分钟内超时。使用 IP 安全监视器确保不再建立安全关联,然后再次开始通信。如果各个策略之间是兼容的,那么就会自动建立受保护的安全关联。重新启动策略代理,以删除所有未受保护的安全关联。

如果已删除 IPsec 组件所需的文件,请重新安装 IPsec 组件,方法是先删除 TCP/IP 网络协议,然后重新安装该协议。IPsec 组件所需的文件包括:
  • ISAKMP/Oakley
  • IPsec 策略代理
  • IPsec 驱动程序
重新安装 TCP/IP 时会重新安装 IPsec 组件。

IPsec 协商可能会因不兼容的 IPsec 策略设置而失败。检查参与协商的每台计算机上的安全事件日志。最近的事件可能会记录执行 Oakley 协商的尝试。这些事件可能会包括成功或失败的说明。

验证每台计算机上策略的完整性。要确定策略不匹配的原因,请按照下列步骤操作:
  1. 确保身份验证方法是兼容的。
  2. 确保已正确配置了至少一个兼容的安全方法。
  3. 如果使用 IPsec 隧道,请确保隧道终结点设置正确。还要确保终结点计算机运行正常。

    注意,隧道终结点设置包括 ISAKMP/Oakley、IPsec 策略代理和 IPsec 驱动程序的设置。
如果事件日志中出现“错误的 IPsec 策略位置”,请检查策略代理日志中的最后几行。日志可能会指示曾使用过的策略的位置。如果未记录策略位置,请按照下列步骤操作:
  1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
  2. 键入下面的命令,然后按 Enter:
    findstr %systemroot%\ipsecpa.log
    注意:此命令区分大小写。
该日志会指示所使用的是组策略设置还是本地计算机策略设置。

重新启动策略代理

当重新启动策略代理时,将删除旧的或未受保护的安全关联。如果 IP 安全监视器未显示任何安全协商,请重新启动策略代理。如果要从域或策略存储下载策略,也请重新启动策略代理。

验证策略的完整性

Active Directory 假定最近的更改是最新的。但是,如果多个管理员同时尝试更改一个策略,则策略组件之间的链接可能会损坏。策略完整性检查通过在所有 IPsec 策略中验证链接来解决此问题。在对策略做任何修改之后,请运行完整性检查。要测试 IPsec 策略完整性,请按照下列步骤操作:
  1. 单击“开始”,单击“运行”,键入 secpol.msc,然后单击“确定”。
  2. 右键单击“本地计算机上的 IP 安全策略”,指向“所有任务”,然后单击“检查策略完整性”。

查看 IPsec 驱动程序和策略代理注册表设置

IPsec 驱动程序的设置位于下面的注册表子项中:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPsec
可以修改下列各项的值:
  • SAIdleTime

    此 REG_DWORD 项可配置安全关联空闲计时器。默认值是 300 秒。可以指定 300 到 3600 秒之间的值。
  • CacheSize

    此 REG_DWORD 项可配置基于 IP 标头的缓存大小。默认值是 64 KB。可以指定 64 到 1024 KB 之间的值。
  • SAHashSize

    此 REG_DWORD 项可配置 SPI 的大小。它还可配置入站安全关联的目标表。默认值是 64 KB。可以指定 64 到 1024 KB 之间的值。
策略代理的设置位于下面的注册表子项中:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent
可以修改下列各项的值:
  • Debug

    数据类型为 REG_DWORD。默认值是“0”。值为“1”会打开日志记录。打开日志记录后,会在 %system root%\Debug 文件夹中创建 Ipsecpa.log 文件。
  • Log

    数据类型为 REG_SZ。此项可指定当“Debug”项设置为“1”时要打开的日志文件的名称。
全局 IPsec 策略引用位于下列注册表子项中:
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent\Policy\GPTIPSECPolicy
  • HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\IPsec\GPTIPSECPolicy
  • HKEY_CURRENT_USER\SOFTWARE\Microsoft\GroupPolicyObjects\{GUID}Machine\Software\Policies\Microsoft\Windows\IPsec\GPTIPSECPolicy
  • HKEY_CURRENT_USER\SOFTWARE\Microsoft\GroupPolicyObjects\{GUID}Machine\System\CurrentControlSet\Services\PolicyAgent\Policy\GPTIPSECPolicy
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\IPsec\GPTIPSECPolicy

参考

231585 Windows 2000 中使用 IPSec 的安全 IP 通讯概述
有关第 2 层隧道协议 (L2TP)/IPSec 连接的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
248750 为 L2TP/IPSec 创建的 IPSec 策略的说明

属性

文章编号: 257225 - 最后修改: 2007年10月12日 - 修订: 7.1
这篇文章中的信息适用于:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Datacenter Server
关键字:?
kbinfo kbtshoot kbipsec kbnetwork KB257225
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