CCIE安全性:NAT穿越

在此博客文章中,我们将遍历NAT遍历和各种考虑因素,以考虑防火墙何时在VPN对等方的路径中。

我将使用与以前的站点到站点IOS 虚拟专用网博客文章相同的配置,但有一个区别:我将ASA放在配置了PAT的路径中。该拓扑显示在下面。 


当您第一次尝试ISAKMP时,它将失败。原因在来自的调试输出中变得很清楚 调试crypto isakmp。 在这种情况下, 先前配置的ISAKMP对等体是NAT之前的IP地址,因此当主模式消息来自NAT IP时,对等体无法识别它。 

 

为了解决这个问题,我将更改ISAKMP和加密映射对等项:

crypto isakmp key cisco123 address 2.2.2.2
crypto map CMAP 10 ipsec-isakmp
no set peer 1.1.1.1
set peer 2.2.2.2

 

现在,让我们再次尝试建立IPSec 虚拟专用网,看看会发生什么。 

当我们看着 调试crypto isakmp 输出,首先应该看到响应者在MM#3和MM#4期间检测到NAT:

 

响应者将回复封装在UDP数据包源和目标端口4500中的下一个主模式消息,因此一旦阶段2开始,PAT将具有状态信息以安装在其PAT绑定表中

 

此时,启动器将看到封装在UDP中的消息,并开始用封装在UDP 4500中的自己的数据包进行回复,您可以从启动器的以下调试输出中看到该消息。

 

在这之后, 第1阶段和第2阶段应该完成,并且应该允许进行通信。

在PC上,除了第一次ping之外,您还应该看到ping通信已完成,因为在路由器上正在建立IPSec 虚拟专用网隧道。

 

大!当启动器是PAT设备内部的对等方时,看起来一切工作都很好。让我们发布 清除加密会话 命令并尝试一些不同的东西。这次,我将从防火墙外部的站点发起流量。我将让192.168.2.0/24 LAN上的PC尝试ping其他PC。 

这次将失败,如下所示。 

 

让我们看一下启动器路由器的调试输出:

看起来发起方永远不会超过第一个“主模式”消息。如果您查看响应器上的调试输出,则根本不会显示任何内容。 

这样做的原因是您试图启动从较低安全性接口到较高接口的流量。默认情况下,ASA应该执行其工作并阻止来自较低安全性接口的任何流量。 为了从外部对等方到内部对等方获取主模式消息,您需要做两件事:

1. NAT语句-ASA需要知道进入其外部IP地址的流量应映射到内部路由器的IP地址。这可以通过在外部接口上创建具有特定端口映射的NAT语句或使用单独的IP地址而非接口IP的NAT语句来完成。 

2. ACL-为了不被阻塞,需要配置一个ACL,以允许外部接口从一个对等方到另一个对等方的UDP 500和4500。 

注意: 如果您使用的是8.3版以上的ASA IOS代码(CCIE实验室必须使用,但我知道很多人都使用旧代码),请确保使用真实IP编写ACL和NAT语句。 

在ASA上创建NAT语句,该语句允许UDP 4500和500直通路由器的外部接口:

object network R1
host 1.1.1.1

object service UDP_4500
service udp source eq 4500

object service UDP_500
service udp source eq 500

nat (inside,outside) 1 source static R1 interface service UDP_500 UDP_500
nat (inside,outside) 1 source static R1 interface service UDP_4500 UDP_4500

NAT语句不足以允许VPN出现。由于流量仍然从安全级别较低的接口传输到安全级别较高的接口,因此我们需要配置访问列表,以允许来自对等方的流量通过所需的端口。我使用的ACL的配置为:

access-list OUT_IN extended permit udp host 2.2.2.1 eq isakmp host 1.1.1.1 eq isakmp
access-list OUT_IN extended permit udp host 2.2.2.1 eq 4500 host 1.1.1.1 eq 4500


然后将ACL应用于外部接口:

access-group OUT_IN in interface outside

 

现在,让我们尝试再次发起从外部对等方到内部对等方的流量,看看会发生什么。这次应该从PC执行ping操作。

在路由器调试中,它将显示第2阶段已完成。

 

这样,我将结束这篇博客文章!感谢您的阅读!