如何通过外部 IP 访问我的内部服务器?

如何通过外部 IP 访问我的内部服务器?

我们正在尝试配置我们的 Cisco 5505,并且已经通过 ASDM 完成。

有一个大问题是我们无法解决的,那就是当你从内部进入外部,然后再返回内部时。

例如,我们有一个“内部”服务器,我们希望无论是在内部还是在外部,都能够使用相同的地址访问该服务器。

问题在于添加一条规则,允许流量从内部到外部然后再返回。

答案1

ASA 防火墙无法路由流量。您需要针对外部地址对内部地址进行掩码处理。

解决方案 1:使用静态 NAT 进行 DNS 修改

假设您的外部网站 IP 地址为 1.2.3.4,然后再次通过端口转发(或直接通过 NAT)到内部 IP 地址 192.168.0.10。通过 DNS 修改,将发生以下情况:

  1. 内部的客户端请求http://www.companyweb.com,最初翻译为 1.2.3.4
  2. ASA 拦截 DNS 回复数据包,并将 A 记录替换为 192.168.0.10
  3. 客户非常高兴,因为现在可以打开公司网站了:-)

有关如何启用此功能的详细信息:http://www.cisco.com/en/US/products/ps6120/products_configuration_example09186a00807968d1.shtml

解决方案 2:内部 DNS 服务器

如果您只有一个外部 IP,并且将此 IP 端口转发到不同服务器上的许多内部服务(假设端口 80 和 443 转到 192.168.0.10,端口 25 转到 192.168.0.11 等),则这个很有用。

它不需要在 ASA 上进行任何配置更改,但需要您在内部 DNS 服务器上复制外部域(Active Directory 已内置此功能)。您只需创建与现在完全相同的记录,只需在您内部拥有的服务上使用内部 IP 即可。

“解决方案”3:具有公共 IP 的 DMZ 接口

我不会详细介绍这一点,因为它要求您从 ISP 获取路由到 ASA 的 IP 地址子网。如今 IPv4 匮乏,这非常困难。

答案2

由于其他类似的问题被标记为重复并引用此处,我希望用第四个选项来补充@pauska 的优秀答案。

解决方案 4:通过 NAT Hairpinning 路由流量

允许流量通过 Cisco PIX/ASA 设备上的接口返回,例如当 nat:ed 客户端通过其公共 IP 访问 nat:ed 服务器时,Cisco 称之为 NAT Hairpinning。

它使用与 nat 和端口转发基本相同的配置参数,但增加了此命令:

same-security-traffic permit intra-interface

以及用于到服务器的内部到内部流量的第二个静态映射:

static(inside,inside) i.i.i.i x.x.x.x

这里详细描述了双接口设计的配置示例:http://www.cisco.com/en/US/products/ps6120/products_configuration_example09186a00807968d1.shtml#solution2

以下是三接口设计的目标 NAT 替代方案:http://www.cisco.com/en/US/products/ps6120/products_configuration_example09186a00807968c8.shtml#solution2

答案3

您无法从内部访问 Pix/ASA 上的外部接口。您应该将服务器外部地址的 DNS 请求重定向到内部地址。

相关内容