自适应安全设备 (ASA) 上的端口地址转换 (PAT)
端口地址转换(PAT)是一种网络地址转换(NAT),当公共IP地址短缺时使用。同一子网的公共IP地址或接口地址中的一个用于转换。
端口地址转换 (PAT):
这也称为 NAT 过载。在这种情况下,许多本地(私有)IP 地址被转换为单个公共 IP 地址。有时,私有地址被转换为接口地址(单个)。在此,端口号用于区分流量,即哪个流量属于哪个 IP 地址。
程序:
该过程与动态 NAT 中的过程几乎相同,但请记住,在 PAT 中,多个私有 IP 地址被转换为单个公共 IP 地址。
- 步骤 1:配置访问列表
建立访问列表,说明许可条件,即谁应该被许可以及什么协议应该被许可。 - 步骤 2:将访问列表应用于接口
access-group 命令将用于说明动作(上面指定的)应该发生的方向(出或入)。 - 步骤 3:创建网络组或网络对象
网络组将说明将应用 PAT 的子网或不同子网。虽然网络对象声明了一个子网,但可以在 PAT 过程中进一步使用该子网进行转换。可以说网络组包含多个网络对象。 - 第 4 步:PAT 声明
此步骤将指定 PAT 应发生的方向以及应在哪个 IP 地址(公共 IP 地址)上转换私有 IP 地址。
配置:
三个路由器,即Router1(IP地址- 10.1.1.1/24)、Router2(IP地址- 11.1.1.1/24)和Router3(IP地址- 101.1.1.1)连接到ASA(IP地址- 10.1.1.2/24), name – INSIDE 和安全级别 – Gi0/0 上的 100,IP 地址 – 11.1.1.2/24,名称 – DMZ 和安全级别 – Gi0/1 上的 50,IP 地址 – 101.1.1.2/24,name-OUTSIDE 和安全级别– Gi0/2 上的 0)如上图所示。
在此任务中,我们将为从 INSIDE 到 OUTSIDE 的流量以及从 DMZ 到 OUTSIDE 的流量启用 PAT。
在所有路由器和 ASA 上配置 IP 地址。
在Router1上配置IP地址:
Router1(config)#int fa0/0
Router1(config-if)#ip address 10.1.1.1 255.255.255.0
Router1(config-if)#no shut
在Router2上配置IP地址:
Router2(config)#int fa0/0
Router2(config-if)#ip address 11.1.1.1 255.255.255.0
Router2(config-if)#no shut
在Router3上配置IP地址:
Router3(config)#int fa0/0
Router3(config-if)#ip address 101.1.1.1 255.255.255.0
Router3(config-if)#no shut
在 ASA 的接口上配置 IP 地址、名称和安全级别:
asa(config)#int Gi0/0
asa(config-if)#no shut
asa(config-if)#ip address 10.1.1.2 255.255.255.0
asa(config-if)#nameif INSIDE
asa(config-if)#security level 100
asa(config-if)#exit
asa(config)#int Gi0/1
asa(config-if)#no shut
asa(config-if)#ip address 11.1.1.2 255.255.255.0
asa(config-if)#nameif DMZ
asa(config-if)#security level 50
asa(config-if)#exit
asa(config)#int Gi0/2
asa(config-if)#no shut
asa(config-if)#ip address 101.1.1.2 255.255.255.0
asa(config-if)#nameif OUTSIDE
asa(config-if)#security level 0
现在为路由器提供静态路由。配置到Router1的静态路由:
Router1(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.2
配置到Router2的静态路由:
Router2(config)#ip route 0.0.0.0 0.0.0.0 11.1.1.2
配置到Router3的静态路由:
Router3(config)#ip route 0.0.0.0 0.0.0.0 101.1.1.2
最后配置到 ASA 的静态路由:
asa(config)#route INSIDE 10.1.1.0 255.255.255.0 10.1.1.1
asa(config)#route OUTSIDE 101.1.1.0 255.255.255.0 101.1.1.1
asa(config)#route DMZ 11.1.1.0 255.255.255.0 10.1.1.1
对于 ICMP,检查或使用 ACL 以允许从较低安全级别到较高安全级别的 ICMP 回显回复(这样做是因为默认情况下,不允许从较低安全级别到较高安全级别的流量)。
配置访问列表:
asa(config)#access-list traffic_out permit icmp any any
asa(config)#access-list traffic_dmz permit icmp any any
在这里,已经制作了两个访问列表。
第一个访问列表名称是 traffic_out,它将允许从 OUTSIDE 到 INSIDE 的 ICMP 流量(具有任何 IP 地址任何掩码)。
第二个访问列表已命名为 traffic_dmz,这将允许从 OUTSIDE 到 DMZ 的 ICMP 流量(具有任何 IP 地址任何掩码)。
将这些访问列表应用到 ASA 接口:
asa(config)#access-group traffic_out in interface OUTSIDE
asa(config)#access-group traffic_dmz in interface DMZ
第一条语句声明访问列表 traffic_out 向内应用于 OUTSIDE 接口
第二个语句声明访问列表 traffic_dmz 向内应用于 DMZ 接口。
INSIDE 设备将能够 ping OUTSIDE 和 DMZ 设备。
任务是在整个子网 (10.1.1.0/24) 流量从 INSIDE 到 OUTSIDE 以及网络 (11.1.1.0/24) 的流量从 DMZ 到 OUTSIDE 时在 ASA 上启用 PAT,它应该被转换为 OUTSIDE 接口地址.
asa(config)#object network inside_nat
asa(config-network-object)#subnet 10.1.1.0 255.255.255.0
asa(config-network-object)#exit
首先,指定应该翻译哪个子网。
将指定 NAT 转换的方向:
asa(config)#nat (INSIDE, OUTSIDE) source dynamic INSIDE interface
对从 DMZ 到 OUTSIDE 的流量应用 NAT:
asa(config)#object network dmz_nat
asa(config-network-object)#subnet 11.1.1.0 255.255.255.0
asa(config-network-object)#exit
为此流量创建 NAT 池:
asa(config)#object network dmz_nat_pool
asa(config-network-object)#range 120.1.1.1 120.1.1.4
asa(config-network-object)#exit
指定了 nat 翻译的累赘。
asa(config)#nat (DMZ, OUTSIDE) source dynamic DMZ interface
上述命令指定应使用 PAT 将 dmz_nat 中的子网转换为 DMZ 接口的 IP 地址。这样,配置 PAT 的过程几乎类似于动态 NAT。主要区别在于配置外部接口 IP 地址而不是 NAT 池,其中一个 IP 地址将从中转换。
好处:
这是最常用的,因为它具有成本效益,因为只需使用一个真实的全球(公共)IP 地址即可将数千名用户连接到 Internet。