一次使用Nginx防火墙屏蔽UA(User Agent)网络攻击-一次使用Nginx防火墙屏蔽UA(User Agent)网络攻击 前些时日,有人恶意攻击本网站和服务器,开始时节奏较缓慢,重启下服务器即可,后来可不得了,进入服务器后台都无法进,只...

谷子猫博客

一个简单爱分享的小站!^_^!
首页>> 网文转载 >>一次使用Nginx防火墙屏蔽UA(User Agent)网络攻击
一次使用Nginx防火墙屏蔽UA(User Agent)网络攻击

前些时日,有人恶意攻击本网站和服务器,开始时节奏较缓慢,重启下服务器即可,后来可不得了,进入服务器后台都无法进,只能停止网站,一启动运行网站,服务器秒蹦,然后,重启服务器第一件事就是停止网站,查看日志,发现服务器的数据库被频繁调用、网络层数据满载、应用层调用CPU和内容也满载的原因是有人利用本网站的Wordpress 搜索功能,频繁执行搜索。
3ac79f3df8dcd100d8e72958fd11a91ab8122ff1.jpg

单独给服务器购置防火墙不划算,看了下宝塔面板有nginx软件版防火墙可供使用。于是,选择了宝塔面板的企业级/专业级宝塔防火墙。

解决问题,本文从UA说起。

UA User Agent定义
用户代理(User Agent,简称 UA),是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。

网络攻击UA分析
从IP统计上来看,大量的IP来自郑州,且郑州电信、郑州联通,以及北京移动。之前的IP封掉之后,近期又新增了陕西阿里云等。



查询当日阿里云异常IP日志发现仍是/?s=搜索访问消耗服务器
实际上是通过搜索关键词方式实现网站SEO推广,不怎么讲道德,这样打频率搜索一般会把源站资源拉光。


看上去是在做推广的方式,实际上在实施纯粹攻击的目的。

通过日志发现,出了URL基于单一文件外,它们利用的爬虫是单一固定的。

UA正则表达式
在进行http协议批量数据处理的过程中,正则表达式是经常用到的一个工具,在国外有很多成熟的网站工具,国内在正则表达式使用上,确实很难在在网上找到,傻瓜式平台,只有拿UA的正则表达式的用法,可用于防火墙配置。

UA值:

Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Mobile Safari/537.36

以上UA使用正则表达式精准匹配为:
^Mozilla\/5\.0.\(Linux\;.Android.5\.0\;.SM\-G900P.Build\/LRX21T\).AppleWebKit\/537\.36\(KHTML\,.like.Gecko\).Chrome\/92\.0\.4515\.159.Mobile.Safari\/537\.36


用法说明:

先把输入法切换为英文半角状态,这玩意是西方老美研发并制定的规则,为了更准确的理解,以下说明不加标点符号

^表示正则表达式要开始了的字符

\表示转义字符 每一个符号字符前都要用\进行转义才能保持原来的属性

.表示一个字符位置 原字符中的.字符需要用\进行转义 转义后的格式为\. 而原字符串中的空格需要用.替换 表示是一个字符 如果不用.替换 或许要其他正则表达式的符号进行表示 不建议初学者使用太多方式 以上方式简单且准确

精准匹配的含义,就是完全匹配,一个字符不差,就是只针对此UA进行正则正则表达式进行转换,差一个字符都不生效。

以上UA使用正则表达式模糊匹配为:
^Mozilla\/5\.0.\(Linux\;.Android.5\.0\;.*Chrome.*Safari\/537\.36


将UA添加到nginx防火墙:




其中.*表示任意匹配任何字符,任意匹配任何次数,模糊匹配表达的是Mozilla 5.0 使用Linux 安卓 5.0 Chrome浏览器 苹果Safari 537 36版本内核的,这样范围就宽了许多,现在安卓已经不是5.0这么低了,另外安卓使用苹果浏览器在普通用户来看,几乎无法实现,只有技术操作、假数据才能实现,所以,屏蔽此技术攻击并不影响真实用户访问网站。



其他防护方式
除了使用防火墙对User Agent进行屏蔽外,还需要使用多种方法进行综合的防护,如,IP、URL、POST、GET、URI、Cookies、Header等,开始仅仅是来自郑州的IP猛烈攻击,限制郑州IP之后,同样的攻击方式又转移到了其他地区IP,这时候对方攻击是主动的,如果不用UA等其他方式限制,只做IP防护是不够的。


×

感谢您的支持,我们会一直保持!

扫码支持
请土豪扫码随意打赏

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

打赏作者
版权所有,转载注意明处:谷子博客 » 一次使用Nginx防火墙屏蔽UA(User Agent)网络攻击
标签: 漏洞 维护 转载 debian root 宝塔

发表评论

路人甲

网友评论(0)