asa防火墙ipsec lan-lan vpn综合案例解析

我们来介绍Router与ASA之间配置LAN-to-LANVPN,即Router-to-ASA LAN-to-LANVPN 来加深对防火墙以及ipsec LAN-to-LANVPN的理解

实验环境拓扑如下:

说明:我们下面需要以上图的环境来演示LAN-to-LANVPN的效果,其中两个远程公司的网络上海和北京,如R5与R4之间需要直接使用私有地址来互访,比如R5通过直接访问地址192.168.1.4来访问R4,而R2则相当于Internet路由器,R2只负责让R1与ASA能够通信,R2不会配置任何路由,R2不允许拥有上海与北京公司内部的路由10.1.1.0与192.168.1.0,在配置完LAN-to-LANVPN之后,最终上海与北京两个网络之间通过VPN隧道来穿越没有路由的R2来进行通信,实现在私网与私网之间穿越公网的通信。

1.配置基础网络环境

(1)配置R1:

r1(config)#intf0/0

r1(config-if)#ip add12.1.1.1 255.255.255.0

r1(config-if)#nosh

r1(config-if)#exit

r1(config)#intf0/1

r1(config-if)#ip add10.1.1.1 255.255.255.0

r1(config-if)#nosh

r1(config-if)#exit

r1(config)#ip route0.0.0.0 0.0.0.0 12.1.1.2

说明:配置R1的接口地址,并写默认路由指向Internet(路由器R2),地址12.1.1.2。

(2)配置R2:

r2(config)#intf0/0

r2(config-if)#ip add12.1.1.2 255.255.255.0

r2(config-if)#nosh

r2(config-if)#exit

r2(config)#intf0/1

r2(config-if)#ip add23.1.1.2 255.255.255.0

r2(config-if)#nosh

r2(config-if)#exit

说明:配置R2的接口地址,因为R2模拟Internet,R2只需要有公网路由12.1.1.0和23.1.1.0即可,所以R2不需要写任何路由,也不允许写任何路由。

配置ASA:

ciscoasa(config)# inte0/0

ciscoasa(config-if)# ipadd 192.168.1.3 255.255.255.0

ciscoasa(config-if)# noshut

ciscoasa(config-if)#nameif inside

INFO: Security level for"inside" set to 100 by default.

ciscoasa(config-if)#exit

ciscoasa(config)# inte0/1

ciscoasa(config-if)# ipadd 23.1.1.3 255.255.255.0

ciscoasa(config-if)# noshut

ciscoasa(config-if)#nameif outside

INFO: Security level for"outside" set to 0 by default.

ciscoasa(config-if)#

ciscoasa(config-if)#route outside 0 0 23.1.1.2

说明:配置ASA的接口地址,并写默认路由指向Internet(路由器R2),地址23.1.1.2。

2.测试基础网络环境

(1)测试R1到ASA的连通性:

r1#ping23.1.1.3

Type escape sequence toabort.

Sending 5, 100-byte ICMPEchos to 23.1.1.3, timeout is 2 seconds:

!!!!!

Success rate is 100percent (5/5), round-trip min/avg/max = 20/44/80 ms

r1#

说明:因为R1与ASA都有默认路由指向Internet(路由器R2),而R2与R1和ASA都是可达的,所以R1与ASA通信正常。

说明:因为R2模拟Internet路由器,所以R2没有写任何路由,R2的责任就只是保证R1与ASA能够通信即可。

3.配置LAN-to-LANVPN

(1)在ASA上配置IKE(ISAKMP)策略:

ciscoasa(config)# cryptoisakmp policy 1

ciscoasa(config-isakmp-policy)#encryption 3des

ciscoasa(config-isakmp-policy)#hash sha

ciscoasa(config-isakmp-policy)#authentication pre-share

ciscoasa(config-isakmp-policy)#group 2

ciscoasa(config-isakmp-policy)#exit

说明:定义了ISAKMP policy1,加密方式为3des,hash算法为sha,认证方式为Pre-Shared Keys(PSK),密钥算法(Diffie-Hellman)为group2。

(2)在ASA上定义认证标识:

ciscoasa(config)#tunnel-group 12.1.1.1 type ipsec-l2l

ciscoasa(config)#tunnel-group 12.1.1.1 ipsec-attributes

ciscoasa(config-tunnel-ipsec)#pre-shared-key cisco123

ciscoasa(config-tunnel-ipsec)#exit

说明:因为之前定义的认证方式为Pre-SharedKeys (PSK),所以需要定义认证密码,这里定义与peer12.1.1.1,即与R1的认证密码为cisco123,并且双方密码必须一致,否则无法建立IKESA。

(3)在ASA上配置IPsectransform:

ciscoasa(config)# cryptoipsec transform-set ccie esp-3des esp-sha-hmac

说明:配置了transform-set为ccie,其中数据封装使用esp加3des加密,并且使用esp结合sha做hash计算。

(4)在ASA上定义感兴趣流量:

ciscoasa(config)#access-list vpn permit ip 192.168.1.0 255.255.255.0 10.1.1.0255.255.255.0

说明:这里需要被IPsec保护传输的流量为北京公司至上海公司的流量,即192.168.1.0/24发往10.1.1.0/24的流量,切记不可使用any来表示地址。

(5)在ASA上创建cryptomap:

ciscoasa(config)# cryptomap l2l 1 match address vpn

ciscoasa(config)# cryptomap l2l 1 set peer 12.1.1.1

ciscoasa(config)# cryptomap l2l 1 set transform-set ccie

说明:在ASA上配置cryptomap为l2l,序号为1,即第1组策略,其中指定加密数据发往的对端为12.1.1.1,即和12.1.1.1建立IPsec隧道,调用的IPsectransform为ccie,并且指定ACLvpn中的流量为被保护的流量。

(6)在ASA上将cryptomap和ISAKMP策略应用于接口outside接口E0/1:

ciscoasa(config)# cryptomap l2l interface outside

ciscoasa(config)# cryptoisakmp enable outside

说明:将cryptomap和ISAKMP策略应用在去往上海公司的接口E1上。

(7)使用相同方式配置R1的LAN-to-LANVPN:

r1(config)#crypto isakmppolicy 1

r1(config-isakmp)#encryption3des

r1(config-isakmp)#hashsha

r1(config-isakmp)#authenticationpre-share

r1(config-isakmp)#group2

r1(config-isakmp)#exit

r1(config)#crypto isakmpkey  cisco123 address 23.1.1.3

r1(config)#crypto ipsectransform-set ccie esp-3des esp-sha-hmac

r1(cfg-crypto-trans)#exit

r1(config)#access-list100 permit ip 10.1.1.0 0.0.0.255 192.168.1.0 0.0.0.255

r1(config)#crypto mapl2l 1 ipsec-isakmp

r1(config-crypto-map)#setpeer 23.1.1.3

r1(config-crypto-map)#settransform-set ccie

r1(config-crypto-map)#matchaddress 100

r1(config-crypto-map)#exit

r1(config)#intf0/0

r1(config-if)#crypto mapl2l

r1(config-if)#exit

r1(config)#

*Mar 1 00:21:45.171:%CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON

r1(config)#

说明:R1与PIX的IKE和IPsec策略必须保持一致。

4.测试VPN

(1)从上海公司c2向北京公司c1发送流量:

r5#ping192.168.1.4

Type escape sequence toabort.

Sending 5, 100-byte ICMPEchos to 192.168.1.4, timeout is 2 seconds:

!!!!!

Success rate is 100percent (5/5), round-trip min/avg/max = 44/96/160 ms

说明:上海公司c2向北京公司c1发送的5个数据包,有5个成功穿越了Internet,说明该流量激活了IKESA,并且在双方应该成功建立了IPsec隧道,所以才实现了VPN的功能。需要注意的是,如果没有触发流量成功,请到对端发送流量触发。

说明:由于双方VPN配置正确且相同,所以VPN隧道已经成功转发双方的流量。

(3)查看R1上IKESA的peer:

r1#show crypto isakmppeers

Peer: 23.1.1.3 Port: 500Local: 12.1.1.1

Phase1 id:23.1.1.3

说明:R1已经成功与ASA建立IKEpeer,说明IKESA也应该成功建立,R1本地源地址为12.1.1.1,目标为23.1.1.3,目标端口号为500。

(4)查看R1上的IKESA(ISAKMPSA):

r1#show crypto isakmpsa

IPv4 Crypto ISAKMPSA

dst src state conn-idslot status

12.1.1.1 23.1.1.3QM_IDLE 1002 0 ACTIVE

IPv6 Crypto ISAKMPSA

说明:R1已经成功与ASA建立IKESA。

(7)查看ASA上IKESA的peer:

ciscoasa# show cryptoisakmp sa

Active SA: 1

Rekey SA: 0 (A tunnelwill report 1 Active and 1 Rekey SA during rekey)

Total IKE SA:1

1 IKE Peer:12.1.1.1

Type : L2L Role :initiator

Rekey : no State :MM_ACTIVE

ciscoasa#

说明:ASA上也看到已经成功与R1建立IKEpeer,说明IKESA也应该成功建立。

(8)查看ASA上的激活的隧道数:

ciscoasa# show cryptoisakmp stats

Global IKEStatistics

Active Tunnels:1

Previous Tunnels:2

In Octets:5012

In Packets:34

In Drop Packets:5

In Notifys:10

In P2 Exchanges:10

In P2 Exchange Invalids:0

In P2 Exchange Rejects:0

In P2 Sa DeleteRequests: 1

Out Octets:3648

Out Packets:24

Out Drop Packets:0

Out Notifys:16

Out P2 Exchanges:1

Out P2 ExchangeInvalids: 0

Out P2 Exchange Rejects:0

Out P2 Sa DeleteRequests: 1

Initiator Tunnels:1

Initiator Fails:0

Responder Fails:0

System Capacity Fails:0

Auth Fails: 0

Decrypt Fails:0

Hash Valid Fails:0

No Sa Fails:0

ciscoasa#

说明:如果已经与一方成功建立IKESA,那么在这里就需要看到至少1个活动隧道(ActiveTunnels)。

(9)查看ASA上的IPsecSA:

ciscoasa# show cryptoipsec sa

interface:outside

Crypto map tag: l2l, seqnum: 1, local addr: 23.1.1.3

access-list vpn permitip 192.168.1.0 255.255.255.0 10.1.1.0 255.255.255.0

local ident(addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0)

remote ident(addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0)

current_peer:12.1.1.1

#pkts encaps: 6, #pktsencrypt: 6, #pkts digest: 6

#pkts decaps: 7, #pktsdecrypt: 7, #pkts verify: 7

#pkts compressed: 0,#pkts decompressed: 0

#pkts not compressed: 6,#pkts comp failed: 0, #pkts decomp failed: 0

#pre-frag successes: 0,#pre-frag failures: 0, #fragments created: 0

#PMTUs sent: 0, #PMTUsrcvd: 0, #decapsulated frgs needing reassembly: 0

#send errors: 0, #recverrors: 0

local crypto endpt.:23.1.1.3, remote crypto endpt.: 12.1.1.1

path mtu 1500, ipsecoverhead 58, media mtu 1500

current outbound spi:F04751E8

inbound espsas:

spi: 0x1E66BA90(510048912)

transform: esp-3desesp-sha-hmac none

in use settings ={L2L,Tunnel, }

slot: 0, conn_id: 8192,crypto-map: l2l

sa timing: remaining keylifetime (kB/sec): (4274999/3502)

IV size: 8bytes

replay detectionsupport: Y

outbound espsas:

spi: 0xF04751E8(4031205864)

transform: esp-3desesp-sha-hmac none

in use settings ={L2L,Tunnel, }

slot: 0, conn_id: 8192,crypto-map: l2l

sa timing: remaining keylifetime (kB/sec): (4274999/3502)

IV size: 8bytes

replay detectionsupport: Y

ciscoasa#

说明:IPsecSA中显示了之前通了的包成功被IPsec加密,并且可以看出该SA为Active状态,同样,目前的IPsecmode工作在Tunnel模式。

5.测试NAT对LAN-to-LANVPN 的影响:

(1)在ASA上配置NAT:

ciscoasa(config)# global(outside) 1 interface

INFO: outside interfaceaddress added to PAT pool

ciscoasa(config)# nat(inside) 1 0.0.0.0 0.0.0.0

说明:在北京公司防火墙ASA上开启NAT,并且将所有内网流量通过NAT将源IP转换为外网接口E0/1(即outside口)的地址。

(2)从上海公司c2向北京公司c1发送流量:

c2#ping192.168.1.4

Type escape sequence toabort.

Sending 5, 100-byte ICMPEchos to 192.168.1.4, timeout is 2 seconds:

.....

说明:和预期一样,IPsec流量是不能穿越NAT的。

说明:北京公司到上海公司的流量也不能穿越NAT。

(4)配置ASA使北京公司到上海公司的流量绕过NAT:

ciscoasa(config)#access-listnonat extended permit ip 192.168.1.0 255.255.255.0 10.1.1.0255.255.255.0

ciscoasa(config)# nat(inside) 0 access-list nonat

说明:在NAT进程0的流量则不被NAT转换,所以北京公司到上海公司的流量不被NAT转换。

(5)再次从北京公司c1向上海公司c2发送流量:

r5#ping192.168.1.4

Type escape sequence toabort.

Sending 5, 100-byte ICMPEchos to 192.168.1.4, timeout is 2 seconds:

!!!!!

Success

rate is 100 percent(5/5), round-trip min/avg/max = 44/93/232 ms说明:因为配置了北京公司到上海公司的流量不被NAT转换,所以北京公司到上海公司的流量再次通过IPsecVPN隧道穿越了Internet。

说明:同上原因,上海公司到北京公司的流量再次通过IPsecVPN隧道穿越了Internet。

本文转自    探花无情   51CTO博客,原文链接:http://blog.51cto.com/983865387/1858615

上一篇:ipset-linux防火墙的扩展实现对指定ip的限制访问
下一篇:ubuntu系统下的防火墙使用