实例一 Cisco路由器实现L2L IPSec×××(——自明教教主)
拓扑图:
描述:
通讯点:PC1的1.1.1.1和Site2的2.2.2.2
加密点:Site1的202.100.1.1和Site2的61.128.1.1
要求:通信点间通过IPSEC ×××实现安全通信
PC1:
基础配置:
en
config t
no ip domain-lookup
line vty 0 15
logging synchronous
exec-timeout 0 0
password cisco
exit
接口配置:
int f0/0
ip add 10.1.1.10 255.255.255.0
no shut
int lo 0
ip add 1.1.1.1 255.255.255.0
end
路由配置:
config t
ip route 2.2.2.0 255.255.255.0 10.1.1.1 //只需配置去往Site2通讯点的路由。将去往远端通讯点的路由送往本地加密设备的内部端口。
Site1:
基础配置:
en
config t
no ip domain-lookup
line vty 0 15
logging synchronous
exec-timeout 0 0
password cisco
exit
接口配置:
int f0/0
ip add 10.1.1.1 255.255.255.0
no shut
int f1/0
ip add 202.100.1.1 255.255.255.0
no shut
end
ping 10.1.1.10
路由配置:
conf t
ip route 1.1.1.0 255.255.255.0 10.1.1.10 //解决去往本地通讯点的路由
ip route 61.128.1.1 255.255.255.255 202.100.1.10 //解决远端加密点路由
ip route 2.2.2.0 255.255.255.0 202.100.1.10 //远端通讯点路由。若不加此路由条目,路由器会直接丢弃去往远端通讯点的数据包。(1)当来自PC1的报文到达Site1的内部端口时首先会根据IP包头的源目地址查路由表(也就是该条路由)。(2)路由查到会企图通过外部端口送出。(3)因为该外部端口上配置有MAP,根据IP头信息匹配MAP的感兴趣流。(4)匹配上感兴趣流后会出发加密。(5)经过ESP封装,再次送往路由器查询路由表。(6)匹配上去往远端加密点的路由后再从外部接口送出,此时经过ESP封装的报文不匹配MAP的ACL,放行从外部端口送出。如下图:
配置L2L IPSec×××:
第一阶段,IKE(ISAKMP) SA:
激活ISAKMP:
Site1(config)#crypto isakmp enable //路由器可选,默认已经激活
配置ISAKMP SA:
Site1(config)#crypto isakmp policy 10 //此处如果直接exit则会集成默认配置
Site1(config-isakmp)#encryption 3des //指定加密算法
Site1(config-isakmp)#hash md5 //指定hash算法
Site1(config-isakmp)#authentication pre-share //指定认证方式
Site1(config-isakmp)#group 2 //指定DH算法为group2
Site1(config-isakmp)#exit
指定远端加密点和认证时用的预共享口令:
Site1(config)#crypto isakmp key 0 L2Lkey address 61.128.1.1
第二阶段,IPSEC SA:
配置感兴趣流:
Site1(config)#ip access-list extended vpn
Site1(config-ext-nacl)#permit ip 1.1.1.0 0.0.0.255 2.2.2.0 0.0.0.255
Site1(config-ext-nacl)#exit
配置IPSec策略:
Site1(config)#crypto ipsec transform-set Trans esp-des esp-md5-hmac //此处确定了感兴趣流实际的加密和认证算法
Site1(cfg-crypto-trans)#exit
配置Crypto map:
Site1(config)#crypto map cry-map 10 ipsec-isakmp //一个接口只能调用一个MAP,一个MAP可以有多个ID,一个ID表示一个×××
Site1(config-crypto-map)#set peer 61.128.1.1 //和谁建×××
Site1(config-crypto-map)#match address vpn //匹配什么流量
Site1(config-crypto-map)#set transform-set Trans //使用哪个转换集来处理
Site1(config-crypto-map)#exit
应用Crypto map至端口:
Site1(config)#int f1/0
Site1(config-if)#crypto map cry-map
Site1(config-if)#end
Internet:
基础配置:
en
config t
no ip domain-lookup
line vty 0 15
logging synchronous
exec-timeout 0 0
password cisco
exit
接口配置:
int f1/0
ip add 202.100.1.10 255.255.255.0
no shut
int f0/0
ip add 61.128.1.10 255.255.255.0
no shut
end
ping 202.100.1.1
Site2:
基础配置:
en
config t
no ip domain-lookup
line vty 0 15
logging synchronous
exec-timeout 0 0
password cisco
exit
接口配置:
int f0/0
ip add 61.128.1.1 255.255.255.0
no shut
int lo 0
ip add 2.2.2.2 255.255.255.0
no shut
exit
do ping 61.128.1.10
路由配置:
ip route 202.100.1.1 255.255.255.255 61.128.1.10 //远端加密点;
ip route 1.1.1.0 255.255.255.0 61.128.1.10 //远端通讯点;
do ping 202.100.1.1
配置L2L IPSec×××:
第一阶段,IKE(ISAKMP) SA:
Site2(config)#crypto isakmp enable
Site2(config)#crypto isakmp policy 10
Site2(config-isakmp)#encryption 3des
Site2(config-isakmp)#hash md5
Site2(config-isakmp)#authentication pre-share
Site2(config-isakmp)#group 2
Site2(config-isakmp)#exit
Site2(config)#crypto isakmp key 0 L2Lkey address 202.100.1.1
第二阶段,IPSEC SA:
配置感兴趣流:
Site2(config)#ip access-list extended vpn
Site2(config-ext-nacl)#permit ip 2.2.2.0 0.0.0.255 1.1.1.0 0.0.0.255
Site2(config-ext-nacl)#exit
配置IPSec策略:
Site2(config)#crypto ipsec transform-set cisco esp-des esp-md5-hmac
Site2(cfg-crypto-trans)#exit
配置Crypto map:
Site2(config)#crypto map cry-map 10 ipsec-isakmp
Site2(config-crypto-map)#set peer 202.100.1.1
Site2(config-crypto-map)#match address vpn
Site2(config-crypto-map)#set transform-set cisco
Site2(config-crypto-map)#exit
应用Crypto map至端口:
Site2(config)#int f0/0
Site2(config-if)#crypto map cry-map
Site2(config-if)#exit
验证:
PC1#ping 2.2.2.2 source 1.1.1.1 repeat 100
抓包截图:
查看ISAKMP SA:
Site1#show crypto isakmp sa
查看IPSec SA:
Site1#show crypto ipsec sa
检查活动的SA:
Site1#show crypto engine connections active
可见,一个正常的IPSEC SA包含一个双向的IKE SA(ISAKMP SA)和两个单向的IPSEC SA,其中一个用于加密一个用于解密。
检查一个IPSEC ×××是否正常,一般情况下使用show crypto engine connections active命令,能看到三个SA,并且加解密的数据包和PING通的数据包数量一致,基本上就无需再进一步验证了。
查看crypto会话:
Site1#show crypto session
可见:加密端口为f1/0,状态为ACTIVE;一个IKE
SA,本地和对端的IP地址和端口(500/UDP);两个IPSEC
SA的状态为ACTIVE,匹配的感兴流。
清除SAs:
清除IKE/ISAKMP SA:
Site1#clear crypto isakmp
清除IPSec SA:
Site1#clear crypto sa
再次查看: