IPSec VPN配置总结

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

IPSec VPN配置总结

近段时间,笔者完成了一些IPSec VPN的配置,有站点到站点固定公网IP地址的IPSec VPN,有站点到站点使用固定公网IP地址的EZVPN,有网络中心点是固定公网IP地址,而分支机构是动态地址的DMVPN,有路由器和防火墙之间互联的IPSec VPN,也有不同厂商的设备之间互联的IPSec VPN。通过这些项目的锻炼,笔者感到对IPSec VPN的了解又增进了一步,以前一些模糊的地方,经过这次项目的实践之后也越来越清晰,以下就是笔者对IPSec VPN配置的总结和配置实例。

一、理解IPSec VPN

VPN是利用公共网络建立一条专用的通道来实现私有网络的连接,IPSec VPN 就是利用IPSec协议框架实现对VPN通道的加密保护。IPSec工作在网络层,它能在IP层上对数据提供加密、数据完整性、起源认证和反重放保护等功能。

加密的作用就是通过将数据包加密,保证数据的安全,即使数据包被人监听获取到,也无法阅读数据内容。

IPSec使用的数据加密算法是对称密钥加密系统。支持的加密算法主要有:DES、3DES、MD5和SHA加密算法,这种加密算法需要一个共享的密钥执行加密和解密,共享的密钥是通过通信两端交换公钥,然后用公钥和各自的私钥进行运算,就得到了共享的密钥,这样就需要一个公钥交换的算法。DH密钥协议就是一种公钥交换方法。DH密钥交换协议有组1到组7的几种不同的算法。DES和3DES支持组1和2,AES支持组2和5,因此如果选用了不同的加密算法,就需要选择相应的DH密钥交换算法。

数据完整性的作用就是保证数据包在传输的过程当中没有被篡改。

为了保证数据的完整性,给每个消息附加一个散列数,通过验证发送的散列数和接收的散列数是否匹配来判断消息是否被修改。散列消息验证代码(HMAC)

主要有两种算法:HMAC-MD5和HMAC-SHA-1,MD5使用128位的共享密钥,而SHA使用160位密钥,因此HMAC-SHA-1比HMAC-MD5的加密强度要更高一些。

起源认证的作用就是保证发送数据包的源站点是可信的。

起源认证用来在建立隧道时验证隧道两端的对等体是否是可信的。主要有预共享密钥,RSA签名、RSA-加密nonces三种方法。其中预共享密钥配置起来最简单,但安全性和扩展性也相对来说要差一些。预共享密钥就是在每个对等体上都预先配置好相同的密钥,经过运算之后发送到远端的对等体,由于每个对等体的密钥相同,因此就能够通过起源认证。另外两种认证方法配置较为复杂,需要和证书服务器配合起来使用,笔者没有这方面的实践,因此后面的配置实例中都是采用的预共享密钥的配置。

反重放保护的作用就是保证数据包的唯一性,确定数据包在传输过程中没有被复制。

在IPSec的数据包中含有一个32位的序列数,并且是不能重复的,接收方通过检查序列数是否是唯一的来执行反重放保护功能。

IPSec协议簇主要包括两种协议:AH(认证头)和ESP(封装安全有效载荷)。其中AH不提供加密功能,而ESP两者都提供。当使用ESP进行加密和认证的时候,执行顺序是先加密再认证。将这两种协议应用到IP数据包时有两种模式,分别是隧道模式和传输模式。隧道模式将一个新的IP头附加在已加密的数据包之前,为整个数据包提供安全性;而传输模式下原数据包的IP头不变,保持明文,只对数据包的内容提供安全性。

IPSec的建立有两个阶段,第一个阶段主要是认证对等体,并协商策略。如确定建立IPSec隧道所需用到的安全参数,主要有加密的算法、对等体的认证、保证消息完整性的散列算法和密钥交换的算法,在协商成功后建立一条安全通道。

第二个阶段主要是协商IPSec的参数和IPSec变换集,如确定使用AH还是ESP协议,使用传输模式还是隧道模式。协商成功后建立IPSec SA(安全关联),保护IPSec隧道的安全。

在笔者所配置的IPSec VPN中,都统一采用下列参数:

阶段一:

加密算法采用3DES;

保证数据完整性的算法采用HMAC-SHA-1;

起源认证采用预共享密钥;

密钥交换采用DH组2;

阶段二:

采用ESP协议提供对整个数据包的保护,并同时使用加密和认证,加密算法采用3DES,认证算法采用HMAC-SHA-1

使用模式采用隧道模式。

二、配置实例及说明

1.用路由器实现站点到站点的IPSec VPN

以笔者单位的网络拓扑结构为例来说明使用路由器实现站点到站点的IPSec VPN的配置。本例中总部和三个分公司都具有固定的公网IP地址,路由器型号为Cisco3845,拓扑如图一所示:

图1

总部路由器阶段一的配置:

ZB(config)#crypto isakmp policy 10 //建立一个新的密钥交换策略,优先级为10,优先级号是从1到100000,1的优先级最高ZB(config-isakmp)#encryption 3des //使用3DES的加密算法

ZB(config-isakmp)#authentication pre-share //使用预共享密钥认证对等体

ZB(config-isakmp)#hash sha //使用SHA散列算法,这一条配置命令可不用配置,因为默认的就是采用的这种散列算法ZB(config-isakmp)#group 2 //密钥交换算法采用DH密钥协议组2的算法

由于采用的是预共享密钥的方式认证对等体,因此需要回到全局配置模式下,指定对等体的密钥:

ZB(config)#crypto isakmp key cjgsvpn add 58.216.222.106 //密钥为cjgsvpn,然后分别指定三个分公司的路由器公网接口的IP地址

ZB(config)#crypto isakmp key cjgsvpn add 218.22.189.82

ZB(config)#crypto isakmp key cjgsvpn add 218.75.208.74

总部路由器阶段二的配置:

ZB(config)#crypto ipsec transform-set cjgsset esp-3des esp-sha-hmac //定义IPSec的转换集,转换集的名字为cjgsset,并指定采用ESP协议提供对整个数据包的加密和认证,加密采用3DES算法,认证采用SHA算法

ZB(cfg-crypto-trans)#mode tunnel //使用隧道模式,这条配置命令也可以不用配置,默认就是采用隧道模式IPSec的两个阶段配置完成后,接下来定义需要保护的数据类型,定义加密映射,并将加密映射映射到路由器的公网接口上:

ZB(config)#ip access-list extended cz //这里的几条访问列表定义要被保护的数据,即总部访问三个分公司的数据流。172.19.0.0/18

相关文档
最新文档