开发者社区> 余二五> 正文

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.8  netmask 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应用到外部接口。











本文转自 qq8658868 51CTO博客,原文链接:http://blog.51cto.com/hujizhou/1869048,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【Filter 不登陆无法访问】web项目中写一个过滤器实现用户不登陆,直接给链接,无法进入页面的功能
在web项目中写一个过滤器实现用户不登陆,直接给链接,无法进入页面,而重定向到登陆界面的功能。 项目是用springMVC+spring+hibernate实现 (和这个没有多大关系) 第一步: 首先写一个登录权限过滤类--LoginFilter类实现Filter接口 1 package com.
1912 0
您试图在此 Web 服务器上访问的 Web 应用程序当前不可用
错误提示: 服务器应用程序不可用 您试图在此 Web 服务器上访问的 Web 应用程序当前不可用。请点击 Web 浏览器中的“刷新”按钮重试您的请求。 管理员注意事项: 详述此特定请求失败原因的错误信息可在 Web 服务器的系统事件日志中找到。
634 0
NetCore使用Jwtbearer给WebAPI添加访问控制
原文:NetCore使用Jwtbearer给WebAPI添加访问控制 现在JWT代替session来做访问控制已经成为大部分webapi的做法,今天我们也来尝试一下 WebAPI使用NetCore2.
1515 0
用EIP直通车解决迁移到VPC后服务器内无公网IP的过程
背景: 经典迁移VPC对于目前的阿里云来说 是解决一个重大的历史遗留问题。在上古时期,公有云的租户不多,因为可以给每个实例分配一个EIP一个内网IP。隔离租户只用了安全组来实现,因此其实留下了蛮多问题的。
2232 0
DWR3访问WEB元素的两种方法
DWR3访问WEB元素主要有两种方法, 第一种是类似于SpringMVC的用法,直接使用,也就是说在需要使用DWR来远程调用的方法上给一个需要用到的WEB元素作为参数,这个参数在调用该方法的时候不需要用户来传递,当调用该方法的时候系统会自动的给该参数赋值,这时候我们就可以在方法体中自由的...
734 0
struts2访问WEB元素
直接贴代码, 第一种: public class Test1 extends ActionSupport { private Map request; private Map session; private Map application; //虽然说上面定义的...
577 0
使用Nginx反向代理和proxy_cache缓存搭建CDN服务器加快Web访问速度
碰到问题:移动用户访问web服务器www.osyunwei.com很慢解决办法:1、在移动机房放置一台nginx反向代理服务器2、通过域名DNS智能解析,所有移动用户访问www.osyunwei.com时解析到nginx反向代理服务器3、nginx反向代理服务器与web服务器之间采用专线连接系统运维  www.
1727 0
+关注
20378
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载