云服务器负载100%?宝塔面板+Nginx屏蔽恶意User-Agent

时间:2023年06月04日

/

来源:网络

/

编辑:佚名

我们在网站建设和网站维护过程中经常会遇到网站卡住的情况,如果你的云服务器使用了宝塔面板进行可视化管理,此时登录宝塔面板,就会发现云服务器运行堵塞,负载状态100%。此时重启服务器会得到暂时的缓解,但是很快又会重蹈覆辙。其实,这是因为有人在攻击或者采集你的网站,我们可以通过宝塔面板+Nginx屏蔽恶意user_agent访问,减轻服务器负载,让网站运行更流畅。
UA是user_agent浏览器访问标识,空UA基本可以判定为采集器。以前是可以使用宝塔nginx防火墙屏蔽的,现在宝塔官方把这个功能删了,那么只能使用nginx来屏蔽了。网上找了一些方法来屏蔽这些垃圾蜘蛛访问网站。
云服务器负载100%?宝塔面板+Nginx屏蔽恶意user_agent
user_agent屏蔽方法一:
先分享一个简易版:
宝塔面板 – 网站 – 设置 – 配置文件,server里面第八行添加以下代码:
如图:

1、禁止空agent的浏览器访问
if ($http_user_agent~* "^$" {
return 403;
}
2、禁止Scrapy等工具的抓取
if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) {
return 403;
}
3、禁止指定UA的访问
if ($http_user_agent ~ "ApacheBench|WebBench|HttpClient|Java|python|Go-http-client|FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Feedly|UniversalFeedParser|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|MJ12bot|heritrix|EasouSpider|LinkpadBot|Ezooms" )
{
return 403;
}
4、禁止爬虫抓取
if ($http_user_agent ~* "qihoobot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot") 

    return 403; 
}
5、禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
return 403;
}
6、禁止特殊的user_agent的访问
if ($http_user_agent ~ "Mozilla/4.0\ \(compatible;\ MSIE\ 6.0;\ Windows\ NT\ 5.1;\ SV1;\ .NET\ CLR\ 1.1.4322;\ .NET\ CLR\ 2.0.50727\)") {
return 404;
}
7、进阶版,以上代码综合使用:
 #禁止空agent的浏览器访问
if ($http_user_agent ~ ^$) {
return 444;
}
#禁止Scrapy等工具的抓取
if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) {
return 444;
}
#禁止指定UA的访问
if ($http_user_agent ~ "ApacheBench|WebBench|HttpClient|Java|python|Go-http-client|FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Feedly|UniversalFeedParser|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|MJ12bot|heritrix|EasouSpider|LinkpadBot|Ezooms" )
{
return 444;
}
#禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
return 444;
}
#禁止特殊的user_agent的访问
if ($http_user_agent ~ "Mozilla/4.0\ \(compatible;\ MSIE\ 6.0;\ Windows\ NT\ 5.1;\ SV1;\ .NET\ CLR\ 1.1.4322;\ .NET\ CLR\ 2.0.50727\)") {
return 444;
}
常见的一些蜘蛛爬虫user_agent。
UA类型 描述
ApacheBench 性能压测
WebBench 性能压测
WinHttp 采集cc
HttpClient tcp攻击
Jmeter 压力测试
BOT/0.1 (BOT for JCE) sql注入
CrawlDaddy sql注入
Indy Library 扫描
ZmEu phpmyadmin 扫描
Microsoft URL Control 扫描
jaunty wordpress扫描器
Java 内容采集
Python-urllib 内容采集
Jullo 内容采集
FeedDemon 内容采集
Feedly 内容采集
UniversalFeedParser 内容采集
Alexa Toolbar 内容采集
Swiftbot 无用爬虫
YandexBot 无用爬虫
AhrefsBot 无用爬虫
jikeSpider 无用爬虫
MJ12bot 无用爬虫
oBot 无用爬虫
FlightDeckReports Bot 无用爬虫
Linguee Bot 无用爬虫
EasouSpider 无用爬虫
YYSpider 无用爬虫

大家根据需要进行判断和屏蔽。
我们再看一些常见搜索引擎蜘蛛的User_Agent:
百度蜘蛛
Baiduspider+(+http://www.baidu.com/search/spider.htm")
Google蜘蛛
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Googlebot/2.1 (+http://www.googlebot.com/bot.html)
Googlebot/2.1 (+http://www.google.com/bot.html)
雅虎蜘蛛(分别中国和美国蜘蛛)
Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html")
Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp")
新浪爱问蜘蛛
iaskspider/2.0(+http://iask.com/help/help_index.html")
Mozilla/5.0 (compatible; iaskspider/1.0; MSIE 6.0)
搜狗蜘蛛
Sogou web spider/3.0(+http://www.sogou.com/docs/help/webmasters.htm#07″)
Sogou Push Spider/3.0(+http://www.sogou.com/docs/help/webmasters.htm#07″)
网易蜘蛛
Mozilla/5.0 (compatible; YodaoBot/1.0; http://www.yodao.com/help/webmaster/spider/"; )
MSN蜘蛛
msnbot/1.0 (+http://search.msn.com/msnbot.htm")
user_agent屏蔽方法二:
1、宝塔面板找到文件目录/www/server/nginx/conf文件夹下面,新建一个文件agent_deny.conf,内容是以下代码。
#禁止Scrapy等工具的抓取
if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) {
return 403;
}
#禁止指定UA及UA为空的访问
if ($http_user_agent ~* "FeedDemon|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|Bytespider|Ezooms|Googlebot|JikeSpider|SemrushBot|^$" ) {
return 403;
}
#禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
return 403;
}
2、网站设置里面添加:
宝塔 – 【网站】-【设置】点击左侧 【配置文件】选项卡,在 "#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则" 上方空白行插入红色字体的代码:"include agent_deny.conf; " 保存后即可生效,这样这些蜘蛛或工具扫描网站的时候就会提示403禁止访问。
如果你网站使用火车头采集发布,使用以上代码会返回403错误,发布不了的。如果想继续使用火车头采集发布,请使用下面的代码:
#禁止Scrapy等工具的抓取
if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) {
return 403;
}
#禁止指定UA访问。UA为空的可以访问,比如火车头可以正常发布。
if ($http_user_agent ~ "FeedDemon|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|YandexBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|Bytespider|Ezooms|Googlebot|JikeSpider|SemrushBot" ) {
return 403;
}
#禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
return 403;
}
以上两种方法都可以屏蔽恶意User_Agent的访问,降低云服务器负载,具体如何选择大家可以根据自己的喜好使用。
猜你需要

豫ICP备2021026617号-1  豫公网安备:41172602000185   Copyright © 2021-2028 www.78moban.com/ All Rights Reserved

本站作品均来自互联网,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如有侵犯您的版权,请联系 1565229909#qq.com(把#改成@),我们将立即处理。