从版本8.3开始,思科对ASA防火墙上的配置语法进行了重大更改。思科网站上有关于旧语法和新语法的大量文档,如果您真的想通读所有语法,则该文档非常有用。

但是我从未见过关于如何迁移现有内容的简洁明了的描述 ASA防火墙。我注意到许多人拼命尝试使用旧软件,以避免繁琐的转换配置任务。不过,迟早您必须这样做。

我的一位客户最近从旧的ASA防火墙迁移到运行新软件的新模型。更新使他们可以访问最近集成到ASA平台中的真正出色的SourceFire功能。但是转换过程涉及经历所有网络福彩三d字谜转换(NAT)规则和 访问列表(ACL) 逐行。

这是我在ASA迁移期间遇到的一些最重要的事情。

网络福彩三d字谜解读

最明显的语法更改涉及NAT。新语法看起来完全不同,但是一旦您了解了它的工作原理,它实际上非常简单灵活。

首先,让我们看一下端口福彩三d字谜转换(PAT)的示例,因为PAT几乎出现在每个面向Internet的防火墙中。

旧的语法如下所示:

global (outside) 1 interface
nat (inside) 1 0.0.0.0 0.0.0.0

在较新的ASA软件版本中,使用对象配置福彩三d字谜转换。以下是新语法中的等效内容:

object network PAT-0_0_0_0
  subnet 0.0.0.0 0.0.0.0
  nat (inside,outside) dynamic interface

我给这个对象取了一个希望有意义的名称PAT-0_0_0_0。然后,我定义了将应用此规则的“实际”福彩三d字谜范围,即所有福彩三d字谜。第三行使用外部接口的IP福彩三d字谜作为转换值,将实际福彩三d字谜转换定义为内部接口和外部接口之间的动态转换。

显然,您可以使用更精确的子网定义,但是我通常希望使此类出站Web浏览规则尽可能广泛。然后,使用接口上的访问控制列表确定要允许或拒绝的确切内容。

另一种非常常见的NAT配置类型是一个内部福彩三d字谜和一个外部福彩三d字谜之间的静态转换。这是旧式语法:

static (dmz,outside) 198.51.100.55 172.25.13.6 netmask 255.255.255.255

在这种情况下,198.51.100.55是对外界可见的福彩三d字谜。自然,您应该用您的真实福彩三d字谜代替它。我在这里使用一个特殊的RFC保留福彩三d字谜范围进行演示。 (不用担心,这不是我的真实IP福彩三d字谜。)

172.25.13.6福彩三d字谜是位于“ dmz”段上的服务器。作为一般设计原则,您不应为内部网络上的系统制定这样的静态NAT规则,因为它们有效地暴露在Internet上,可以自由地在所有端口上进行探查(至少在打开ACL之前)在外部接口上)。

这就是为什么我将此规则显示为DMZ和外部接口之间的转换的原因。但是,您也可以很容易地在括号的前半部分指定“ dmz”的任何其他接口。

在新语法中,配置再次涉及对象定义:

object network NAT-MAIL-PROXY
 host 172.25.13.6
 nat (dmz,outside) static 198.51.100.55

我给这个NAT对象取了一个本地有意义的名称,该名称应该可以帮助任何查看配置的人了解正在发生的事情。

您还可以执行基于端口的静态NAT,它通常如下所示:

static (inside,outside) tcp interface 4493 10.10.85.15 443 netmask 255.255.255.255

使用新语法的等效配置如下所示:

object network NAT-interface-4493
 host 10.10.85.15
 nat (inside,outside) static interface service tcp 443 4493

我再次使用“接口”福彩三d字谜进行翻译。但是您也可以使用特定的IP,如上例所示。

请注意,两个示例中的TCP端口号匹配。他们使用443作为服务器内部使用的真实端口,并将其转换为外部的4493。如果防火墙收到与这些端口号不匹配的数据包,则该规则将不适用。

当您查看配置时,ASA会以其新语法执行的一项比较晦涩和混乱的操作会出现。它分别显示第一部分和第二部分。因此,例如,最后一个示例将显示如下:

object network NAT-interface-4493
 host 10.10.85.15

[many lines deleted]

object network NAT-interface-4493
 nat (inside,outside) static interface service tcp 443 4493

操作顺序

新旧ASA语法之间的另一个真正大的区别是操作顺序。

在旧版本中,您必须在防火墙外部配置入站ACL,以包括转换后的IP,该IP是在外部接口上接收到数据包时的IP福彩三d字谜。

现在,它首先进行NAT,然后再应用ACL。因此,现在您必须使用真实的内部IP,即未翻译的福彩三d字谜。

例如,在上述邮件代理的NAT规则中,旧的ACL会有这样的一行:

 
access-list outside_in-old extended permit tcp any host 198.51.100.55 eq 25

这样,您自然可以将其应用于防火墙的外部接口:

access-group oustide_in-old in interface outside

在新的ASA软件中,语法是相同的,但是您使用内部福彩三d字谜:

access-list outside_in-new extended permit tcp any host 172.25.13.6 eq 25

而且,当然,您可以以相同的方式应用它。

access-group oustide_in-new in interface outside

名字

将配置从旧版本转换为新版本时,可能使您不满意的另一件事是使用“ names”命令。在旧版本和新版本中,您都可以为特定主机和子网定义易于理解的名称。在此示例中,我们可能有:

name 172.25.13.6 MAIL-PROXY-INSIDE
name 198.51.100.55 MAIL-PROXY-OUTSIDE

在旧的ASA软件中,您可以在NAT规则和ACL中使用以下名称:

static (dmz,outside) MAIL-PROXY-OUTSIDE MAIL-PROXY-INSIDE netmask 255.255.255.255
!
access-list outside_in-old extended permit tcp any host MAIL-PROXY-OUTSIDE eq 25

很好,因为它使内容可读。

在新软件中,您仍然可以在ACL中使用名称,但不能在NAT对象定义中使用名称。您必须改用数字IP福彩三d字谜。这就是在NAT对象定义中使用有意义的名称的更多原因。

测试方法

那么,您如何知道自己已经正确迁移了配置?使用“ packet-tracer”命令。它很容易成为ASA功能集中最有用的功能之一,并且在新旧代码版本中都可以正常使用。

例如,如果您想确保入站电子邮件流量正常运行,则可以执行以下操作:

packet-tracer input outside tcp 1.1.1.1 1234 198.51.100.5 smtp

这将模拟防火墙从某个虚拟Internet源IP(1.1.1.1)接收入站TCP数据包,其源端口号为1234(通常源端口号与这些类型的测试无关),该福彩三d字谜指向外部NAT IP福彩三d字谜,我们在上面配置,并使用SMTP的目标端口。

该命令将逐步向您展示防火墙如何评估数据包。它甚至还向您确切显示了它如何应用NAT以及生成的福彩三d字谜是什么。新旧ASA软件中的步骤不同,但是最终结果应该相同。因此,一种非常有用的测试方法是将新防火墙连接到隔离的测试环境,并在新旧设备上打开SSH会话。然后,您可以一一尝试应用程序的所有重要流量。

结论

思科的ASA语法更改可能难以导航,但是这些防火墙中的较新功能使其值得进行转换和升级。另外,正如我在逐行浏览客户端的防火墙配置时所发现的那样,这是一个很好的机会,可以消除随着时间的流逝而出现在每种防火墙配置中的所有旧的和过时的规则。