SA事件记录有一个问题是这些事件很快会填满你的日志。如果你只是要监听登录事件而不想让安全事件填满IKE条目的话,你可以创建 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsaAuditDisableIKE Audits subkey然后把它的值设为1来停止IKE监听。
4.使用共享密钥认证
由于它是依靠共享字符串而不是诸如Kerberos或者证书那样更复杂的方法,共享密钥认证方法能够很有效的使IPsec工作起来。当然,如果你已经使用共享密钥,但还是出现故障的话,你应该核实一下每台计算机上事先共享的密钥是否匹配。如果你的事先共享密钥有错误,IPsec是不会工作的。
如果用共享密钥认证方法可以使IPsec工作,你就会知道该检查Kerberos或者证书认证机制了。在默认的IPsec策略中,从共享密钥认证方式切换到Kerberos安全认证方式需要执行以下几个步骤:
1.关闭所有的IPsec可能应用到的Active Directory(AD)服务
2.点击“开始”,“运行”,然后输入gpedit.msc来开始编辑本地策略。
3.进入路径 计算机配置系统设置安全设置IP安全策略的组策略对象编辑节点。
4.右键点击导致故障的策略然后选择”属性“
5.在规则标签中,选择过滤列表中“所有IP通信”,并点击“编辑”。
6.在“编辑规则属性”对话框中,选择“认证方法”标签然后单击“添加”来添加新的认证方法。
7.选择“使用该字符串发报”按钮并输入一个事先共享的密钥。然后单击“确定”。
8.使用“认证方法”标签中的“上移”按钮来把事先共享密钥移到列表顶端。
这些说明是假设你没怎么定制IPsec策略的。总的来说,你应当总是创建新的策略而不要编辑已经存在的策略。但是,在当前这种情况下,你只是添加一种认证方法,解决故障之后,可以将它降级。变换到共享密钥认证方法会显著的简化认证过程,所以它很有可能使IPsec对你的网络起作用。
5.确定哪种IPsec策略是有效的
IPsec不工作很有可能是因为网络上的计算机被指定了互补兼容的策略。例如,一个策略可能试图使用证书认证,然而其他策略则只接受共享密钥认证。有两种方法来确定当前主导的是哪种IPsec策略。第一种方法是用IP安全监听器。如图3所示,内置的微软管理平台(MMC)IP安全监听器替代了Windows2000的Ipsecmon.exe功能。它能确定当前计算机上哪种策略是起作用的。
第二种方法是运行Netsh命令 netsh ipsec dynamic show all|more 从命令行得到相同的信息。该命令将所有的IPsec信息放到剪切板上。你可以把该信息粘贴到文本文档中,如图4所示。在文本中,可以看到一个策略应用到了本地级别(例如,客户端:只响应)以及通过AD应用(例如,服务器:安全请求)。一旦你得到了这些信息,你就可以很快发现IPsec不工作的原因是:或者计算机没有指定策略,或者指定了不兼容的策略。解决策略不兼容问题之后,IPsec可能就正常工作了。
6.检查Kerberos认证的问题
Kerberos认证依靠AD。如果产生了Kerberos问题,很可能跟计算机帐户的问题有关。你可能需要重置计算机帐户的密码或者重启计算机帐户。如果继续有故障,可能就需要将Kerberos网络通信与域控制器(DC)上的IPsec隔离。运行命令 netsh ipsec dynamic set config ipsecexempt value=0Win2000容许Kerberos认证通信,但是Windows2003不容许。该Netsh命令强制Windows2003如Win2000一样操作。
7.检查证书认证的问题
如果基于证书的认证系统有问题,很大可能是如下三种情况之一:没有安装证书,证书过期,或者证书撤销列表(CRL)不完整。默认的IPsec证书有效期是2年,这对大多数忘了该有效期的组织来说都足够长了。不像一些证书模板,默认情况下,IPsec证书模板没有设置成自动注册模式。
确定证书认证到底是上述哪种问题的最简便方法就是打开本地计算机的证书存储器。你也可以使用内置MMC证书工具来请求一个新的IPsec证书。当你创建了内置MMC证书来检查已安装的IPsec证书的过期数据时,需要确认你选择了“计算机帐户”选项,如图5所示。如果选择的是“我的用户帐户”或者“服务器帐户”选项的话,你就无法在定位到该找的IPsec 证书。
从长远角度来看,最好的解决方法是创建一个支持自动注册(仅限于Windows2003 企业版)的新的IPsec模板。这样,IPsec证书就可以自动更新,并且只要你选择了自动更新选项你就不需要记住IPsec证书有效期是2年了。
证书正在使用时,IPsec检查CRL来确定证书是否已被废除。IPsec要花一定的时间来做这个检查,并且很有可能在得到结果之前,系统就被关闭了。可以运行 netsh ipsec dynamic set config strongcrlcheck 0 来取消CRL检查。
8.检查是否所有人都使用客户端策略
IPsec的新的管理员有时候对网络上的所有计算机都应用客户端(只响应)策略,然后纳闷为什么没有加密任何信息。对开始生效的IPsec来说,搭档中的一个需要请求使用IPsec的策略。如果所有的主机都指定的是客户端(只响应)策略,那么没有主机会请求使用IPsec。要解决该问题,可以在计算机上激活各种服务器策略中的一个,然后运行GPU更新。
9.检查IKE日志
如果所有的前述措施都没有解决IKE问题,你就不得不按照更详细的步骤来决定方案。这种情况下,你需要有互联网安全连接和密钥管理协议RFC 2408和IKE RFC 2409(ISAKMP)方面的更进一步的知识。运行 netsh ipsec dynamic set config ikelogging 1来开始追踪IKE的协商。可以将ikelogging的值增加至7(记录所有可能的数据)来增加记录下来的信息量。IKE跟踪日志位于%systemroot%DebugOakley.log,可以用文本编辑器来查看。需要注意的是,记录文档的内容很密集,刚接触IPsec的人很可能很快就受不了了。
慎用自定义
Windows2003带的IPsec策略是可以直接使用的。只有你自定义它们使用基于证书或者基于共享密钥的认证系统的时候,才会产生问题。如果需要修改IPsec的认证方法,你应该创建新策略而不是对已存在的策略进行修改。只要遵从这个建议,在调查各种突然出现的问题时,都能够迅速切换到起作用的配置上。