本公司的好多标准成为此行的行业标准,刚开始公司机密资料(如图纸)都是经过特递,但是意外终于发生了,特递途中“丢失了”,后果可想而知……为防止公司机密外泄,故公司高层决定以后天津总部与上海分部之间的资料等都必须走×××,为此我特意研究了IPSec ×××―――路由器站点到站点×××(L2L ×××)和路由器远程访问×××(Easy ×××)
下面我们粗略了解哈Ipsec:
IP安全(IPSec),是一个标准框架,它在两个对等设备之间的网络层上提供下面几个安全特性:
(1)数据的机密性:
通过加密防止数据遭受窃听***;支持的加密算法有:DES、3DES和AES
(2)数据的完整性和验证:
通过HMAC功能来验证数据包没有被损坏,并通过一个有效的对等收到。即为了防止中间人***或者会话截获。支持的HMAC功能包括MD5和SHA-1 。
(3)抗回放检测:
通过在数据包中包括加密的序列号确保来自中间人***设备的抗回放***不能发生。
(4)对等体验证:
为了确保数据在两个对等体之间传递之前,对方就是:“它说它是”的设备。设备验证支持对称预共享密钥、非对称预共享密钥,以及数字证书。远程访问连接也支持使用XAUTH的用户认证,它是扩展认证的简写。
 下面是抽象后的拓扑图: (用GNS3做的实验)
clip_p_w_picpath002
一、路由器的基本配置:
1、在路由器R1上的基本配置:
R1#conf t
R1(config)#int s1/0
R1(config-if)#ip add 200.1.1.1 255.255.255.0
R1(config-if)#no sh
R1(config)#int f0/0
R1(config-if)#ip add 192.168.1.1 255.255.255.0
R1(config-if)#no sh
R1(config)#ip route 0.0.0.0 0.0.0.0 200.1.1.2
2、在路由器R2上的基本配置:
R2(config)#int s0/1
R2(config-if)#ip add 200.1.1.2 255.255.255.0
R2(config-if)#no sh
R2(config)#int s0/2
R2(config-if)#ip add 200.1.2.2 255.255.255.0
R2(config-if)#no sh
3、在路由器R3上的基本配置:
R3#conf t
R3(config)#int s1/0
R3(config-if)#ip add 200.1.2.1 255.255.255.0
R3(config-if)#no sh
R3(config)#int f0/0
R3(config-if)#ip add 192.168.2.1 255.255.255.0
R3(config-if)#no sh
R3(config)#ip route 0.0.0.0 0.0.0.0 200.1.2.2
二、路由器(R1、R3)上配置NAT:
1、在路由器R1上配置NAT:
R1(config)#int f0/0
R1(config-if)#ip nat inside
R1(config)#int s1/0
R1(config-if)#ip nat outside
R1(config-if)#exit
//当天津总部(192.168.1.0)访问上海分部(192.168.2.0)时的数据包不需要做地址转换,而是被加密,使用隧道模式,隧道会在IP包中添加新的包头。
R1(config)#access-list 100 deny ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
//除了走隧道外的所有流量都允许被NAT
R1(config)#access-list 100 permit ip any any
R1(config)#ip nat inside source list 100 interface s1/0 overload
2、在路由器R3上配置NAT:
R3(config)#int f0/0
R3(config-if)#ip nat inside
R3(config)#int s1/0
R3(config-if)#ip nat outside
R3(config-if)#exit
//当上海分部(192.168.2.0)访问天津总部(192.168.1.0)时的数据包不需要做地址转换,而是被加密,使用隧道模式,隧道会在IP包中添加新的包头。
R3(config)#access-list 100 deny ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255
//除了走隧道外的所有流量都允许被NAT
R3(config)#access-list 100 permit ip any any
R3(config)#ip nat inside source list 100 interface s1/0 overload
三、定义感兴趣流:
1、在R1上的配置:
R1(config)#access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
2、在R3上的配置:
R3(config)#access-list 101 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.25
四、配置IKE阶段1 主要是完成Key交换及对等体的认证:
在阶段1的连接中,至少定义下面的属性:
(1)设备验证的类型:预共享密钥、RSA加密的随机数,或者RSA签名(数字证书);
(2)HMAC功能:MD5或者SHA-1;
(3)加密算法:DES、3DES或者AES;
(4)Diffe-Hellman(DH)组:1、2或者5;
(5)连接的生存周期:默认为86400秒。
1、在R1上的配置:
R1(config)#crypto isakmp policy 10
R1(config-isakmp)#authentication pre-share
R1(config-isakmp)#hash sha
R1(config-isakmp)#encryption 3des
R1(config-isakmp)#group 2
R1(config-isakmp)#exit
R1(config)#crypto isakmp key A1s2 add 200.1.2.1
//查看ISAKMP策略 clip_p_w_picpath004  
2、在R3上的配置:
R3(config)#crypto isakmp policy 10
R3(config-isakmp)#authentication pre-share
R3(config-isakmp)#hash sha
R3(config-isakmp)#encryption 3des
R3(config-isakmp)#group 2
R3(config-isakmp)#exit
R3(config)#crypto isakmp key A1s2 add 200.1.1.1
//查看ISAKMP策略
clip_p_w_picpath006
 
五、配置IKE阶段2 完成数据的加密协商:
在阶段2的连接中,至少定义下面的属性:
(1)什么样的流量需要被保护:支持加密的ACL;
(2)被保护的流量应当转发给谁:IPSec的对等体;
(3)流量是如何被保护的:传输集;
(4)对哪个对等体什么样的流量应当被保护:加密映射条目;
(5)是否完美转发密钥(PFS)应当被用于数据连接来共享新的密钥信息:DH组1、2或者5;
(6)数据连接的有效期限:默认为3600秒。
1、在R1上的配置:
//配置转换集且名字叫tj
R1(config)#crypto ipsec transform-set tj esp-3des esp-sha-hmac
2、在R3上的配置:
//配置转换集且名字叫sh 注:可以和R1上的转换集名一致,即tj
R3(config)#crypto ipsec transform-set sh esp-3des esp-sha-hmac
六、配置加密映射表:
1、在R1上的配置:
R1(config)#crypto map ***-map 10 ipsec-isakmp //创建映射表***-map且编号为10
R1(config-crypto-map)#set peer 200.1.2.1 //对等体的IP地址200.1.2.1
R1(config-crypto-map)#match address 101 //感兴趣流是ACL 101
R1(config-crypto-map)#set transform-set tj //变换集为前面定义的tj
2、在R3上的配置:
R3(config)#crypto map ***-map 10 ipsec-isakmp //创建映射表***-map且编号为10
R3(config-crypto-map)#set peer 200.1.1.1 //对等体的IP地址200.1.1.1
R3(config-crypto-map)#match address 101 //感兴趣流是ACL 101
R3(config-crypto-map)#set transform-set sh //变换集为前面定义的sh
七、在接口上应用加密映射表:
1、在R1上的配置:
R1(config)#int s1/0 //在路由器对外接口挂map
R1(config-if)#crypto map ***-map
R1(config-if)#
*Mar 1 01:17:51.519: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON
R1(config-if)#
2、在R3上的配置:
R3(config)#int s1/0 //在路由器对外接口挂map
R3(config-if)#crypto map ***-map
R3(config-if)#
*Mar 1 01:20:50.771: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON
R3(config-if)#
八、测试以上配置是否正确:
1、在PC1上ping PC2的IP地址:
现在可以ping通了,但是前面一般有1到2包超时,这是因为第一个ping包是感兴趣的流量触发×××,而×××的建立需要时间,当建立后就ping通了。
clip_p_w_picpath008
 
我们在R1上查看连接状态是否为active ,请看下图:
clip_p_w_picpath010
 
在R1上,用sh access-list查看,如下图所示:
clip_p_w_picpath012
 
在R1上,用sh crypto ipsec sa查看,请看下图: 
clip_p_w_picpath014
2、思考 :
(1) 在PC2上ping PC1的IP地址
(2) 在R3上查看连接状态是否为active
(3) 在R3上,用sh access-list查查看
(4) 在R3上,用sh crypto ipsec sa查查看