防火墙对VPN造成的影响

适用场景:

如图所求,一个企业接入互联网往往会使用一台防火墙,而VPN设备可能在这台防火墙身后,这样一来VPN流量就需要穿越防火墙,这可能会导致一些问题。

防火墙基本原理:

防火墙是分区域的,一般分为内网区域(Inside Zone)、外网区域(Outside Zone)和DMZ区域(DMZ Zone),然后进行策略管控。通常内网区域可以访问DMZ和外网区域,而外网区域不能主动访问内网和DMZ区域,需要手动放行策略。

目前市面上几乎所有防火墙的防火墙都是基于状态化包过滤的防火墙,即当一个会话中的数据包穿越防火墙再次返回的时候,防火墙是基于它的会话来进行放行的,只要有Outbound流量的会话就放行,并不会查看ACL。意思就是当一个内网的流量从内网接入进入防火墙,会产生一个会话,防火墙记录这个会话,然后数据包从外网接口转发出去,当这个数据包请求的信息再回来的时候防火墙不需要查看ACL,只要查看它的会话表,发现这个包是刚才发出去包的响应,就予以放行。

VPN流量穿越问题:

我们知道IPSec VPN的协商流量(即IKE的流量)是UDP500,而真实IPSec VPN流量通常是封装在ESP当中的,这就需要防火墙对这两种流量进行放行和检测。而防火墙(以思科ASA为例)默认是不检测ESP流量的,因此,当北京的路由器首先发起的VPN的时候,IKE顺利建立,但VPN真实流量无法通过,因为ESP的数据包有去无回;当上海的路由器首先发起VPN的时候,IKE也不能建立,因为防火墙没有放行。

实验

下面通过实验来说明上述问题并进行解决:

拓扑图如下:

实验介绍:

R1和ASA模拟北京总部的设备,R2模拟互联网的路由器,R3模拟上海分站的路由器。ASA是一台防火墙接入互联网,R1和R3建立一个站点到站点的IPSec VPN。R1的VPN流量会穿越ASA才能与R3建立VPN连接。其中11.1.1.0/24、12.1.1.0/24和23.1.1.0/24都是公网IP地址,1.1.1.0/24和3.3.3.0/24分别是R1和R3站点身后的网络。

R1基本配置:

interface FastEthernet0/0

ip address 11.1.1.1 255.255.255.0

no shutdown

!

interface Loopback0

ip address 1.1.1.1 255.255.255.0

!

ip route 0.0.0.0 0.0.0.0 11.1.1.2

ASA基本配置:

interface GigabitEthernet0

nameif inside

security-level 100

ip address 11.1.1.2 255.255.255.0

no shutdown

!

interface GigabitEthernet1

nameif outside

security-level 0

ip address 12.1.1.1 255.255.255.0

no shutdown

!

route outside 0.0.0.0 0.0.0.0 12.1.1.2 1

route inside 1.1.1.0 255.255.255.0 11.1.1.1 1

!

access-list vpn-acl extended permit icmp any any    //建立一个放行ICMP的ACL

access-group vpn-acl in interface outside

R2基本配置:

interface FastEthernet1/0

ip address 12.1.1.2 255.255.255.0

no shutdown

!

interface FastEthernet2/0

ip address 23.1.1.2 255.255.255.0

no shutdown

!

ip route 11.1.1.0 255.255.255.0 12.1.1.1

R3基本配置:

interface FastEthernet2/0

ip address 23.1.1.3 255.255.255.0

no shutdown

!

interface Loopback0

ip address 3.3.3.3 255.255.255.0

!

ip route 0.0.0.0 0.0.0.0 23.1.1.2

R1VPN配置:

crypto isakmp policy 10

authentication pre-share

crypto isakmp key cisco address 23.1.1.3

!

crypto ipsec transform-set trans esp-des esp-md5-hmac

!

crypto map cisco 10 ipsec-isakmp

set peer 23.1.1.3

set transform-set trans

match address 100

access-list 100 permit ip 1.1.1.0 0.0.0.255 3.3.3.0 0.0.0.255

interface FastEthernet0/0

ip address 11.1.1.1 255.255.255.0

crypto map cisco

R3VPN配置:

crypto isakmp policy 10

authentication pre-share

crypto isakmp key cisco address 11.1.1.1

!

!

crypto ipsec transform-set trans esp-des esp-md5-hmac

!

crypto map cisco 10 ipsec-isakmp

set peer 11.1.1.1

set transform-set trans

match address 100

access-list 100 permit ip 3.3.3.0 0.0.0.255 1.1.1.0 0.0.0.255

interface FastEthernet2/0

ip address 23.1.1.3 255.255.255.0

crypto map cisco

分别在R1和R3上使用下面命令,使telnet不需密码就可以登录,用来进行测试:

R1(config)#line vty 0 4

R1(config-line)#no login

测试:

在R1上使用1.1.1.1去ping3.3.3.3

R1#ping 3.3.3.3 source 1.1.1.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:

Packet sent with a source address of 1.1.1.1

.....

Success rate is 0 percent (0/5)

发现无法ping通R3的3.3.3.3,查看第一阶段的SA,SA已经建立成功。

R1#show crypto isakmp sa

IPv4 Crypto ISAKMP SA

dst             src             state          conn-id slot status

23.1.1.3        11.1.1.1        QM_IDLE           1001    0 ACTIVE

查看第二阶段的SA,也建立成功。(输出太多,不再此展示)

查看加解密,发现只有加密没有解密,说明VPN流量有去无回。

R1#show crypto engine connections active

Crypto Engine Connections

ID Interface  Type  Algorithm           Encrypt  Decrypt IP-Address

1 Fa0/0      IPsec DES+MD5              0        0 11.1.1.1

2 Fa0/0      IPsec DES+MD5              9        0 11.1.1.1

1001 Fa0/0      IKE   SHA+DES              0        0 11.1.1.1

原因分析:

这是由于IPSec封装的是ESP的包,而ASA默认不对ESP的包进行状态化检测,并且在外接口的入方向也没有放行ESP的流量,因此导致VPN不通。

解决办法:在ASA上放行R1和R3之间的ESP流量

ciscoasa(config)# access-list vpn-acl permit esp any any

再次进行测试

R1#ping 3.3.3.3 source 1.1.1.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:

Packet sent with a source address of 1.1.1.1

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 88/104/116 ms

到此,实验完成。

现在看起来已经没问题了,但如果在清除和SA之后,使用R3来触发VPN流量,则还是会遇到问题,因为第一阶段IKE使用的UDP500的端口,而防火墙并没有放行由外向内的UDP500的流量,因此,如果想要R3也能触发VPN流量,需要在ASA上再添放行UDP500的流量。

总结:

在部署VPN的时候,要注意防火墙对IPSec VPN流量的放行(包括IKE协商用到的UDP500,真实的数据ESP流量、可能会封装成的NAT-T,即UDP4500流量),如果是其他类型的VPN,如PPTP、L2TP等,注意放行相关的端口。

VPN端口总结如下:

IKE:源和目标都是UDP500

IPSec VPN流量:ESP(IP协议号是51)/ AH(IP协议号是50)

GRE:GRE流量(IP协议号是47)

PPTP:控制通道是TCP1723,实际数据是GRE

L2TP:不加密的L2TP是UDP的1701端口,加密后同IPSec一样。

SSL:TCP 443

时间: 2024-10-12 02:04:38

防火墙对VPN造成的影响的相关文章

juniper防火墙动态VPN配置

一.拓扑图 墙规划三个安全区域:trust,untrust,dmz. trust接口:ge-0/0/0 管理ip:192.168.1.1/24,公司办公区. untrust接口:ge-0/0/1管理ip:100.100.100.1/24,接外部互联网. dmz接口:ge-0/0/2管理ip:10.10.10.1/24,公司服务器区. 远程动态vpn客户端分配地址池范围:172.16.10.0/24,分配的地址段:172.16.10.10---172.16.10.250. 二.具体配置 1.配置主

Juniper 防火墙建立VPN不成功:Phase1:Retransmission

Juniper防火墙建立VPN不成功,日志中出现下面的提示:Phase 1: Retransmission limit has been reached. 下面是从Juniper资料库中查到的相关资料,按照Juniper资料库的办法好像并没有彻底解决问题,不过可以参考一下Juniper防火墙的排错思路. Synopsis: VPN won't come up; It is failing in Phase 1, with Retransmission limit has been reached

juniper防火墙 L2TP VPN配置

juniper防火墙 L2TP  VPN配置 建立L2TP_POOL 创建连接的用户: 创建用户组: 更改L2TP的连接池: 更改L2TP的隧道: 设置防火墙的策略: Win7连接:

华为防火墙L2TP VPN的一些配置和注意事项

最近公司需要配置VPN,而用SSL VPN面临授权不够的问题,为了方便大家使用,就选择了L2TP VPN的方式.但在实际模拟操作的过程中,出现了一些疑点,现记录下来. 一.拓扑 拓扑是模拟公司总部网络,其中有台单独的设备作为VPN的认证网关,即图中的VPN,是旁挂核心交换机的组网方式. 二.前提 出口防火墙上,要做好映射.也就是要将内网中的VPN设备IP(192.168.10.10)映射到公网上,让公网能够访问.此处就是在FW设备上做了一个nat server 0 global 112.54.8

cisco防火墙点对点VPN配置样例

需求:两端防火墙同为cisco5500系列,实现点点VPN连接,并实现nat与vpn共存 配置实例: tunnel-group 210.1.1.22 type ipsec-l2ltunnel-group 210.1.1.22 ipsec-attributes ikev1 pre-shared-key ***** (*为对方共享秘钥) crypto ipsec ikev1 transform-set VPN-B esp-3des esp-sha-hmac crypto map IPSEC_MP 1

H3C 低端防火墙L2TP VPN配置

<GTECH>sys System View: return to User View with Ctrl+Z. [GTECH]dis curr # sysname GTECH # l2tp enable    //开启L2TP功能,必选 # firewall packet-filter enable firewall packet-filter default permit # connection-limit enable connection-limit default deny con

ASA防火墙IPSEC VPN配置

一.IPSEC  VPN (site to site) 第一步:在外部接口启用IKE协商 crypto isakmp enable outside 第二步:配置isakmp协商策略 isakmp 策略两边要一致,可设置多个策略模板,只要其中一个和对方匹配即可 isakmp policy 5 authenticationpre-share    //配置认证方式为预共享密钥 isakmp policy 5 encryption des            //配置isakmp 策略的加密算法 i

华为USG防火墙 IPsec VPN配置

实验拓扑 使用华为ensp 1.2.00.370模拟器 实验需求 USG-1和USG-2模拟企业边缘设备,分别在2台设备上配置NAT和IPsec VPN实现2边私网可以通过VPN互相通信 实验配置 R1 IP地址配置省略 USG-1配置 [USG-1]firewall zone trust          //配置trust区域 [USG-1-zone-trust]add interface g0/0/0    //将接口加入trust区域 [USG-1-zone-trust]quit [US

VPN技术:PAT对VPN产生的影响

适用场景: 适用场景: 如图所示,一个企业内网可能会有很成百上千台电脑需要上互联网,但一个企业可能只有几个甚至一个公网IP地址,这时候就需要使用到PAT功能(通过端口转换来把私网IP和公网IP对应起来).当一个VPN设备处于PAT设备之后,可能会出现一些问题.由于TCP和UDP有端口号,因此NAT设备可以对他们加于区分并进行转换,ICMP是通过特殊处理之后才进行了转换,而默认并不会对ESP的流量进行转换,这就会出现问题. 注意:只有端口地址转换,即PAT才会出现这个问题,而静态的一对一NAT是不