发表于 2018-7-17 08:28:04

Cisco ASA Hairpinning解决内网使用公网IP访问web服务

  说来挺拗口,是大部分人都会遇到的问题。特别是没有使用单独的DMZ区对外发布服务器的人必须面对的问题。
  情景说明:
  通过Cisco ASA 5520 防火墙,使用公网IP 8.8.8.8(outside),发布了一台WEB服务器,其私网IP是192.168.1.8(inside)。
  希望实现的目标:
  公司内部(位于inside)用户计算机,想使用公网IP 8.8.8.8(或解析成公网IP的域名)访问这台(位于inside)WEB服务器。
  默认情景下,公司内部inside计算机无法通过公网IP访问到这台inside服务器。因为思科的防火墙不允许inside进来的流量,未经其它接口出去而直接从inside返回(会被ASA直接丢弃)。
  为实现在公司内部(inside)也能使用公网IP访问同样在inside的这台WWW服务器,思科至少有几种做法:
  一是Alias + static NAT,配置别名。
  原理就是内部的计算机到外部进行DNS查询时,ASA根据别名配置,将返回的公网IP替换成私网IP,这样其实内部计算机直接使用私网IP访问WWW服务器。(可以使用ping 域名查看返回的IP地址进行验证)
  二是DNS Doctoring + static NAT。
  原理同Alias,是更新版本IOS的功能。在7.0以上的版本中已不推荐使用Alias(若使用了Alias,则ASDM会提示不支持Alias而无法加载配置)。
  三是 Hairpinning +static NAT。
  原理是允许inside进来的流量,未经其它接口出去而直接从inside接口返回。
  相关的命令是:same-security-traffic permit intra-interface 俗称:Hairpinning
  为此花了两天时间琢磨了一下,才发现要7.2及以后的IOS版本才支持Hairpinning。晚上将ASA5520从7.0顺利升级到8.2,Hairpinning配置成功。
  Hairpinning相关配置如下:
  1、same-security-traffic permit intra-interface
  !--- 启用Hairpinning功能,允许流量直接原路径返回。
  2、nat (inside) 1 192.168.100.0 255.255.255.0
  !--- 为内网用户访问公网定义NAT。
  3、global (outside) 1 interface
  !--- 为内网用户访问公网定义global地址。
  4、global (inside) 1 interface
  !--- 为内网用户使用Hairpinning访问内部服务器定义global地址。
  5、static (inside,outside) 8.8.8.8 192.168.1.8 netmask 255.255.255.255
  !--- 使用Static NAT映身一台服务器,公网IP 8.8.8.8,内网IP 192.168.1.8。
  6、static (inside,inside) 8.8.8.8 192.168.1.8netmask 255.255.255.255
  !--- 为Hairpinning流量返回路径定义NAT映射:8.8.8.8 ----> 192.168.1.8。
  7、access-list outside_access_in extended permit tcp any host 8.8.8.8 eq 80
  !--- 配置ACL对外发布WWW服务,端口为80。
  8、access-group outside_access_in in interface outside
  !--- 将ACL应用到外部接口。
页: [1]
查看完整版本: Cisco ASA Hairpinning解决内网使用公网IP访问web服务