且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《Cisco防火墙》一第8章在部署了NAT的环境中穿越ASA8.1 nat-Control模型

更新时间:2021-10-21 07:21:31

本节书摘来自异步社区《Cisco防火墙》一书中的第8章,第8.1节,作者 【巴西】Alexandre M.S.P. Moraes,更多章节内容可以访问云栖社区“异步社区”公众号查看

第8章在部署了NAT的环境中穿越ASA

Cisco防火墙
本章包含了如下主题:

  • nat-control模型;
  • 出站NAT分析;
  • 入站流量的地址发布;
  • 入站NAT分析;
  • 双重NAT;
  • 禁用TCP序列号随机生成;
  • 在NAT环境中定义连接限制。

不言自明之理自不必多言,故弄玄虚之辞必有所隐瞒。

—哲学家的玫瑰园1

网络地址转换(NAT)是一种使用广泛的技术,它的作用是创建内部地址空间与外部地址空间之间的映射。NAT最简单的操作模式是在真实源地址和虚拟(或转换后的)源地址之间建立一对一的对应关系。还有一些复杂的模式可以对目的地址进行转换,或者建立多对一的转换关系。

NAT类型众多,可以满足各类不同环境所需,其最常见的用途如下所示。

  • 针对全局互联网隐藏私有地址:RFC 1918所定义的私有地址空间通常用于企业内部,这类地址不能在互联网上进行路由。NAT可以将这类IP地址限制在组织机构的内部。
  • 缓解IPv4地址耗竭的问题:当前,可供分配给企业的公网可路由地址数量已经远远少于内部主机的数量,因此需要开发一种可以建立多对一映射的技术。这类技术中最经典的莫过于动态端口地址转换技术(动态PAT)。
  • 对外部世界隐藏内部网络的具体信息:动态PAT不仅可以缓解可用公网地址减少的问题,也可以为那些不应该受到外部网络访问的主机执行单向转换。
  • 使用叠加地址实现网络互连:几乎所有公司给内部主机配置的都是私有地址。于是,在企业进行兼并和融合时,(需要相互访问的设备之间)就有可能出现地址冲突的问题。在这种情形下,NAT也可以充当一个解决方案。

NAT包含两项基本的进程。

  • 使用虚拟地址替代原本的地址,并在转换表中创建出能够反映出这种映射关系的条目。为了让NAT能够正常工作,虚拟地址在目的网络中必须是可路由的。
  • 搜索转换表将(发送给虚拟地址的)返程数据包映射回原地址(这个过程称为反向转换)。

本章旨在分析ASA所支持的多种NAT技术,并研究(在本书第7章中介绍的)连接(Connection)这一概念与转换技术所提供的连通性(Connectivity)之间是什么关系。

在进入本章的主题之前,我们会首先介绍8.3版本之前,在ASA上配置NAT的命令语法。而8.3版本针对命令和理论所作的变化将在本书的附录A中进行介绍。虽然8.3针对NAT功能引入了一些全新的设计,但是它并没有改变NAT技术的分类。

1是为16世纪有关心灵炼金术的论文,其中“玫瑰园”比喻哲人的语录和选集。根据该论文,上述言论来自贾比尔·伊本·哈扬,波斯炼金术士、哲学家、天文学家和物理学家,被称为现代化学之父。——译者注

8.1 nat-Control模型

Cisco防火墙
本书已经在前面一章中提到过,在PIX和ASA 7.0版本之后,默认NAT配置的模型被称为no nat-control模型,也就是流量不需要通过任何NAT规则直接穿越防火墙。一旦选择了这个模型,NAT对于出站和入站访问都会成为一种可选的属性。

而本章则会介绍另一个称为nat-control的模型,该模型在7.0版本引入之前一直是PIX防火墙唯一的操作模式。在从7.0(即ASA的第一个操作系统版本)到8.2之间的版本中,则是一种可选的模型。

在nat-control模型中,只有当管理员明确配置了NAT时,ASA算法才会允许网络设备之间穿越防火墙建立连接。这可以通过以下两种基本的方式来实现:

从几大类NAT中选择其一进行配置;
在不需要NAT的环境中,明确选择一种绕过NAT(NAT Bypass)1的机制。
目前,尽管no nat-control可以看作是一种常用的绕过NAT的解决方案,不过nat-control环境中也提供了一些根据条件来绕过NAT的解决方案,即Identity NAT技术和_NAT免除(NAT Exemption)技术。

在启用了nat-control模型之后,出站访问规则可以被总结为下列三步。

步骤1从安全级别较高的接口去往安全级别较低接口的数据包必须与某种NAT规则相匹配。这可以看成是一种连通性需求(connectivity requirement)。

步骤2 步骤1中所提到的NAT规则也包括nat 0语句,也就是使用Identity NAT或NAT免除来绕过NAT机制。即在上述情况下,管理员依然必须明确告知ASA设备所使用的NAT技术。如果不使用NAT,防火墙就会在找不到转换关系的情况下应用隐式拒绝规则。

步骤3 若ASA设备找到了一个转换组,那么它就允许发起出站连接。NAT规则的优先级别高于出站连接的隐式放行规则。

反之,nat-control环境中的入站访问规则如下。

如果有必要让低安全级别接口所连网络能够看到内部地址,就必须配置某种类型的NAT地址发布规则。这种发布规则的效果来源于网络中使用的某些类型的明确转换规则。Identity NAT和动态规则就不适合用来向外部网络发布内部地址。
用来发布内部地址的转换规则包括静态NAT、静态PAT(端口重定向)、静态策略NAT和NAT免除技术这几种类型。
如果想要放行某个入站连接,管理员必须通过访问控制条目(Access Control Entry)来定义允许穿越防火墙的流量。ACE中的目的地址就应当是要发布的内部主机地址。
注释 虽然使用NAT往往会增加网络环境的复杂性,但是NAT也可以实现一种称为深度防御(defense-in-depth)的安全理念。在使用nat-control模型时,如果没有发现转换组,只使用一条ACL放行语句不足以放行需要穿越ASA进行建立的连接。

例8-1所示为如何查看是否启用了nat-control,同时这个示例的阴影部分显示了当dmz接口连接的主机想要与通过out接口可达的主机建立连接时,该模型的隐式拒绝行为。


《Cisco防火墙》一第8章在部署了NAT的环境中穿越ASA8.1 nat-Control模型