如何为NAT开放安全策略
如何设置安全策略的源和目的IP地址
根据地址转换方式的不同,NAT可以分为源NAT、目的NAT和双向NAT。
- 源NAT:转换报文的源IP地址。包括仅转换源IP地址的NAT No-PAT,以及同时转换源IP地址和源端口的NAPT、Smart NAT、Esay IP和三元组NAT。
- 目的NAT:转换报文的目的IP地址。根据配置方式的不同,还可以分为基于NAT策略的目的NAT、基于ACL的目的NAT和NAT Server。
- 双向NAT:同时转换报文的源IP地址和目的IP地址。双向NAT不是一个新的功能,而是源NAT和目的NAT的连续应用。
在防火墙的业务处理流程中,NAT和安全策略的处理顺序如图1-1所示。
根据NAT业务的处理流程可知:
- 目的NAT转换在安全策略检查之前,则安全策略中的目的地址需要指定为NAT转换之后的地址。
- 源NAT转换在安全策略检查之后,则安全策略中的源地址需要指定为NAT转换之前的地址。
也就是说,在安全策略中指定的源目的IP地址,就是业务流量最开始的源IP地址和最终的目的IP地址。
如何为源NAT开放安全策略
如前所述,源NAT包括仅转换源IP地址的NAT No-PAT,以及同时转换源IP地址和源端口的NAPT、Smart NAT、Esay IP和三元组NAT。不管是哪种源NAT,其NAT策略的配置方法都一样,只是源NAT地址池略有区别。
源NAT策略和安全策略具有相似的配置逻辑,其匹配条件和动作的对应关系如表1-1所示。源NAT策略和安全策略的匹配条件都是转换前的原始数据包特征。
对比项 |
源NAT策略 |
安全策略 |
---|---|---|
源安全区域 |
流量的源安全区域 |
流量的源安全区域 |
目的安全区域 |
流量的目的安全区域,或流量的出接口 |
流量的目的安全区域,即流量出接口所在的安全区域 |
源地址 |
流量的源IP地址(转换前地址) |
流量的源IP地址(转换前地址) |
目的地址 |
流量的目的IP地址 |
流量的目的IP地址 |
服务 |
流量的服务类型 |
流量的服务类型 |
动作 |
指定源地址池(即转换后地址)或出接口 |
允许/permit |
例如:私网网段10.1.1.0/24通过NAT后访问Internet(目的地址不确定),对应的源NAT策略和安全策略配置如下。
源NAT策略 |
安全策略 |
---|---|
nat-policy rule name SNAT_for_Internet source-zone trust destination-zone untrust source-address 10.1.1.0 24 action source-nat address-group Public_Address |
security-policy rule name Policy_for_Internet source-zone trust destination-zone untrust source-address 10.1.1.0 24 action permit |
对于三元组NAT,你还需要开启端点无关过滤功能。三元组NAT主要用于解决外部设备主动发起访问的业务,如基于P2P技术的语音通信、视频传输等。开启端点无关过滤功能以后,外部设备主动发起的访问根据Server-map表转发,不检查安全策略。如果没有开启此功能,则需要配置公网到私网的反向安全策略。缺省情况下,端点无关过滤功能为开启状态。
[sysname] firewall endpoint-independent filter enable
如何为目的NAT开放安全策略
根据配置方式的不同,目的NAT可以分为基于NAT策略的目的NAT、基于ACL的目的NAT和NAT Server。
基于NAT策略的目的NAT
目的NAT策略的匹配条件都是转换前的原始数据包特征;而安全策略的匹配条件中,目的IP地址和服务是NAT转换之后的地址和端口。另外,目的NAT策略不能指定目的安全区域。
两个策略的匹配条件和动作的对应关系如表1-3所示。
对比项 |
目的NAT策略 |
安全策略 |
---|---|---|
源安全区域 |
流量的源安全区域,通常为公网所在安全区域 |
流量的源安全区域,通常为公网所在安全区域 |
目的安全区域 |
NA |
流量的目的安全区域,即对外提供服务的设备所在的安全区域 |
源地址 |
流量的源IP地址 |
流量的源IP地址 |
目的地址 |
流量的目的IP地址(转换前的地址) |
流量的目的IP地址(转换后的地址) |
服务 |
流量的服务类型(转换前的服务或端口) |
流量的服务类型(转换后的端口) |
动作 |
指定目的地址池(即转换后地址)和转换后的端口 |
允许/permit |
以企业内部服务器10.1.1.1对外提供Web服务为例,对外开放的服务地址为192.0.2.1。对应的目的NAT策略和安全策略配置如下。
目的NAT策略 |
安全策略 |
---|---|
nat-policy rule name DNAT_for_HTTP_Server source-zone untrust destination-address 192.0.2.1 mask 32 service http action destination-nat static address-to-port address-group HTTP_Server 8080 destination-nat address-group HTTP_Server 1 section 10.1.1.1 10.1.1.1 |
security-policy rule name Policy_for_HTTP source-zone untrust destination-zone dmz destination-address 10.1.1.1 32 //转换后的IP地址,跟NAT地址池一致 service protocol tcp source-port 0 to 65535 destination-port 8080 //转换后的端口,跟NAT策略的动作中指定的目的端口一致 action permit |
基于ACL的目的NAT
基于ACL的目的NAT以ACL来定义需要转换目的地址和端口的流量,并在流量的源安全区域中关联ACL与转换后的地址和端口。因此,ACL和安全区域相当于NAT策略中的匹配条件。
以目的NAT转换[192.0.2.1:80-->203.0.113.1:8080]为例,其配置如下。
acl number 3000 rule 5 permit tcp destination 192.0.2.1 0 destination-port eq 80 //指定需要转换的业务流 # firewall zone trust //进入业务流的源安全区域 destination-nat 3000 address 203.0.113.1 port 8080 //对来自trust区域、符合ACL3000的业务流,指定转换后的IP地址和端口
相应的安全策略配置如下。
security-policy rule name Policy_for_ACL3000 source-zone trust destination-zone untrust destination-address 203.0.113.1 32 //转换后的IP地址 service protocol tcp source-port 0 to 65535 destination-port 8080 //转换后的端口 action permit
NAT Server
NAT Server使用1条命令指定了地址转换的所有信息。同样以企业内部服务器10.1.1.1对外提供Web服务为例,对外开放的服务地址为192.0.2.1,NAT Server配置如下。
nat server Web_Server zone untrust protocol tcp global 192.0.2.1 80 inside 10.1.1.1 8080 unr-route
其中,zone untrust表示只有来自此安全区域的用户可以访问Web服务,global 192.0.2.1 80指定转换前的公网地址和端口,inside 10.1.1.1 8080指定转换后的私网地址和端口。
security-policy rule name Policy_for_WebServer source-zone untrust //由zone untrust指定 destination-zone dmz destination-address 10.1.1.1 32 //转换后的IP地址,由inside 10.1.1.1 8080指定 service protocol tcp source-port 0 to 65535 destination-port 8080 //转换后的端口,由inside 10.1.1.1 8080指定 action permit
对于NAT Server,你也可以使用public-ip destination match enable命令来开启公网IP地址/端口匹配功能。防火墙将使用服务器的公网IP地址/端口来匹配安全策略的目的地址。
此时,安全策略配置如下。
security-policy rule name Policy_for_WebServer source-zone untrust //由zone untrust指定 destination-zone dmz destination-address 192.0.2.1 32 //转换前的IP地址,global 192.0.2.1 80指定 service protocol tcp source-port 0 to 65535 destination-port 80 //转换前的端口,由global 192.0.2.1 80指定 action permit