本文对CISCO ASA 防火墙DMZ区域中常用的外网端口映射部署的2种方式进行比较。
简要拓扑
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
ISP1 网段100.100.100.x
DMZ 网段 172.16.10.0
DMZ部署简单的http服务,模拟对外部提供服务。
方式一:基于映射对象的NAT

①在ASDM中配置部署twice NAT
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
a.上面这种配置方式是在新建一个网络对象(host/子网或者范围都可)的同时配置NAT,我们这里只讨论STATIC NAT,
对于高级NAT设置选项,如果我们保持默认配置不动,那么完成后的配置即为:
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
这条策略2没有源/末接口指定都是any,而且在配置完毕后会自动生产内到外NAT条目,而且他们是绑定在一起的,删除其中一条另一条也会自动删除,而且该映射策略是全端口映射。对于需要映射出去的具体端口访问限制,还需要outside的in方向和DMZ的outside进行端口控制。
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
这种做法就是在NAT上偷懒(只管IP),但需要对ACL进行精细管控(控制具体需求端口和协议),包括映射Server的外网主动访问也是需要在DMZ 的in 或者是outside的out去控制的,整体上ACL的配置会繁琐起来。
b.对上面的配置我们修改高级NAT选项
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
对高级NAT选项修改后的策略指定了进出接口和端口,但注意下这里有个问题上面的改动配置下发后server的http映射服务是无法通过的
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
我们在配置的时候选择的source interface 为outside,destination interface为DMZ,而且配置完成后显示的策略2中也是outside->DMZ在上,DMZ->outside在下。
接下来将源末接口互换后如下
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
其策略条目顺序也发生了变化,这时候测试通过。
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
这种情况下对于server外到内的映射已经控制在端口层面,对于ACL可以简化只控制IP层面,所以和前面的思路相反,这种做法是ACL偷懒,NAT精细控制,但对于server本身的任何对外服务访问,还需要单独部署dynamic nat ,否则server对外的其他访问将没有nat的匹配策略。
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
小结:对于这2种对象NAT部署,还是要看具体情况配置,如果DMZ server 只提供对外服务且同IP没有映射过多服务而且没有对外访问的需求的情况下,那么依据最小权限原则后者更加合适,但这样会在部署过程中无形怎加防火墙NAT条目。但根据实际的工作维护经验来看,上述的假设条件很难保持不变,所以总体来说个人不推荐这种指定方向和端口的对象NAT配置,环境和需求稍加变动就需要对NAT和ACL进行操作。
PS:这种配置模式下的策略顺序是不能调整的。

②在ASDM中部署Object NAT
a.先选择在Network Object NAT之前添加
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
策略配置为:
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
这里配置静态NAT的思路还是先由内到外,即内部源IP转换之后的源IP,其他方向和协议先不做限制,
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
这个配置结果和第1小节的a种情况是一样的。在配置里适当的ACL策略之后,外到内和内到外的NAT均正常。
b.再换一个正常一点的思路,因为我们主要讨论的是DMZ的外网映射,所以我们的部署思路一般都是从外到内的映射,如下配置调整为这种思路:

CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
这种常规思路配置完毕后,外对内的映射服务和内到外的访问均测试通过。
上面a/b2种情况均是在不限制流向和端口协议的情况下配置测试,这是偷懒的做法,实际生产种为了不使配置混乱以及权限漏洞,最好限流向,这样条目即清晰,同样也确保了权限最小原则,避免权限溢出分享,另外对于端口是否需要指定映射还是全映射然后通过ACL控制具体业务端口流向,根据实际业务场景确定,个人推荐精准端口映射+ACL IP控制的方式,因为数据包从outside进入后先进行NAT匹配再进行ACL匹配,在前期控制过滤不必要的流量在防火墙种继续下行交由ACL匹配处理,在某种程度上也是在减低设备的负载(只是理论推断)。

接下来我们再讨论下配置过程种的2个小细节,一个是代理ARP,一个是映射双向性。
c.配置NAT过程种是否启用 Proxy ARP。
接上一条策略为基础来讨论
其实我们再配置上面的策略时会有一条ARP proxy 告警提示
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
它告诉我们代理ARP默认是开启的,但这不是一个常规性的需求,有时候它会导致一些连接问题。比如,如果你配置了一些宽泛NAT像任意IP这种情况下,如果开启了proxy arp ,则会导致网络上的主机直接连接到映射的接口上。
下面的做法是关闭Proxy Arp 功能在映射的出接口上。
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
关闭之后的策略种承兑出现的反向NAT策略消失了,在Option中出现了 No Proxy ARP的配置。
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
测试外网映射和内网访问外网均正常通过。
d.配置映射双向性
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
关闭双线性之后的策略在ASDM显示中没有发生变化,但在CLI中多了一个 unidirectional关键字。
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
通过Packet Trace 发现当关闭双向性之后,内网到外网的访问显示是不会匹配上面那条策略,而是向下匹配在a小节配置的twice NAT
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
通过Packet Trace 发现当关闭双向性之后,外网到内网的映射访问还是匹配了上面那条策略。
CISCO ASA 中DMZ NAT映射的2种部署方式比较---By 年糕泰迪
小总结:在Object的模式下配置更为灵活一些,而且在不限定流量方向和协议时,对源IP或者目标IP选其一保持STATIC映射先后一致,其效果都是一样的,而且测试了关闭Proxy ARP后对正常的业务访问并没有影响,建议关闭,另外如果关闭了NAT的双向性,则只能时单通映射,内到外的主动访问则不会匹配到该配置的NAT策略,而且这里配置的策略条目可以根据需求调整顺序。

上述内容展示通过实际测试验证,验证结论的理论依据支持待后续更新。