使用IPSec保护网络通信

IPSec术语
在执行以下指导步骤之前,确保您知道以下术语的含义:
身份验证:确定计算机的身份是否合法的过程。Windows2000IPSec支持三种身份验证:Kerberos、证书和预共享密钥。只有当两个终结点(计算机)都位于同一个Windows2000域时,Kerberos身份验证才有效。这种类型的身份验证是首选方法。如果计算机位于不同的域中,或者至少有一台计算机不在某个域中,则必须使用证书或预共享密钥。只有当每个终结点中包含一个由另一个终结点信任的颁发机构签署的证书时,证书才有效。预共享密钥与密码有着相同的问题。它们不会在很长的时间段内保持机密性。如果终结点不在同一个域中,并且无法获得证书,则预共享密钥是唯一的身份验证选择。


加密:使准备在两个终结点之间传输的数据难以辨认的过程。通过使用充分测试的算法,每个终结点都创建和交换密钥。该过程确保只有这些终结点知道密钥,而且如果任何密钥交换序列被拦截,拦截者不会得到任何有价值的内容。


筛选器:对Internet协议(IP)地址和协议的描述,可触发IPSec安全关联的建立。


筛选器操作:安全要求,可在通信与筛选器列表中的筛选器相匹配时启用。


筛选器列表:筛选器的集合。


Internet协议安全策略:规则集合,描述计算机之间的通讯是如何得到保护的。


规则:筛选器列表和筛选器操作之间的链接。当通信与筛选器列表匹配时,可触发相应的筛选器操作。IPSec策略可包含多个规则。


安全关联:终结点为建立安全会话而协商的身份验证与加密方法的集合。


在Microsoft管理控制台中查找IPSec
通过使用Microsoft管理控制台(MMC)配置IPSec。Windows2000在安装过程中创建一个带有IPSec管理单元的MMC。若要查找IPSec,请单击开始,指向程序,单击管理工具,然后单击本地安全策略。在打开的MMC中的左窗格中,单击本地计算机上的IP安全策略。MMC将在右窗格中显示现有的默认策略。


更改IP地址、计算机名和用户名
为了此示例的目的,假设Alice是一个计算机用户,该计算机名为"Alicepc"、IP地址为172.16.98.231,Bob的计算机名为"Bobslap",IP地址为172.31.67.244。他们使用Abczz程序连接他们的计算机。

通过使用Abczz程序互相连接时,Alice和Bob必须确保通信是被加密的。当Abczz建立其连接时,启动程序使用其本身上的随机高端口并连接(出于本示例中的目的)到6667/TCP或6668/TCP端口上的目标(其中,TCP是"传输控制协议"的缩写)。通常,这些端口用作Internet多线交谈(IRC)。因为Alice或Bob均可发起连接,所以该策略必须存在于两端。


创建筛选器列表
通过在MMC控制台中右键单击IP安全策略,可访问用于创建IPSec策略的菜单。第一个菜单项是"创建IP安全策略"。尽管此菜单似乎是要开始的位置,但却不应从此位置开始。在可创建策略及其相关规则之前,您需要定义筛选器列表和筛选器操作,它们是任何IPSec策略的必需组件。单击管理IP筛选器表和筛选器操作开始工作。

将显示带有两个选项卡的对话框:一个用于筛选器列表,另一个用于筛选器操作。首先,打开管理IP筛选器列表选项卡。已经有两个预先定义的筛选器列表,您不会使用它们。相反,您可以创建一个特定的筛选器列表,使其与要连接到的其他计算机对应。

假设您在Alice的计算机上创建策略:
单击添加创建新的筛选器列表。将该列表命名为"AbczztoBob'sPC"。


单击添加添加新筛选器。将启动一个向导。


单击我的IP地址作为源地址。


单击一个特定的IP地址作为目标地址,然后输入Bob的计算机的IP地址(172.31.67.244)。或者,如果Bob的计算机已在域名系统(DNS)或WindowsInternet名称服务(WINS)中注册,则可选择特定的DNS名,然后输入Bob的计算机名,Bobslap。


Abczz使用TCP进行通讯,因此单击TCP作为协议类型。


对于IP协议端口,单击从任意端口。单击到此端口,键入:6667,然后单击完成完成该向导。


重复上述步骤,但这次键入:6668作为端口号,然后单击关闭。


您的筛选器列表中包含两个筛选器:一个在端口6667(属于Bob)上用于从Alice到Bob的通讯,另一个在端口6668(属于Bob)上。(Bob在自己的计算机上设置了6667和6668两个端口:一个端口用于传出的通讯,另一个用于传入的通讯。)这些筛选器是镜像的,每次创建IPSec筛选器时通常都需要如此。对于已镜像的每个筛选器,该列表可包含(但不显示)与其正好相反的筛选器(即目标和源地址与其相反的筛选器)。如果没有镜像筛选器,IPSec通讯通常不成功。


创建筛选器操作
您已经定义了必须受到保护的通信的种类。现在,您必须指定安全机制。单击管理筛选器操作选项卡。列出三个默认操作。不要使用要求安全操作,您必须创建一个更严格的新操作。

若要创建新操作,请:
单击添加创建新筛选器操作。启动一个向导。将该操作命名为"EncryptAbczz"。


对于常规选项,单击协商安全,然后单击不和不支持IPsec的计算机通讯。


单击IP通信安全性为高选项,然后单击完成以关闭该向导。


双击新的筛选器操作(前面命名的"EncryptAbczz")。


单击清除接受不安全的通讯,但总是用IPSec响应复选框。这一步骤确保计算机在发送Abczz数据包之前必须协商IPSec。


单击会话密钥完全向前保密以确保不重新使用密钥资料,单击确定,然后单击关闭。


创建IPSec策略
您已经获得了策略元素。现在,您可以创建策略本身了。右键单击MMC的右窗格,然后单击创建IP安全策略。当向导启动时:
将该策略命名为"Alice'sIPSec"。


单击清除激活默认响应规则复选框。


单击编辑属性(如果未选中的话),然后完成该向导。该策略的属性对话框将打开。


为使IPSec策略有效,它必须至少包含一个将筛选器列表链接到筛选器操作的规则。

若要在属性对话框中指定规则,请:
单击添加以创建新规则。启动向导后,单击此规则不指定隧道。


单击局域网(LAN)作为网络类型。


如果Alice和Bob的计算机位于同一个Windows2000域中,单击Windows2000默认值(KerberosV5协议)作为身份验证方法。如果不在一个域中,则单击使用此字串来保护密钥交换(预共享密钥),然后输入字符串(使用您可记住的长字符串,不要有任何键入错误)。


选择前面创建的筛选器列表。在此示例中,该筛选器列表为"AbczztoBob'sPC"。然后,选择前面创建的筛选器操作。在此示例中,该筛选器操作为"EncryptAbczz"。


完成该向导,然后单击关闭。


配置其他终结点
在Bob的计算机上重复上述应用于Alice的计算机的所有步骤。显然要进行一些必要的更改,例如,"AbczztoBob'sPC"必须更改为"AbczztoAlice'sPC"。


指派策略
您已经在两个端点上定义了策略。现在,必须指派它们:
在本地安全设置MMC中,右键单击策略(在此示例中为Abczz)。


单击指派。


一次只能指派一个IPSec策略,但是一个策略可根据需要拥有多个规则。例如,如果Alice还需要通过使用不同的协议保护与Eve的通讯,则您必须创建相应的筛选器列表和操作,并向IPSec(属于Alice)添加一个规则,以便将特定的筛选器列表和筛选器操作链接起来。单击为此规则使用不同的共享密钥。Alice的策略现在有两个规则:一个用于与Bob进行Abczz通讯,另一个用于与Eve进行通讯。因为Bob和Eve无需安全地互相通讯,所以Bob的策略中未添加任何规则,Eve的策略中包含一个用于与Alice进行通讯的规则。

疑难解答
使用IPSecMon测试策略
Windows2000包括一个实用程序(IPSecMon.exe),它可用于测试IPSec安全关联是否已成功建立。若要启动IPSecMon,请:
单击开始,然后单击运行。


键入:ipsecmon,然后按ENTER键。


单击选项。


将刷新间隔更改为1。


必须在不同终结点之间建立通讯。可能会有一个延迟,这是由于终结点需要几秒钟时间来交换加密信息并完成安全关联。可在IPSecMon中观察此行为。当这两个终结点都建立了它们的安全关联,可在IPSecMon中观察到显示此行为的条目。

如果期望的安全协商没有建立,则返回并检查每个终结点上的筛选器列表。在您方便地将源地址和目标地址或端口反向时,确保已经收到所使用协议的正确定义。您可能要考虑创建一个指定所有通信的新筛选器列表。同样,可向使用此筛选器列表的策略添加一个新规则,然后禁用现有的规则。在两个终结点上执行这些步骤。然后,可使用ping命令测试连接性。ping命令在安全关联阶段可显示"NegotiatingIPsecurity"(正在协商IP安全),然后显示建立安全关联之后的正常结果。


NAT与IPSec不兼容
如果在两个终结点之间有任何网络地址转换(NAT),则IPSec不起作用。IPSec将终结点地址作为有效负载的一部分嵌入。在将数据包发送到电缆上之前进行数据包校验和计算时,IPSec也使用源地址。NAT可更改出站数据包的源地址,目标在计算自己的校验和时使用头中的地址。如果数据包中携带的用初始来源计算的校验和与用目标计算的校验和不符,则目标可丢弃这些数据包。不能将IPSec用于任何类型的NAT设备。


参考
有关Windows2000中IPSec的白皮书和详细的技术信息,请参阅以下MicrosoftWeb站点:
http://www.microsoft.com/windows2000/technologies/security/default.asp