用户使用IPsec通常是用来保护局域网内的通信安全,但是有时候用户不知道该怎么来确定网络通信受到确切的保护,所以这里就来教教用户如何来诊断IPsec,确保通信安全。
1. 检查IPsec是否在运行
即使你已经成功地部署了IPsec,还是会有很多地方出现问题。当你为Windows Server 2003或Windows XP机器上一般网络连接丢失而苦恼时,操作系统保证会让你知道出问题了。遗憾的是,没有类似的方法能让你始终了解IPsec的状态。依靠IPsec部署,当你有问题时,要么释放所有的网络连接,要么——可能性更大,并且更隐秘的是——网络通信得以继续,但是不再加密。想象一下当你相信自己受到保护,却发现你的网络通信根本不安全时会是多么震惊。
检查IPsec是否在运行的最快捷的方法是使用网络监视器捕捉进出你的计算机的数据包,并检查它们是否被加密。网络监视器是随Windows Server 2003一起提供的,你可以通过打开“控制面板”*“添加或删除程序”,添加/删除Windows组件来安装它。安装完之后,你可以从“捕获”菜单选择“开始”来开始包捕捉。然后,要制造一些网络行为,生成一些数据,执行诸如浏览另一台计算机上的一个共享文件夹的普通动作。最后,在“捕获”菜单下选择“停止并查看”。
图1显示了两个包捕捉的结果。左边是当计算机未配置使用IPsec时执行的包捕捉,你会看到在协议列中列出了多种协议。右边是在计算机配置使用IPsec时执行的包捕捉,你会看到只列出了一个协议:封装安全负载(Encapsulating Security Payload,ESP)协议。当一台Windows Server 2003计算机被配置为使用默认的IPsec策略时,只有ESP和因特网控制消息协议(Internet Control Message Protocol,ICMP)会出现在包捕捉中。因特网控制消息协议会出现是因为默认的IPsec策略允许ICMP通信。所以,如果在你捕捉网络通信时看到多种协议,你就有理由认为IPsec没有正常工作。
几乎所有IPsec问题的发生都是因为Internet密钥交换(Internet Key Exchange,IKE)阶段的验证困难。当两台计算机试图建立一个安全关联(security association,SA)时,它们要经历一个对彼此的身份进行验证的过程。IKE是协商建立安全关联的算法。身份验证基于预共享密钥、数字证书或Kerberos。默认的Windows Server 2003 IPsec策略使用Kerberos。在大多数实例中,对IPsec进行故障排除意味着排除验证过程的故障。
2.重新启动IPsec服务
你一旦确定IPsec未运行,应该首先尝试重新启动IPsec服务。重新启动IPsec服务会完全清除IKE协商状态。当策略发生重大变化以后IPsec变得不起作用时,这种方法通常能够使它重新发挥作用。这一方案的两个优势在于它无需重新启动服务器,并且实施起来耗时很少。你可以通过在Windows Server 2003计算机的命令提示符中运行如下的Net命令重新启动IPsec服务:
现在,再次执行网络包捕捉测试,或者运行我在后面将要谈到的Netsh命令进行测试。
3. 在事件日志中诊断IKE问题
如果重新启动IPsec不能解决问题,你可以转而检查安全事件日志。创建和删除安全关联的行为被审核为网络登录事件。如果你在审核登录事件策略中启用了对成功和失败的审核,这些事件就会被写入日志。当一切都正常运行时,出现的成功代码是541、542和543。但是,本文讨论IPsec未运行时你该怎么办,所以在我们的实例中,需要特别关注失败代码。图2显示了失败事件547。
安全关联事件日志的一个问题是该事件会很快充满你的日志。如果你专门审核登录事件,但又不想你的安全事件日志被IKE项充满,可以通过创建“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Audit\DisableIKE Audits”子键,并将其键值设置为1来禁止IKE审核。
对平常使用电脑的用户来说,IPsec可能对他们没什么多大的意义,但是对于一个公司或一个网管来说,IPsec是一个很重要的技术功能,能够确切地保护局域网内的通信安全,不被窃听。
……