请原谅我,因为我对 ASA 不是很有经验,但我相信我所配置的应该可以起作用。
我有一台运行 8.3(2) 版本的 ASA 5510,它连接到内部、外部和 DMZ 网络以及 RA VPN。从内部/DMZ 到互联网时,内部和 DMZ 网络都配置了动态 NAT。这些动态 NAT 都按预期工作。
尝试通过 VPN 访问 DMZ 网络时出现问题。
我在 ASA 上收到的错误消息如下:
%ASA-5-305013: Asymmetric NAT rules matched for forward and reverse flows; Connection for icmp src outside:x.x.x.x dst dmz: y.y.y.y (type 8, code 0) denied due to NAT reverse path failure
我认为发生这种情况的原因是从 DMZ 返回的流量将与动态 NAT 规则匹配,并被 nat 到外部接口。
因此,我为 VPN 的 DMZ 子网添加了一条静态无 NAT 规则:
nat (dmz,outside) source static DMZ_VLAN DMZ_VLAN destination static VPN VPN
但是...我仍然收到错误。
现在,我更加困惑了。添加静态 NAT 后,我的sh nat
看起来如下:
1 (inside) to (outside) source static any any destination static VPN VPN description VPN No NAT
translate_hits = 3, untranslate_hits = 1198
2 (dmz) to (outside) source static DMZ_VLAN DMZ_VLAN destination static VPN VPN
translate_hits = 0, untranslate_hits = 0
如果我将 DMZ 到外部规则移到内部到外部规则之上,那么我可以访问 DMZ,但无法从 VPN 访问内部。
我不确定为什么这些规则的顺序会产生影响,因为如果顶部规则不匹配,它应该继续在列表中流动。
任何帮助都将不胜感激,尽管我的感觉告诉我,我只是在明显的地方犯了一个愚蠢的错误。
编辑:更多信息。
接口安全级别:
内部:100
非军事区:50
外部:0
NAT 规则来自show run nat
:
nat (inside,outside) source static any any destination static VPN VPN description VPN No NAT
nat (dmz,outside) source static DMZ_VLAN DMZ_VLAN destination static VPN VPN
object network DMZ_VLAN
nat (dmz,outside) dynamic interface
object network In_VLAN
nat (inside,outside) dynamic interface
正如我所言,访问列表不应适用,sysopt connection permit-vpn
除非我误解了这个命令,否则它应该启用来自 VPN 的流量,而不管 ACL 如何。
此外,ICMP 流量正在接受检查,因此返回流量应该不受访问列表的影响(再次,除非我误解了流量检查)
网络:
内部:10.1.4.0/24
DMZ:10.1.254.0/24
VPN:10.1.10.0/24
Packet-tracer
从 DMZ 到 VPN
Type: NAT
Subtype:
Result: ALLOW
Config:
nat (dmz,outside) source static DMZ_VLAN DMZ_VLAN destination static VPN VPN
Additional Information:
Static translate 10.1.254.1/0 to 10.1.254.1/0
一直packet-tracer
到最后都是“允许”......
答案1
固定的!
我不完全确定到底发生了什么导致了这个问题,但这似乎是正在发生的事情。
让我们再次回顾一下 NAT 规则。
nat (inside,outside) source static any any destination static VPN VPN
nat (dmz,outside) source static DMZ_VLAN DMZ_VLAN destination static VPN VPN
请注意这两条规则之间的区别,这两条规则(应该)针对不同的接口做同样的事情。
顶部 NAT 之所以像那样完全开放(any any
)是因为实际上有多个网络可以来自我们的网络内部,所以我们认为将其保持开放比定义可能出现的每个网络更容易。
似乎已经发生的问题是,当流量从 VPN 进入时,ASA 似乎会在决定通过防火墙的路径之前查看其 NAT。因此,它会根据顶级 NAT 检查流量,并且匹配,因为它肯定是从 VPN 到任何 NAT。而返回流量将从 DMZ_VLAN 到 VPN,因此不符合顶级规则。
我不确定匹配第一个 NAT 是否会导致 ASA 将流量引导到内部,或者它是否只是意识到出站流量将匹配不同的 NAT。
一旦我修改了顶部 NAT 规则,使其更加具体:
nat (inside,outside) source static IN_VLANS IN_VLANS destination static VPN VPN
一切都很完美!
奇怪的问题...但这个故事的寓意似乎是对所有事情都要具体,即使你认为它不会引起任何问题...因为它会引起问题。
答案2
好吧,稍微不那么乱了。不过,我还是没有看到任何网络定义;是什么让你认为使用 nonat 在这里有用?所涉及的网络可以解开这个谜团,但目前我们还不知道。
DMZ(大多具有公共 IP)通常不会直接连接到 VPN(大多没有)。
以下内容引起了我的注意:
因此,我为 VPN 的 DMZ 子网添加了一条静态无 NAT 规则:
nat (dmz,outside) 源静态 DMZ_VLAN DMZ_VLAN 目标静态 VPN VPN
然而,这样做恰恰相反:nat (X,Y)
是静态自然从是到 X
它也不是一个诺纳特规则。
到 VPN 的非 AT 应该源自另一个接口:
nat 0 (outside,dmz) DMZ VPN
这会将 DMZ IP 呈现给 VPN 接口,而不应用外部接口的规则。
当然,您也可以从外部对 DMZ 进行正常的 nat,但通常不鼓励这样做,因为您正在创建从较低安全性到较高安全性的访问。
答案3
阿兹,
从 VPN 客户端访问 DMZ。Cisco ASA 9.x
感谢您的信息,因为它帮助我解决了问题。我的 ASA 代码是 9.x,不再使用 nonats,而是使用静态 NAT。我发现与你的情况相同,在我的防火墙上,我有一些与目标 VPN 网络应用的任何 NAT。删除它并添加具体内容解决了我的问题,并且可以确认从我的 VPN 客户端访问内部和 DMZ。我使用以下几行解决了我的问题。希望这对其他人有所帮助。
删除了问题 NATS,从任意到 VPN 网络 IP:10.10.8.x
no nat (inside,any) source static any any destination static OBJ-10.10.8.0-24 OBJ-10.10.8.0-24 no-proxy-arp description NONAT
no nat (outside,any) source static any any destination static OBJ-10.10.8.0-24 OBJ-10.10.8.0-24 no-proxy-arp description NONAT
为下面的 VPN 网络内部和 DMZ 访问添加了特定的 NAT。
nat (inside,outside) source static NETWORK_OBJ_10.0.0.0_8 NETWORK_OBJ_10.0.0.0_8 destination static NETWORK_OBJ_10.10.8.0_24 NETWORK_OBJ_10.10.8.0_24 no-proxy-arp route-lookup
nat (dmz,outside) source static OBJ-10.10.7.0-24 OBJ-10.10.7.0-24 destination static NETWORK_OBJ_10.10.8.0_24 NETWORK_OBJ_10.10.8.0_24 no-proxy-arp route-lookup