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,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
XML JSON 数据安全/隐私保护
Web服务
【10月更文挑战第18天】Web服务
71 9
|
13天前
|
Web App开发 编解码 vr&ar
使用Web浏览器访问UE应用的最佳实践
在3D/XR应用开发中,尤其是基于UE(虚幻引擎)开发的高精度场景,传统终端因硬件局限难以流畅运行高帧率、复杂效果的三维应用。实时云渲染技术,将渲染任务转移至云端服务器,降低终端硬件要求,确保用户获得流畅体验。具备弹性扩展、优化传输协议、跨平台支持和安全性等优势,适用于多种终端和场景,特别集成像素流送技术,帮助UE开发者实现低代码上云操作,简化部署流程,保留UE引擎的强大开发能力,确保画面精美且终端轻量化。
使用Web浏览器访问UE应用的最佳实践
|
3月前
|
XML JSON 安全
Web服务是通过标准化的通信协议和数据格式
【10月更文挑战第18天】Web服务是通过标准化的通信协议和数据格式
198 69
|
2月前
|
Go UED
Go Web服务中如何优雅平滑重启?
在生产环境中,服务升级时如何确保不中断当前请求并应用新代码是一个挑战。本文介绍了如何使用 Go 语言的 `endless` 包实现服务的优雅重启,确保在不停止服务的情况下完成无缝升级。通过示例代码和测试步骤,详细展示了 `endless` 包的工作原理和实际应用。
67 3
|
2月前
|
JSON Go UED
Go Web服务中如何优雅关机?
在构建 Web 服务时,优雅关机是一个关键的技术点,它确保服务关闭时所有正在处理的请求都能顺利完成。本文通过一个简单的 Go 语言示例,展示了如何使用 Gin 框架实现优雅关机。通过捕获系统信号和使用 `http.Server` 的 `Shutdown` 方法,我们可以在服务关闭前等待所有请求处理完毕,从而提升用户体验,避免数据丢失或不一致。
39 1
|
2月前
|
XML 安全 PHP
PHP与SOAP Web服务开发:基础与进阶教程
本文介绍了PHP与SOAP Web服务的基础和进阶知识,涵盖SOAP的基本概念、PHP中的SoapServer和SoapClient类的使用方法,以及服务端和客户端的开发示例。此外,还探讨了安全性、性能优化等高级主题,帮助开发者掌握更高效的Web服务开发技巧。
|
3月前
|
XML JSON 安全
定义Web服务
【10月更文挑战第18天】定义Web服务
90 12
|
2月前
【Azure App Service】PowerShell脚本批量添加IP地址到Web App允许访问IP列表中
Web App取消公网访问后,只允许特定IP能访问Web App。需要写一下段PowerShell脚本,批量添加IP到Web App的允许访问IP列表里!
|
3月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
217 3
|
2月前
|
开发框架 搜索推荐 数据可视化
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
138 62