attackoccurred攻击源负载均衡地址

attackoccurred攻击源负载均衡地址,第1张

智汇华云 | 负载均衡源地址可见技术
2022-12-13 14:13之家网站 (-)
摘要
在非网关型负载均衡器中,通常使用 FullNat 模式。在这种模式下,客户端访问后端服务器的源 IP 在负载均衡器上会被改变,导致在后端服务器上服务不能正确确定客户端的真实 IP 地址。在一些应用场景下,为了实现安全或者大数据分析等应用,需要感知客户端的真实 IP。本文介绍了一种 FullNat 模式下负载均衡的源地址可见方法。
概述
负载均衡有三种模式:DR,NAT,Tunnel。FullNat 模式在 NAT 模式下增加了源 IP NAT。FullNat 模式的优点:解决了 NAT 对 Director 和 RS 要求在同一个 vlan 的问题,适用更复杂的部署形式不要求配置 Director 作为网关,Director 与 RS 可以通过三层通讯。缺点:RS 看不到客户端真实 IP。
为了解决后端服务器感知客户端真实 IP,本文介绍了如下的方法。
四层源地址可见
四层流量通常是 TCP 和 UDP 协议报文。源地址可见的通常方法是在报文中某些字段携带客户端的真实 IP。在后端通过内核模块来获取客户端 IP。
TCP 源地址可见
TCP 流量是 TOA 来实现源地址可见。TOA 名字全称是 tcp option address,是 FullNat 模式下能够让后端服务器获取客户端 IP 的一种实现方式,它的基本原理比较简单。
客户端用户请求数据包到达负载均衡器时,负载均衡器在数据包的 tcp option 中插入源 IP 信息。
数据包到达后端服务器(装有 toa 内核模块)后,应用程序正常调用 getpeername 系统函数来获取连接的源端 IP 地址。
由于在 toa 代码中 hook(修改)了 inet_getname 函数(getpeername 系统调用对应的内核处理函数),该函数会从 tcp option 中获取负载均衡器填充的源 IP 信息。
这样后端服务器应用程序就获取到了真实客户端 IP,而且对应用程序来说是透明的。
TCP 头部格式如下:
在 option 选项部分携带客户端的 IP 地址。
IPv4 TOA 格式
opcode: opcode = 254
opsize: toa 大小 8 字节
port: 客户端端口
clientIP: 客户端 IP(4 字节)
注:opsize 大小包含了自身 opsize (2B) + port (2B) + ip (4B)
修改 option 的时机
负载均衡器需要对每个 tcp 数据包都要插入 toa 信息么?如果这样会影响到负载均衡器整体性能的,而且后端服务器也没必要对每个 tcp 数据包进行解析,当然也很影响服务器性能。其实只需要在第 3 次握手 ack 数据包中插入 toa 选项即可,后端服务器从 ack 数据包中解析并获取即可。
后端服务器上获取客户端 IP 获取。
TCP 协议栈中处理三次握手的 ack 数据包的函数是 tcp_v4_syn_recv_sock,完成连接的建立,并创建 newsock。在 TOA 内核模块中修改
1hook tcp_v4_syn_recv_sock_toa 函数,从 TCP 的 skb 中获取 tcp option 的携带的 IP 信息,保存到 socket 中
2 Hook inet_getname,应用程序在调用 getpeername 时,会使用 inet_getname_toa 函数处理,从 socket 中将保存的 ip 信息返回

1 可以通过配置反向代理实现本地java应用代理到阿里云负载均衡,然后外界可以通过阿里云负载均衡访问到本地java应用。
2 原因在于阿里云负载均衡可以实现流量分发和负载均衡的功能,同时也可以支持反向代理,将外部请求转发到指定的后端服务器,从而实现本地java应用的代理。
3 在具体 *** 作上,需要在阿里云负载均衡中配置反向代理规则,指定本地java应用的IP地址和端口号,然后将外部请求转发到该规则所对应的后端服务器上,即可实现本地java应用的代理。
同时,还需要保证本地java应用所在的服务器能够被外界访问到,可以通过配置安全组规则和网络ACL等方式来实现。

nginx前置后置的分流方案:
1、根据IP分流。
2、根据URL分流。
3、根据权重。
4、根据响应时间。轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,后端服务器down掉,能自动剔除。weight指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。每个请求按访问ip的hash结果分配,每个访客固定访问一个后端服务器,解决session的问题。_hash。fair(第三方)按后端服务器的响应时间来分配请求,响应时间短的优先分配。url_hash(第三方)按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

验证码直接获取方法步骤如下:用户个人信息界面输入个人账户信息(账户和密码,有的时候也可能直接是手机号)后,点击发送验证码以后,系统就会根据账号密码找到自己的其他的信息(手机号),当手机号码知道了,就会访问后端提供的短信验证码接口,该接口需要提供的参数就是我们的手机号码,等接口收到这些数据后,就会根据特定的算法,自动生成一个六位或者四位的验证码;随后,我们的后端服务器会把生成的验证码存储到数据库中,之后,我们的服务器回去调用第三方的短信发送平台(三大运营商),然后把我们的验证码统管短信平台发送到手机,最后用户得到验证码后,就会在验证码输入框中进行输入对应的验证码,相应的,会触发短信验证码接口,后端程序就会校验自己输入的验证码数据是否正确。在保持手机通讯畅通的情况下,得到自己的短信验证码的方法如下:以oppor11为例,在手机桌上打开短信。
2、2、打开短信后,点击通知信息。
3、3、接下来,点击信息。
4、4、在随后出现的页面里,可以看到验证码信息。步骤1、在接码平台上注册一个属于自己的账号并登陆;
步骤2、点击添加一个想要的项目;
步骤3、填写完资料后,点击添加;
步骤4、输入想要获取验证码的手机号,等待自动获取即可。
空号,指无人使用的电话号码,或者说,是不存在的电话号码。包括手机号码和座机号码。原本有人使用的号码,但在更改号码后,原号码可能变成空号,也可能成为其他某个人的新电话号。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13482111.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-15
下一篇 2023-08-15

发表评论

登录后才能评论

评论列表(0条)

保存