被他人错误解析域名到雷池 WAF网关的处理办法

作者:田逸

最近一些项目的站点经常发告警短信,提示网站无法访问。通过排查,发现后端数据库资源都被耗尽(连接数上千,正常情况是小于100),负载也高得吓人,如下图所示。

“load average”数值最高的时候,能超过1000。再排查访问异常站点的Web日志,大致判断是被人盯上了。为了解决这个问题,在不能增加任何投入的情况下,决定部署一套开源的WAF。通过综合评估,最终选择雷池作为安全防范工具,部署在网络的边界处。由于项目涉及的项目很多,重新解析域名会带来麻烦,因此我决定将负载均衡的公网VIP迁移到WAF网关,而负载均衡器的VIP设置成内网地址。这样一来,后端的网络结构一概不用改变,大大降低了操作风险。下图为添加WAF前与添加WAF的结构对比。

因为没有经费支持,只好找了一个有公网地址的Proxmox VE单节点系统,创建好虚拟机并安装好操作系统Centos 7,系统能正常远程正常访问后,以网络方式安装好WAF平台雷池。这个WAF雷池安装非常简单,就一条指令“bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"”解决问题(如下图所示)。

指令正常执行完毕以后,用浏览器访问WAF的公网IP并加默认端口号“9433”进入管理后台登录界面(如下图所示)。

设置好站点防护以后,确实起到了很大的作用,数据库并发连接数恢复到几十个,而数据库所在系统的“load average”保持在3以下,即便各种非正常访问请求任然猖獗(如下图所示)。

所有项目的网站在WAF的保护下运行平稳,大家以为可以稍微松一口气了,突然,相关人员接到IDC机房打来的电话,告知提供网关服务的WAF所使用的公网地址,同时被解析到不相干的域名,需要立即处理,不然就要封IP,而且给出了时限(限定一个小时内处理)。再半小时内,接连来了好几个电话。经运营人员排查,是某个注册用户,错误地将他个人域名解析到WAF所绑定的公网地址。运行人员根据平台上的注册信息,多次联系该用户,无果。IDC机房的人给了一个折中的方案,当访问这个被错误解析过来的域名,返回错误代码“403”就可以应付过去。

登录WAF Web管理后天,防护站点添加错误解析过来的域名“secooler.cn”,端口号“80”,并随意填写一个上游服务器的内网地址,如下图所示。

提交这个设置,然后以SSH客户端登录到WAF所在的宿主系统。进入WAF后台Web工具Nginx相关的配置目录,此目录默认的安装位置为“/data/safeline/resources/nginx”,在这个目录里,有Nginx的主配置文件“nginx.conf”,这个文件的最后几行,以包含方式将我们从WAF管理后台添加的“防护站点”作为分支配置,如下图所示。

因为WAF是在Docker下管理和运行Nginx服务的,所以配置文件的目录实际为“/data/safeline/resources/nginx/sites-enabled”等。进入这个目录,以关键字“secooler”在此目录检索,看其具体存在于哪个文件,方便做进一步的定位,如下图所示。

根据输出,手动从WAF Web管理后天添加的这个被错误解析过来的域名,存在于文件“IF_backend_20”。打开文本文件“IF_backed_20”,大概在这个文件的第45行,有一个http跳转,如下图所示。

乘热打铁,切换到目录“/data/safeline/resources/nginx/custom_params”,找到文件backend_20(这个文件也是在WAF Web添加域名后,自动生成的),默认情况下,它是个空文件。编辑这个文件,插入文本行“return 403;”如下图所示。

保存修改,执行命令“docker exec -it safeline-tengine nginx -t”进行Nginx的语法检查,无误后继续执行命令“docker exec -it safeline-tengine nginx –s reload”重启Nginx服务。

用浏览器或者命令行访问www.secooler.cn,返回http状态码403,IDC机房那边来消息说可以了,问题解决。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/581323.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

照着这几步做,轻松搭建企业知识库

在当今信息爆炸的时代,企业面临着海量的知识和信息。如何高效地管理和利用这些知识成为了企业发展的关键。而搭建一个适合企业的知识库,可以帮助企业更好地组织和共享知识,提高工作效率和竞争力。下面将为大家介绍一些简单的步骤,…

Xshell 从github克隆项目:使用ssh方式。

接上文: https://blog.csdn.net/liu834189447/article/details/135247868 是能克隆项目了,但是速度太磕碜了,磕碜到难以直视。 找到另外一种办法,使用SSH克隆项目 速度嘎嘎猛。 首先得能进得去github网站,不能点上边…

Centos7:Jenkins+gitlab+node项目启动(1)

Centos7:Jenkinsgitlabnode项目启动(1) Centos7:Jenkinsgitlabnode项目启动(1)-CSDN博客 Centos7:Jenkinsgitlabnode项目启动(2) Centos7:Jenkinsgitlabnode项目启动(2)-CSDN博客 Centos7:Jenkinsgitlabnode项目启…

uni-app/vue封装etc车牌照输入,获取键盘按键键值

先看下效果如下&#xff1a; 动态图如下 uniapp的keyup获取不到keyCode和compositionstart&#xff0c;compositionend&#xff0c;所以需要监听input节点的keyup事件&#xff0c; 思路以及代码如下&#xff1a; 1.将每一个字符用文本框输入&#xff0c;代码如下 <view …

TCP的三次握手

TCP 是一种面向连接的单播协议&#xff0c;在发送数据前&#xff0c;通信双方必须在彼此间建立一条连接。所谓的“连接”&#xff0c;其实是客户端和服务器的内存里保存的一份关于对方的信息&#xff0c;如 IP 地址、端口号等。 TCP 可以看成是一种字节流&#xff0c;它…

反序列化漏洞分析

接着昨天的来说&#xff0c;由于fastjson调试起来过程比较复杂&#xff0c;在这里直接看关键点&#xff1a;首先会获取字符串的第一对引号中的内容 如果内容为type就会加载下一对引号中的类 在JavaBeanInfo.class中会获取类中所有详细详细 在这里匹配以set开头的方法 methodNam…

Amazon CodeWhisperer 免费 AI 代码生成助手体验分享

今年上半年&#xff0c;亚马逊云科技正式推出了实时AI编程助手 Amazon CodeWhisperer&#xff0c;还提供了供所有开发人员免费使用的个人版版本。经过一段时间的体验&#xff0c;我觉得 CodeWhisperer 可以处理编程工作中遇到的很多问题&#xff0c;并且帮助开发人员提高编程效…

C/C++学习笔记十三 C++中的重载运算符

1、什么是运算符重载&#xff1f; 运算符重载是 C 中的一项功能&#xff0c;使运算符&#xff08;例如 、- 等&#xff09;能够处理用户定义的数据类型。这种机制称为编译时多态性&#xff0c;并提供了为不同数据类型定制运算符行为的优点。 例如&#xff0c;我们可以重载“”运…

使用Vue3开发学生管理系统模板2 新增学生信息

实现新增学生的功能 第一步&#xff1a;点击新增按钮&#xff0c;弹窗新增学生的页面 function openNew() {student.value {id: "1",student_id: "1",chinese_id: "5222xxx",name: "张三",age: 13,gender: "男",height: …

Flink1.17实战教程(第二篇:DataStream API)

系列文章目录 Flink1.17实战教程&#xff08;第一篇&#xff1a;概念、部署、架构&#xff09; Flink1.17实战教程&#xff08;第二篇&#xff1a;DataStream API&#xff09; Flink1.17实战教程&#xff08;第三篇&#xff1a;时间和窗口&#xff09; Flink1.17实战教程&…

双向循环链表实现C语言关键字中英翻译机 ฅ( ̳• · • ̳ฅ)

目录 1.双向循环链表的声明与定义&#xff1a; 2. 创建链表并对节点中的数据赋初值 3. 插入节点并链接 4.中英翻译 5. 小游戏的实现 6.菜单的实现 7. 释放内存 8.在主函数中用刚才定义的函数实现各种代码 输入样例&#xff1a; 实现方法&#xff1a;双向循环链表来实…

UDP协议工作原理及实战(二)UDP客户端代码实现

这个是一个测试我们写的函数是否正确。 启动服务&#xff1a;这里边的udpsocket->bind(port)就是对端口号进行连接。

开发知识点-Weblogic

Weblogic 介绍CVE_2018_2628poc-yaml-weblogic-ssrfpoc-yaml-weblogic-cve-2017-10271poc-yaml-weblogic-cve-2019-2725poc-yaml-weblogic-cve-2019-2729-1poc-yaml-weblogic-cve-2019-2729-2poc-yaml-weblogic-cve-2020-14750poc-yaml-weblogic-local-cve-2022-21371-file-inc…

链路层、网络层、传输层、应用层长度

参考&#xff1a;链路层、网络层、传输层、应用层长度 链接&#xff1a;https://blog.csdn.net/qq_41658597/article/details/120683870 目录 1、概述2、TCP、UDP数据包最大值的确定3、TCP、UDP数据包最小值的确定4、实际应用IP层 1、概述 首先要看TCP/IP协议&#xff0c;涉及到…

Feature Prediction Diffusion Model for Video Anomaly Detection 论文阅读

Feature Prediction Diffusion Model for Video Anomaly Detection论文阅读 Abstract1. Introduction2. Related work3. Method3.1. Problem Formulation3.2. Feature prediction diffusion module 3.3. Feature refinement diffusion module4. Experiments and discussions4.1…

数据探查系列:如何进行有意义的探索性数据分析(EDA)

如何进行有意义的探索性数据分析&#xff08;EDA&#xff09; 目录 1. 设置 1.1 导入库1.2 导入数据1.3 数据集特征1.4 数据集属性 2. 探索训练集和测试集 2.1 训练集 - 快速概览2.2 训练集 - 基本统计2.3 测试集 - 快速概览2.4 测试集 - 基本统计 3. 特征分布4. 数据不平衡检查…

什么是迁移学习(Transfer Learning)?定义,优势,方法

迄今为止&#xff0c;大多数人工智能&#xff08;AI&#xff09;项目都是通过监督学习技术构建的。监督学习是一种从无到有构建机器学习&#xff08;ML&#xff09;模型的方法&#xff0c;它对推动AI发展起到了关键作用。然而&#xff0c;由于需要大量的数据集和强大的计算能力…

openmediavault(OMV) (19)云相册(3)mt-photos

简介 MT Photos是一款为Nas用户量身打造的照片管理系统。通过AI技术,自动将您的照片整理、分类,包括但不限于时间、地点、人物、照片类型。可以在任何支持Docker的系统中运行它。详情可查看mtmt.tech官网,mt-photos是付费订阅使用的,也可以一次性付费永久使用,具体使用mt…

机器学习系列--R语言随机森林进行生存分析(1)

随机森林&#xff08;Breiman 2001a&#xff09;&#xff08;RF&#xff09;是一种非参数统计方法&#xff0c;需要没有关于响应的协变关系的分布假设。RF是一种强大的、非线性的技术&#xff0c;通过拟合一组树来稳定预测精度模型估计。随机生存森林&#xff08;RSF&#xff0…

观察者模式概述

观察者模式,它用于建立一种对象与对象之间的依赖关系&#xff0c; 一个对象发生改变将自动通知其他对象&#xff0c; 其他对象将相应做出反应。在观察者模式种&#xff0c;发生改变的对象称为观察目标&#xff0c; 而被通知的对象称为观察者&#xff0c;一个观察目标可以对应多…