如何为IPSec VPN开放安全策略
点到点IPSec VPN
在典型的IPSec VPN应用中,VPN网关(即Firewall_A和Firewall_B)之间首先通过IKE协议协商安全联盟,然后使用协商出的AH或ESP协议来提供认证或加密传输。如图9-1所示。其中,ISAKMP消息用于IKE协商,使用UDP报文封装,端口号为500。ESP协议提供认证和加密功能,AH协议仅支持认证功能,因此通常使用ESP协议。
一般情况下,点到点VPN隧道两端的子网都可能会主动发起业务访问,因此,Firewall_A和Firewall_B都可能会主动发起IKE协商。典型的安全策略配置如表9-1所示,Firewall_A侧安全策略与Firewall_B侧互为镜像。
序号 |
名称 |
源安全区域 |
目的安全区域 |
源地址/地区 |
目的地址/地区 |
服务 |
动作 |
---|---|---|---|---|---|---|---|
Firewall_A |
|||||||
101 |
Allow ISAKMP message to peer |
local |
untrust |
192.0.2.1/32 |
203.0.113.1/32 |
isakmp (UDP: 500) |
permit |
102 |
Allow ISAKMP message from peer |
untrust |
local |
203.0.113.1/32 |
192.0.2.1/32 |
isakmp (UDP: 500) |
permit |
103 |
Allow IPSec from peer |
untrust |
local |
203.0.113.1/32 |
192.0.2.1/32 |
esp (50) ah (51) |
permit |
104 |
Allow intranet from peer |
untrust |
trust |
10.1.2.0/24 |
10.1.1.0/24 |
any |
permit |
105 |
Allow intranet to peer |
trust |
untrust |
10.1.1.0/24 |
10.1.2.0/24 |
any |
permit |
Firewall_B |
|||||||
101 |
Allow ISAKMP message to peer |
local |
untrust |
203.0.113.1/32 |
192.0.2.1/32 |
isakmp (UDP: 500) |
permit |
102 |
Allow ISAKMP message from peer |
untrust |
local |
192.0.2.1/32 |
203.0.113.1/32 |
isakmp (UDP: 500) |
permit |
103 |
Allow IPSec from peer |
untrust |
local |
192.0.2.1/32 |
203.0.113.1/32 |
esp (50) ah (51) |
permit |
104 |
Allow intranet from peer |
untrust |
trust |
10.1.1.0/24 |
10.1.2.0/24 |
any |
permit |
105 |
Allow intranet to peer |
trust |
untrust |
10.1.2.0/24 |
10.1.1.0/24 |
any |
permit |
需要说明的是:
- 防火墙接收对端的IPSec加密报文,需要配置安全策略(编号103),从防火墙发出的IPSec加密报文不需要配置安全策略。
- 如果采用手工方式配置IPSec VPN,防火墙不需要使用ISAKMP消息协商安全联盟,因此,不需要配置相应的安全策略(编号101、102)。
- 待加密流量进入IPSec隧道(编号为105的安全策略),其源安全区域是报文发起方所属的区域(此处为Trust),其目的安全区域为建立IPSec隧道的接口所属的安全区域,即应用IPSec策略组的接口或应用IPSec安全框架的虚拟隧道接口(Tunnel接口)。以Firewall_A侧主动发起业务访问为例,其源安全区域和目的安全区域如图9-2所示。当使用Tunnel接口建立IPSec隧道时,请特别注意配置正确的安全区域。
点到多点IPSec VPN
在点到多点场景中,通常由分支站点向中心站点发起访问,则分支站点和中心站点的安全策略如表9-2所示。
序号 |
名称 |
源安全区域 |
目的安全区域 |
源地址/地区 |
目的地址/地区 |
服务 |
动作 |
---|---|---|---|---|---|---|---|
Firewall_A,分支站点,本端主动发起访问 |
|||||||
101 |
Allow ISAKMP message to peer |
local |
untrust |
192.0.2.1/32 |
203.0.113.1/32 |
isakmp (UDP: 500) |
permit |
102 |
Allow IPSec from peer |
untrust |
local |
203.0.113.1/32 |
192.0.2.1/32 |
esp (50) ah (51) |
permit |
103 |
Allow intranet to peer |
trust |
untrust |
10.1.1.0/24 |
10.1.2.0/24 |
any |
permit |
Firewall_B,中心站点,接收对端访问 |
|||||||
201 |
Allow ISAKMP message from peer |
untrust |
local |
192.0.2.1/32 |
203.0.113.1/32 |
isakmp (UDP: 500) |
permit |
202 |
Allow IPSec from peer |
untrust |
local |
192.0.2.1/32 |
203.0.113.1/32 |
esp (50) ah (51) |
permit |
203 |
Allow intranet from peer |
untrust |
trust |
10.1.1.0/24 |
10.1.2.0/24 |
any |
permit |
如果中心站点需要主动向分支站点发起访问,则点到多点场景下的安全策略配置与点到点场景完全一致,可参考表9-1。
IPSec VPN之NAT穿越
NAT的本质是修改报文的IP地址和端口,IPSec VPN则是要保证数据的安全性,避免被篡改或窃取。当VPN网关之间存在NAT网关时,矛盾出现了。为了保证IPSec隧道能够成功建立,使报文顺利穿过NAT设备,需要VPN网关支持并启用NAT穿越功能。
为了顺利实现NAT穿越,VPN网关在IKE协商阶段需要首先检测对端是否支持NAT穿越;待确认对端支持NAT穿越以后,再检测本端与对端之间是否存在NAT网关。这两个检测都是使用ISAKMP消息来实现的。
确认存在NAT网关后,VPN网关使用UDP头封装ISAKMP消息和ESP报文,来实现NAT穿越。在传输模式下,VPN网关在原报文的IP头和ESP头间增加一个标准的UDP报头;在隧道模式下,VPN网关在新IP头和ESP头间增加一个标准的UDP报头。UDP报头的端口号默认是4500。这样,当ESP报文经过NAT网关时,NAT网关转换该报文的外层IP头和增加的UDP报头的地址和端口号。图9-3是NAT穿越的典型场景。Firewall_A位于企业私网,其向Firewall_B发起IPSec VPN,必须先经过NAT网关。
安全策略配置如表9-3所示。
序号 |
名称 |
源安全区域 |
目的安全区域 |
源地址/地区 |
目的地址/地区 |
服务 |
动作 |
---|---|---|---|---|---|---|---|
Firewall_A,分支站点,本端主动发起访问 |
|||||||
101 |
Allow ISAKMP message to peer |
local |
untrust |
10.10.1.1/32 |
203.0.113.1/32 |
isakmp (UDP: 500) UDP: 4500 |
permit |
102 |
Allow IPSec from peer |
untrust |
local |
203.0.113.1/32 |
10.10.1.1/32 |
UDP: 4500 |
permit |
103 |
Allow intranet to peer |
trust |
untrust |
10.1.1.0/24 |
10.1.2.0/24 |
any |
permit |
Firewall_B,中心站点,接收对端访问 |
|||||||
201 |
Allow ISAKMP message from peer |
untrust |
local |
192.0.2.1/32 |
203.0.113.1/32 |
isakmp (UDP: 500) UDP: 4500 |
permit |
202 |
Allow IPSec from peer |
untrust |
local |
192.0.2.1/32 |
203.0.113.1/32 |
UDP: 4500 |
permit |
203 |
Allow intranet from peer |
untrust |
trust |
10.1.1.0/24 |
10.1.2.0/24 |
any |
permit |