我有 2 台设备,一台 Cisco ASA,后面还有一台设备。Cisco 和另一台设备都有 IPsec 隧道,但通向不同的位置。我需要确保另一台设备在进行 NAT 时其源端口不是 UDP-500,因为该端口与 Cisco IPsec 服务相同,因此我们会看到一个问题,即发往另一台设备的回复数据包反而到达了 ASA。
根据 Cisco 关于 NAT 的常见问题解答(http://www.cisco.com/c/en/us/support/docs/ip/network-address-translation-nat/26704-nat-faq-00.html)它根据“问:配置 PAT(过载)时,每个内部全局 IP 地址可以创建的最大转换数是多少?”默认尽可能保留端口。
问题:如何强制所有 PAT 映射使用源端口 > 1024?
或者,我如何强制 ASA 忽略来自特定 IP 地址的 IPsec 数据包并将它们视为普通 NAT 数据包并将它们转发回内部设备?
在 linux iptables 上我会使用类似:iptables -t nat -A POSTROUTING -o eth0 -p udp -j SNAT --to-source xxxx:1024-30000
答案1
通过另一种方法解决了这个问题,禁用 Cisco 上与内部设备通信的 IP 的 IPsec 访问。通过控制平面访问列表执行此操作:
ciscoasa(config)# access-list FILTER-VPN deny ip x.x.x.x y.y.y.y any ciscoasa(config)# access-list FILTER-VPN permit ip any any ciscoasa(config)# access-group FILTER-VPN in interface outside control-plane
(来源:https://supportforums.cisco.com/discussion/12001786/restrict-certain-ip-addresses-establishing-ipsec)