当前位置: 首页 > news >正文

网络安全---负载均衡案例

一、首先环境配置

1.上传文件并解压

2.进入目录下

为了方便解释,我们只用两个节点,启动之后,大家可以看到有 3 个容器(可想像成有 3 台服务器就成)。  

 二、使用蚁剑去连接

因为两台节点都在相同的位置存在 ant.jsp,所以连接的时候也没出现什么异常。

 一旦有一台机器上没有ant.jsap,那再次请求的时候,就会出现 404 错误,就是一会正常一会错误,漂移ip的问题

 三、实际问题

1.1我们访问的时候,不知道在那台机器执行      解决:多上传

1.2文件上传的时候,不知道上传到那台机器,无法知道下次请求谁进行执行的

1.3上传**工具时候,不知道上传到那台机器(分片文件上传不完整)

1.4反向连接,内网所有机器无法访问外网,咱们把飘逸的机器当做服务器部署例如reGeorge/HtAbs这些工具,我们与内部建立的传输隧道当ip飘逸的时候,传输便会中断1

四、解决

1.1关掉一套机器(作死玩法)

1.2写一个shell脚本在执行命令前判断一下是不是此机器,再选择性执行

 实现效果:

1.3在Web 层做一次 HTTP 流量转发 

虽然我们不能访问,但是NGinx可以,两台服务器也是可以的

图解:

 总结:不管我怎么访问,我通过转发后的结果是,始终在访问一台机器

1.4我们使用流量转发的代码

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="javax.net.ssl.*" %>
<%@ page import="java.io.ByteArrayOutputStream" %>
<%@ page import="java.io.DataInputStream" %>
<%@ page import="java.io.InputStream" %>
<%@ page import="java.io.OutputStream" %>
<%@ page import="java.net.HttpURLConnection" %>
<%@ page import="java.net.URL" %>
<%@ page import="java.security.KeyManagementException" %>
<%@ page import="java.security.NoSuchAlgorithmException" %>
<%@ page import="java.security.cert.CertificateException" %>
<%@ page import="java.security.cert.X509Certificate" %>
<%!public static void ignoreSsl() throws Exception {HostnameVerifier hv = new HostnameVerifier() {public boolean verify(String urlHostName, SSLSession session) {return true;}};trustAllHttpsCertificates();HttpsURLConnection.setDefaultHostnameVerifier(hv);}private static void trustAllHttpsCertificates() throws Exception {TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {public X509Certificate[] getAcceptedIssuers() {return null;}@Overridepublic void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {// Not implemented}@Overridepublic void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {// Not implemented}} };try {SSLContext sc = SSLContext.getInstance("TLS");sc.init(null, trustAllCerts, new java.security.SecureRandom());HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());} catch (KeyManagementException e) {e.printStackTrace();} catch (NoSuchAlgorithmException e) {e.printStackTrace();}}
%><%String target = "http://172.20.0.2:8080/ant.jsp";URL url = new URL(target);if ("https".equalsIgnoreCase(url.getProtocol())) {ignoreSsl();}HttpURLConnection conn = (HttpURLConnection)url.openConnection();StringBuilder sb = new StringBuilder();conn.setRequestMethod(request.getMethod());conn.setConnectTimeout(30000);conn.setDoOutput(true);conn.setDoInput(true);conn.setInstanceFollowRedirects(false);conn.connect();ByteArrayOutputStream baos=new ByteArrayOutputStream();OutputStream out2 = conn.getOutputStream();DataInputStream in=new DataInputStream(request.getInputStream());byte[] buf = new byte[1024];int len = 0;while ((len = in.read(buf)) != -1) {baos.write(buf, 0, len);}baos.flush();baos.writeTo(out2);baos.close();InputStream inputStream = conn.getInputStream();OutputStream out3=response.getOutputStream();int len2 = 0;while ((len2 = inputStream.read(buf)) != -1) {out3.write(buf, 0, len2);}out3.flush();out3.close();
%>

1.5具体操作总结

1.5.1我们将 target 指向了 LBSNode1 的 ant.jsp

注意:

a) 不要使用上传功能,上传功能会分片上传,导致分散在不同 Node 上。

b) 要保证每一台 Node 上都有相同路径的 antproxy.jsp, 所以保存了很多次,保证每一台都上传了脚本

 1.5.2

修改 Shell 配置, 将 URL 部分填写为 antproxy.jsp 的地址,其它配置不变

 1.5.3

测试执行命令, 查看 IP

可以看到 IP 已经固定, 意味着请求已经固定到了 LBSNode1 这台机器上了。此时使用分片上传、HTTP 代理,都已经跟单机的情况没什么区别了。

1.5.4

查看一下 Node1 上面的 tomcat 的日志, 可以看到收束的过程:

Node1 和 Node2 交叉着访问 Node1 的 /ant.jsp 文件,符合 nginx 此时的 LBS 策略。

五、整体实验总结

优点:

  • 低权限就可以完成,如果权限高的话,还可以通过端口层面直接转发,不过这跟 1.1的关服务就没啥区别了

  • 流量上,只影响访问 WebShell 的请求,其它的正常业务请求不会影响。

  • 适配更多工具

缺点:

  • 该方案需要「目标 Node」和「其它 Node」 之间内网互通,如果不互通就凉了

相关文章:

网络安全---负载均衡案例

一、首先环境配置 1.上传文件并解压 2.进入目录下 为了方便解释&#xff0c;我们只用两个节点&#xff0c;启动之后&#xff0c;大家可以看到有 3 个容器&#xff08;可想像成有 3 台服务器就成&#xff09;。 二、使用蚁剑去连接 因为两台节点都在相同的位置存在 ant.jsp&…...

解决nginx的负载均衡下上传webshell的问题

目录 环境 问题 访问的ip会变动 执行命令的服务器未知 上传大文件损坏 深入内网 解决方案 环境 ps :现在已经拿下服务器了&#xff0c;要解决的是负载均衡问题, 以下是docker环境&#xff1a; 链接: https://pan.baidu.com/s/1cjMfyFbb50NuUtk6JNfXNQ?pwd1aqw 提…...

vue 关闭prettier警告warn

这个就是我们创建vue cli的时候 把这个给默认上了 关闭这个只需在.eslintrc.js页面里边添加一行代码"prettier/prettier": "off"...

听GPT 讲Prometheus源代码--rules

Prometheus的rules目录主要包含规则引擎和管理规则的文件: engine.go 该文件定义了规则引擎的接口和主要结构,包括Rule,Record,RuleGroup等。它提供了规则的加载、匹配、评估和结果记录的功能。 api.go 定义了用于管理和查询规则的RESTful API,包括获取、添加、删除规则等方法。…...

TIA博途_通过EXCEL快速给PLC程序段添加注释信息的方法示例

通过EXCEL快速给PLC程序段添加注释信息的方法示例 如下图所示,以OB1为例,正常情况下,我们可以在博途中直接输入各个程序段的注释信息, 但是如果程序段较多的话,逐个输入的话效率不高,此时可以参考下面这种通过EXCEL进行快速添加的方法。 如下图所示,选中某个OB或FC、FB块…...

【力扣】496. 下一个更大元素 I <单调栈、模拟>

【力扣】496. 下一个更大元素 I nums1 中数字 x 的 下一个更大元素 是指 x 在 nums2 中对应位置 右侧 的 第一个 比 x 大的元素。给你两个没有重复元素的数组 nums1 和 nums2 &#xff0c;下标从 0 开始计数&#xff0c;其中nums1 是 nums2 的子集。   对于每个 0 < i <…...

Java调用https接口添加证书

使用InstallCert.Java生成证书 /** Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.** Redistribution and use in source and binary forms, with or without* modification, are permitted provided that the following conditions* are met:** - Redistri…...

C++入门:函数缺省参数与函数重载

目录 1.函数缺省参数 1.1 缺省参数概念 1.2 缺省参数分类 2.函数重载 2.1 函数重载概念 2.2 C支持函数重载的原理 1.函数缺省参数 1.1 缺省参数概念 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时&#xff0c;如果没有指定实 参则采用该形参的…...

Android 场景Scene的使用

Scene 翻译过来是场景&#xff0c;开发者提供起始布局和结束布局&#xff0c;就可以实现布局之间的过渡动画。 具体可参考 使用过渡为布局变化添加动画效果 大白话&#xff0c;在 Activity 的各个页面之间切换&#xff0c;会带有过渡动画。 打个比方&#xff0c;使用起来类似…...

Python tkinter Notebook标签添加关闭按钮元素,及左侧添加存储状态提示图标案例,类似Notepad++页面

效果图展示 粉色框是当前页面&#xff0c;橙色框是鼠标经过&#xff0c;红色框是按下按钮&#xff0c;灰色按钮是其他页面的效果&#xff1b; 存储标识可以用来识别页面是否存储&#xff1a;例如当前页面已经保存用蓝色&#xff0c;未保存用红色&#xff0c;其他页面已经保存用…...

基于web网上订餐系统的设计与实现(论文+源码)_kaic

目录 1绪论 1.1课题研究背景 1.2研究现状 1.3主要内容 1.4本文结构 2网上订餐系统需求分析 2.1系统业务流程分析 2.2消费者用户业务流程分析 2.3商户业务流程分析 2.4管理员用户流程分析消费者用户用例分析 2.5系统用例分析 3网上订餐系统设计 3.1功能概述 3.2订单管理模块概要…...

C#生产流程控制(串行,并行混合执行)

开源框架CsGo https://gitee.com/hamasm/CsGo?_fromgitee_search 文档资料&#xff1a; https://blog.csdn.net/aa2528877987/article/details/132139337 实现效果 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37…...

【广州华锐视点】VR线上教学资源平台提供定制化虚拟现实学习内容

虚拟现实&#xff08;VR&#xff09;技术的出现为我们提供了一种全新的在线教学方式。由广州华锐视点开发的VR线上教学资源平台&#xff0c;作为一个综合性的学习工具&#xff0c;正在教育领域迅速发展&#xff0c;并被越来越多的教育机构和学生所接受。那么&#xff0c;VR线上…...

计算机视觉的应用11-基于pytorch框架的卷积神经网络与注意力机制对街道房屋号码的识别应用

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下计算机视觉的应用11-基于pytorch框架的卷积神经网络与注意力机制对街道房屋号码的识别应用&#xff0c;本文我们借助PyTorch&#xff0c;快速构建和训练卷积神经网络&#xff08;CNN&#xff09;等模型&#xff0c;…...

正则表达式:学习使用正则表达式提取网页中的目标数据

使用正则表达式提取网页中的目标数据主要有以下几个步骤&#xff1a; 获取网页内容&#xff1a;首先&#xff0c;你需要使用Python的库&#xff08;如requests&#xff09;获取网页的HTML内容。 构建正则表达式&#xff1a;根据你想要提取的目标数据的特征&#xff0c;构建相应…...

最长重复子数组(力扣)动态规划 JAVA

给两个整数数组 nums1 和 nums2 &#xff0c;返回 两个数组中 公共的 、长度最长的子数组的长度 。 示例 1&#xff1a; 输入&#xff1a;nums1 [1,2,3,2,1], nums2 [3,2,1,4,7] 输出&#xff1a;3 解释&#xff1a;长度最长的公共子数组是 [3,2,1] 。 示例 2&#xff1a; 输…...

JavaWeb_LeadNews_Day6-Kafka

JavaWeb_LeadNews_Day6-Kafka Kafka概述安装配置kafka入门kafka高可用方案kafka详解生产者同步异步发送消息生产者参数配置消费者同步异步提交偏移量 SpringBoot集成kafka 自媒体文章上下架实现思路具体实现 来源Gitee Kafka 概述 对比 选择 介绍 producer: 发布消息的对象称…...

ATTCK覆盖度97.1%!360终端安全管理系统获赛可达认证

近日&#xff0c;国际知名第三方网络安全检测服务机构——赛可达实验室&#xff08;SKD Labs&#xff09;发布最新测试报告&#xff0c;360终端安全管理系统以ATT&CK V12框架攻击技术覆盖面377个、覆盖度97.1%&#xff0c;勒索病毒、挖矿病毒检出率100%&#xff0c;误报率0…...

透视俄乌网络战之一:数据擦除软件

数据擦除破坏 1. WhisperGate2. HermeticWiper3. IsaacWiper4. WhisperKill5. CaddyWiper6. DoubleZero7. AcidRain8. RURansom 数据是政府、社会和企业组织运行的关键要素。数据擦除软件可以在不留任何痕迹的情况下擦除数据并阻止操作系统恢复摧&#xff0c;达到摧毁或目标系统…...

微服务中间件--Nacos

Nacos 1. Nacos入门a.服务注册到Nacosb.Nacos服务分级存储模型c.NacosRule负载均衡d.服务实例的权重设置e.环境隔离 - namespacef.Nacos和Eureka的对比 2. Nacos配置管理a.统一配置管理b.配置热更新c.多环境配置共享 1. Nacos入门 Nacos是阿里巴巴的产品&#xff0c;现在是Spr…...

光学邻近校正(OPC)技术:原理、优化与应用

1. 光学邻近校正技术概述在半导体制造的光刻工艺中&#xff0c;光学邻近效应&#xff08;Optical Proximity Effect&#xff09;是影响图案转移精度的主要挑战之一。当特征尺寸缩小到45nm及以下节点时&#xff0c;光衍射和光阻化学反应导致的图案失真变得尤为显著。具体表现为&…...

Claude code热门快捷指令清单

文章目录1、Claude code 热门快捷指令1.1、上下文控制类1.2、回退与实验类1.3、质量审查类1.4、模型与成本控制类1.5、自动化与远程协作类1.6、官方热门指令清单1、Claude code 热门快捷指令 Claude code热门快捷指令清单。分为上下文控制、回退与实验、质量审查、模型与成本控…...

云原生存储优化:优化云原生环境的存储性能

云原生存储优化&#xff1a;优化云原生环境的存储性能 一、云原生存储优化概述 1.1 云原生存储优化的定义 云原生存储优化是指通过优化存储架构、配置和使用方式&#xff0c;提高云原生环境中存储的性能、可靠性和成本效益的过程。 1.2 云原生存储优化的价值 性能提升&#xff…...

智能工厂能源监测管理平台解决方案

在某大型制造企业的生产园区&#xff0c;管理人员长期面临着一系列能源管理困境&#xff1a;由于厂区各个电表仍依赖人工抄录&#xff0c;数据滞后且易出错&#xff0c;导致管理层无法实时掌握每条生产线甚至每台关键设备的真实耗电情况&#xff1b;同时&#xff0c;由于电表分…...

天线阻抗匹配原理与工程实践指南

1. 天线阻抗匹配基础概念解析阻抗匹配是射频工程师日常工作中最常遇到的技术挑战之一。简单来说&#xff0c;它就像是在为天线系统"调音"&#xff0c;确保射频能量能够顺畅地从发射电路传递到天线&#xff0c;而不会在连接处产生"回声"&#xff08;反射波&…...

流水线插件开发从3天缩短到10分钟:嘉为蓝鲸AI技能实战

流水线插件开发从3天缩短到10分钟&#xff1a;嘉为蓝鲸AI技能实战 在企业 DevOps 落地中&#xff0c;流水线插件是工具对接、流程沉淀、平台扩展的核心。但插件开发往往面临门槛高、周期长、质量不稳定等问题。一个简单插件&#xff0c;两三天就这么耗进去了。01 插件开发的真实…...

从零构建Copaw自定义Channel:WebSocket实时通信与Agent能力接入实战

1. 项目概述&#xff1a;一个最小可用的Copaw自定义Channel实现如果你正在研究如何将Copaw Agent的能力“暴露”给外部世界&#xff0c;比如一个网页、一个桌面应用&#xff0c;或者你自己的业务系统&#xff0c;那么你很可能已经意识到&#xff0c;官方文档里关于Channel的示例…...

别再乱改网段了!深入理解 VMware NAT 与桥接模式:根据你的真实需求选择网络配置(附场景对比)

深度解析VMware网络模式&#xff1a;NAT与桥接的实战选择指南 虚拟化技术已成为现代开发与测试环境的核心基础设施&#xff0c;而网络配置的选择往往决定了整个工作流的顺畅程度。许多用户在初次接触VMware Workstation时&#xff0c;面对NAT、桥接等模式常感到困惑——究竟哪种…...

Zotero PDF Translate终极配置指南:如何一键激活20+翻译服务

Zotero PDF Translate终极配置指南&#xff1a;如何一键激活20翻译服务 【免费下载链接】zotero-pdf-translate Translate PDF, EPub, webpage, metadata, annotations, notes to the target language. Support 20 translate services. 项目地址: https://gitcode.com/gh_mir…...

WinMerge过滤器进阶:从基础规则到实战场景配置

1. WinMerge过滤器入门&#xff1a;从零开始理解规则配置 WinMerge作为一款老牌开源文件对比工具&#xff0c;其过滤器功能常常被低估。很多开发者只是用它来排除版本控制目录&#xff0c;但实际上它能做的远不止这些。我第一次接触WinMerge过滤器是在处理一个Java项目时&#…...