Web服务器的安全限制对负载均衡部署的影响

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
简介:

许多时候,我们在给客户介绍负载均衡设备部署时,为了尽可能减少对客户原网络架构的改动,会推荐采用旁路部署的方式。这种方式确实给我们工程师和客户带来极大的便利:一方面,客户的原业务系统无需改动,当需要实现流量均分的时候,只需要访问新增的VIP即可,相当于多了一个业务接口;另一方面,可在不影响业务正常运行的同时一边做测试,测试验证通过了再把整体流量切换过来。旁路部署在负载均衡设备来说也比较简单,设备如添加服务器一样侧挂在交换机上,与服务器同一网段,然后在原配置基础上添加源地址转换的策略,把客户端的IP强制NAT成指定的一个地址,这样便完成了。

然而在最近的一次调测中,就是这样简单的旁挂部署,却也出现了意想不到的情况。客户的业务结构很简单,3WEB 服务器(IIS)实现负载均衡。

 

当配置完成发现,登陆界面能够打开,在输入账号密码后却无法正常登陆到后台,一直停留在登陆界面,感觉就像账号验证信息无法传输到后台。开始会怀疑是某台服务器的配置出现异常,但每台服务器单独访问都很正常,最终结论还是在负载均衡设备上。

 

细下分析,登陆界面能打开,表明流量能正常分发,源地址转换(SNAT)也是ok的;   旁挂情况下,改变的除了客户端的源IP,还有就是目的地址,由原来的服务器IP改为负载均衡设备上的VIP。通过抓包分析,可以看到在客户端的请求包中“Referer”和“Host”字段标注了目的IP

 

在一些IIS的安全设置中,需要对“Referer”和“Host”进行校验(注:我们在上网的时候经常会发现如果直接打开一个页面有时会跳转到网站首页或者显示出错信息,要求必须从网站首页进入再打开连接。这样做的目的是为了防止别人使用iframe的方式嵌入自己的网页。 遇到这样的问题是因为页面中使用了HTTP-REFERER,通过Request.ServerVariables("HTTP_REFERER")验证页面来源,如果不是指定来源那么就跳转到指定页面)。

我们在负载均衡设备上定制了一个脚本,把请求包中对应的IP改为服务器的真实地址,由此绕开服务器的校验,改动后问题解决了。

when HTTP_REQUEST_SEND {

HTTP::header replace Host [LB::server addr]

if { not ([HTTP::header "Referer"] equals "")  } {

HTTP::header replace Referer "http://[LB::server addr]/"

}

}


本文转自 virtualadc 51CTO博客,原文链接:http://blog.51cto.com/virtualadc/720268

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
1月前
|
弹性计算 监控 负载均衡
|
1月前
|
负载均衡 网络协议 网络安全
SLB-Backend多实例部署配置健康检查
【10月更文挑战第22天】
68 3
|
1月前
|
运维 负载均衡 算法
|
17天前
|
运维 监控 负载均衡
slb后端服务器故障
slb后端服务器故障
40 13
|
24天前
|
弹性计算 监控 负载均衡
slb部署使用路径规则进行更细粒度控制
slb部署使用路径规则进行更细粒度控制
26 7
|
25天前
|
弹性计算 负载均衡 安全
slb应用服务器对Host头有校验要求
slb应用服务器对Host头有校验要求
24 6
|
24天前
|
域名解析 监控 负载均衡
slb部署虚拟主机(Virtual Hosts)
slb部署虚拟主机(Virtual Hosts)
26 5
|
25天前
|
负载均衡 网络协议 安全
slb多站点或多域名部署
slb多站点或多域名部署
32 4
|
1月前
|
安全 开发工具 Swift
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发。基础语法涵盖变量、常量、数据类型、运算符、控制流等,高级特性包括函数、闭包、类、结构体、协议和泛型。
30 2
|
1月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
46 3