sunzhen的专栏

为生活,来不及疲倦。

建立最简单的点对点IPSec隧道

对于需要加密的网络通讯,有很多种选择,比如各种VPN: L2TP/IPSec VPN, PPTP, SSL


下面实现的是一个最简单的点对点IPSec隧道,简单的以至于好像网上都找不大着。。。可能我找的不大对,L2TP和各种VPN网关的倒是找到不少。。。

这种方式就是通过设定本机IP安全策略,对进出本机中的特定的网络通信,进行安全协商,并建立IPSec隧道来实现安全通信。
而安全协商的过程,就是在规则启用后,发出的第一个包自动开始。


下面是具体步骤。。。

参考:http://support.microsoft.com/kb/816514

----------------------

1. 两台PC (或者虚拟机):
PC1:OS:Windows 2003 Server,IP:172.16.31.49
PC2:OS:Windows XP,IP:172.16.31.50

2. 设置PC1的IP安全策略

(1)打开:控制面板--管理工具--本地安全策略--IP安全策略


(2)点击右键,选择“创建IP安全策略”,命名为“PC2PC”,点击下一步,取消“激活默认规则”,在下一步,取消选择“编辑属性”,完成。


(3)这时候在IP安全策略中,有一个新的策略,叫PC2PC。(如图1)。现在双击它,开始编辑属性。



(4)现在在“PC2PC属性”中添加IP安全规则,首先,去除“使用添加向导”,点击添加按钮。


(5)现在出现的是IP筛选列表,默认会有两个,(另外一些是我以前添加的)。现在我们点击添加按钮,新建一个名叫做“PC1toPC2”的筛选规则。


(6)现在在“IP筛选器列表”中,定义要处理的网络连接。我们现在是要处理从PC1发往PC2的包,所以,先去除“使用添加向导”,点击添加按钮,出现“IP筛选器属性”,在地址选项卡上,源地址选“我的地址”,目标地址选“一个特定的地址”,并填入PC2的地址,这时,注意去除底部的镜像选框。此外,在协议选项卡中,应该将协议设为“任意”。因为IPSec隧道不支持协议或端口特定的筛选器。
步骤4,5,6如图2:



 

(7)点两次确定,回到第(5)中的“IP筛选列表”,这时可以看到一个新的叫PC1toPC2的筛选规则。如图3。



 

(8)要筛选的包弄好后,就要开始选择操作啦,现在选“筛选器操作”选项卡,不使用向导,点击添加按钮,选择“协商安全”,然后添加安全措施,选择完整性和加密。整个过程如图4。当然,我们可以协商这个“筛选器操作”的名字,我这里写的是NeedIPSec。



 

(9)然后我们要设置身份验证方法,将自带的Kerberos删掉,添加一个预共享密钥的方法。如图5。这个验证方法是比较弱的。



(10)最后还有一步“隧道设置”,选择“隧道终点有此IP地址指定”,并填入这个筛选规则的目的地,就是PC2的地址,这里是“172.16.31.50”

最后,点确定,现在“PC2PC”策略中就有一个PC1toPC2的安全规则,如图6。



 

通过以上步骤,凡是从本机发出,到PC2,也就是172.16.30.50的包,都要经过上面所规定的“筛选器操作(NeedIPSec)”来进行处理。

------------好啦,现在我们完成四分之一了-------------------很汗。。。

上面这个规则,也就指定了PC1到PC2的包,应该怎么走,要怎么验证。
照着上面的方式,再在PC1上添加PC2toPC1的安全规则,步骤和上面的很像,就是第(5)步中新建筛选器列表,所填的源地址和目的地址要反过来。第(10)步的隧道设置要填自己的地址(因为现在所过处理的包是发向本机的)。

最后:如图7



 

------------好啦,现在我们完成二分之一了-------------------

同样的,要实现两方的安全通信,双方的规则必须是对应的。
那么在PC2上,也要添加上述的IP安全规则,注意验证方式要相同,预共享密钥也要相同。

最后,在两台机子上分别右键点击PC2PC安全策略,选择“指派”,也就是让其生效,那么我们可以看到在其图标的右下角有个绿点,说明已经生效。

这时,我们从PC1上ping PC2,结果如下:



 

可以看到,前一两个包的返回会是“Negotiating IP Security”,即协商IP安全策略。
在协商策略成功后,就会是正常的传输了。并且认证成功后不用再次协商。(应该再某些情形下还是会重新协商。。。比如把规则重新指派)

Wireshark抓包可以看到,协商的包和已经被加密的ping包。



 

另,有个命令行程序可以替代这个繁琐的图形化配置方法,xp下叫ipseccmd,在安装光盘里有,也可以从网上搜到。

呼。。。就为这个东西,折腾了好久。。。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭