1-IPSEC理论
http://down.51cto.com/data/2112582
2-IPSEC LAN To LAN VPN
具体的我不介绍了,网上太多
R1(config)#crypto isakmp policy 100
R1(config-isakmp)#encryption 3des
R1(config-isakmp)#hash sha
R1(config-isakmp)#authentication pre-share
R1(config-isakmp)#group ?
1 Diffie-Hellman group 1
2 Diffie-Hellman group 2
5 Diffie-Hellman group 5
R1(config-isakmp)#group 1
R1(config-isakmp)#lifetime 60
R1(config-isakmp)#exit
R1(config)#crypto ipsec transform-set cisco ah-md5-hmac
R1(cfg-crypto-trans)#?
Crypto transform configuration commands:
default Set a command to its defaults
exit Exit from crypto transform configuration mode
mode encapsulation mode (transport/tunnel)
no Negate a command or set its defaults
R1(cfg-crypto-trans)#mode tunnel
R1(config)#access-list 100 permit ip 14.1.1.0 0.0.0.255 35.1.1.0 0.0.0.255
R1(config)#crypto map cisco1 100 ipsec-isakmp
\\100为Sequence to insert into crypto map entry
% NOTE: This new crypto map will remain disabled until a peer
and a valid access list have been configured.
R1(config-crypto-map)#match address 100
R1(config-crypto-map)#set peer 23.1.1.3
R1(config-crypto-map)#set transform-set cisco
R1(config-crypto-map)#set security-association lifetime seconds 6000
R1(config)#int s1/0
R1(config-if)#crypto map cisco1
R1(config)#crypto isakmp key cisco address 23.1.1.3
Show 命令:
Show crypto iskamp sa / detail
Show Crypto IPSEC sa
R1#show crypto engine connections active
Crypto Engine Connections
ID Type Algorithm Encrypt Decrypt LastSeqN IP-Address
5 IPsec MD5 0 623 623 12.1.1.1
6 IPsec MD5 623 0 0 12.1.1.1
R1#show crypto session
Crypto session current status
Interface: Serial1/0
Session status: UP-NO-IKE
Peer: 23.1.1.3 port 500
IPSEC FLOW: permit ip 14.1.1.0/255.255.255.0 35.1.1.0/255.255.255.0
Active SAs: 2, origin: crypto map
R1#clear crypto isakmp \\清除命令
R1#clear crypto sa
Debug crypto iskamp / ipsec
3-IPSEC ACL
入方向:
挂在接口 s1/0 in方向 : access –list permit esp / permit udp (500)/ permit ahp流量
Crypto map xxxx \\这个是cypto map ACL
Set ip access-group 102 in
出方向:
4-IPSEC over GRE
R1与R3身后的路由是不能跑动态路由协议的,所以用ipsec over gre来解决这个问题
且它只加密R1与R3身后的流量
R2(config)#ip route 10.1.1.0 255.255.255.0 f0/1
R2(config)#ip route 10.1.2.0 255.255.255.0 f1/0
R1(config)#int tunnel 13
R1(config-if)#no shut
R1(config-if)#ip add 192.168.1.1 255.255.255.252
R1(config-if)#tunnel source f0/1
R1(config-if)#tunnel destination 200.1.1.2
R1(config)#ip route 10.1.2.0 255.255.255.0 Tunnel13
R3#sh run int tunnel 13
Building configuration...
Current configuration : 130 bytes
!
interface Tunnel13
ip address 192.168.1.2 255.255.255.252
tunnel source FastEthernet1/0
tunnel destination 100.1.1.1
R3(config)#ip route 10.1.1.0 255.255.255.0 Tunnel13
配置关键点:
1)两端的隧道地址要处于同一网段;
2)不要忘记配置通过tunnel访问对方私网的路由。
验证GRE配置成功否
R5#traceroute 10.1.1.4
Type escape sequence to abort.
Tracing the route to 10.1.1.4
1 10.1.2.3 84 msec 64 msec 20 msec
2 192.168.1.1 80 msec 96 msec 84 msec
3 10.1.1.4 80 msec * 112 msec
注意:不要把公网也就是GRE tunnel源,目地地址放入动态路由协议里面宣告,否则会出现tunnel与动态路由时up,时down的情况。因为gre tunnel的建立是靠默认路由,而动态路由又是通过GRE隧道学到的,如果把静态默认路由宣告后,那么R1学到10.1.1.0是从tunnel0口出去了,gre tunnel的建立原本是从默认路由走fa0/0出去的而现在却是去tunne0(路由表最长匹配原则),然后默认路由失效,这显然是矛盾的,路由器会找不到方向,,这样gre tunnel会导致tunnel建立超时,会down掉,那么自然而然基于gre tunnel的动态路由协议也会down掉,这时动态路由还没起来,而GRE tunnel隧道的建立使用的默认路由又可以匹配了,此时tunnel 又建立,动态路由也起来了,这样会一直up&down下去。
R1(config)#crypto isakmp policy 10
R1(config-isakmp)#authentication pre-share
R1(config-isakmp)#exit
R1(config)#crypto isakmp key cisco123 add 200.1.1.2
R1(config)#crypto ipsec transform-set yeslab esp-des esp-sha-hmac
R1(cfg-crypto-trans)#mode tunnel
R1(cfg-crypto-trans)#exit
R1(config)#crypto map fuyi 10 ipsec-isakmp
R1(config-crypto-map)#set peer 200.1.1.2
\\crypto map fuyi local-address lo 0
\\如果设置peer为环回口则需要敲入这条命令
R1(config-crypto-map)#set transform-set yeslab
R1(config-crypto-map)#match address 100
R1(config-crypto-map)#exit
R1(config)#access-list 100 per ip 10.1.1.0 0.0.0.255 10.1.2.0 0.0.0.255
/IKE第一阶段需要核实远程对等体的身份,然后建立一个安全的已验证的通道进行通信。IKE第一阶段的协商有:采用加密和散列算法保护自身的技术、采用预共享/公钥加密/数字签名的验证方法、采用(Diffe-Hellman组)会话密钥生成参数。/IKE第一阶段协商后,建立一个双向的ISAKMP/IKE SA进行通信。
/IKE第2阶段可以保护用户数据并建立IPSEC的SA。IKE第2阶段的协商有:采用ESP/AH保护套(封装协议)、保护套的算法(采用DES、3DES、AES、SHA)、正在受保护的网络或IP流量、协商协议的可选密钥材料。IKE第2阶段协商结束后,IKE建立两个单向IPSEC SA,用于用户数据处理(一个发送用户数据、另一个接收加密数据)。
未加密前:
加密后:
R1(config)#int tunnel 13
R1(config-if)#crypto map fuyi
R1#sh crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst src state conn-id status
200.1.1.2 100.1.1.1 QM_IDLE 1001 ACTIVE
R1#show crypto ipsec sa
interface: Tunnel13
Crypto map tag: fuyi, local addr 100.1.1.1
protected vrf: (none)
local ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (10.1.2.0/255.255.255.0/0/0)
current_peer 200.1.1.2 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 8, #pkts encrypt: 8, #pkts digest: 8
#pkts decaps: 8, #pkts decrypt: 8, #pkts verify: 8
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 1, #recv errors 0
local crypto endpt.: 100.1.1.1, remote crypto endpt.: 200.1.1.2
path mtu 1476, ip mtu 1476, ip mtu idb Tunnel13
current outbound spi: 0x554186D6(1430357718)
PFS (Y/N): N, DH group: none
再看抓包截图:
5- GRE Over IPSEC
针对GRE 流量,定义感兴趣流,这样就对整个流量包括R1/R3的身后流量和R1/R3动态路由协议的保护
GRE over ipsec 可以使用传输模式,因为通讯点和加密点是一样的(100.1.1.1 <-->200.1.1.2)。当然 Mode也可以为隧道模式
怎么去理解 gre over ipsec?
建立ipsec隧道,对ipsec隧道定义兴趣流为gre,只要是gre流量则使用ipsec加密,于是,只要是通过gre隧道的流量均会再次经过ipsec的处理,这就是 GRE over IPsec
试验基础在ipsec over gre上来进行修改
<step1>在R1 /R3上分别加一条感兴趣流
R1#sh access-lists
Extended IP access list 100
10 permit ip 10.1.1.0 0.0.0.255 10.1.2.0 0.0.0.255
Extended IP access list 101
10 permit ip 0.0.0.0 255.255.255.252 0.0.0.0 255.255.255.252
<step2> 在tunnel口下 关掉crypto map fuyi
R1(config)#interface tunnel 13
R1(config-if)#no crypto map fuyi
<step3>更改crypto map的兴趣流
R1(config)#crypto map fuyi 10 ipsec-isakmp
R1(config-crypto-map)#no match add 100
R1(config-crypto-map)#match add 101
<step4>调用在出接口上
R1(config)#int f0/1
R1(config-if)#crypto map fuyi
6-IPSEC NAT
AH会对IP 头部做个一个hash无法穿越NAT
ESP Transport模式无法穿越,因为不会产生新的ip头部
关闭NAT穿越:no crypto ipsec nat-tra udp-en
模拟NAT穿越是开启的.
.
定义感兴趣流:
R1#sh access-lists
Extended IP access list 101
10 permit ip host 10.1.1.4 host 10.1.2.5 (9 matches)
R1#sh run | se cry
no service password-encryption
crypto isakmp policy 10
authentication pre-share
crypto isakmp key cisco123 address 200.1.1.2
crypto ipsec transform-set yeslab esp-des esp-sha-hmac
crypto map fuyi 10 ipsec-isakmp
set peer 200.1.1.2
set transform-set yeslab
match address 101
\\接口f0/1下调用
crypto map fuyi
R2#sh run | se ip nat
ip nat inside <f0/1>
ip nat outside<f1/0>
ip nat inside source list 100 interface FastEthernet1/0 overload
R2#sh access-lists
Extended IP access list 100
20 permit ip host 100.1.1.1 host 200.1.1.2 (6 matches)
R3#sh run | se cry
no service password-encryption
crypto isakmp policy 10
authentication pre-share
crypto isakmp key cisco123 address 200.1.1.1 \\注意peer地址
crypto ipsec transform-set yeslab esp-des esp-sha-hmac
crypto map fuyi 10 ipsec-isakmp
set peer 200.1.1.1 \\注意peer 地址
set transform-set yeslab
match address 101
crypto map fuyi
试验结果:
原理可以参考:
http://wenku.baidu.com/view/7560dd3210661ed9ad51f356.html
原试验可以在我下载中心下载到,
模拟试验可以在我的百度云盘下载到
http://pan.baidu.com/s/1v27eu
本文转自 bilinyee博客,原文链接: http://blog.51cto.com/ericfu/1708675 如需转载请自行联系原作者