您的位置: 新闻资讯 > 行业动态 > 正文

《守护网站安全:Semrush 蜘蛛与 Nginx 免费防火墙的奇妙组合》


来源:mozhe 2024-11-28
SemrushBot 是 SEMrush 的蜘蛛爬虫,SEMrush 是一家提供搜索引擎优化数据的公司。SemrushBot 爬行不会给网站带来流量,反而会占用服务器资源,并且其爬取的数据可能成为竞争对手的分析利器。对于网站而言,这种蜘蛛可能带来一些困扰。一般情况下,蜘蛛都会在后台控制面板中显示名字,如百度、谷歌、雅虎、Alexa 等,但如果使用的虚拟主机是 cpanel 的控制面板,可能会出现 Unknown robot (identified by'spider') 的情况,这种情况可能是百度蜘蛛,因为 cpanel 的控制面板默认不识别百度蜘蛛。而且通过 robots.txt 无法禁止一些垃圾蜘蛛抓取网站内容,就像新浪和字节前段时间因 robots.txt 打了官司,大厂尚且如此,其他爬虫更难以指望老老实实遵守规则。SemrushBot 这种蜘蛛对网站没有实质性帮助,例如它不会像正规搜索引擎蜘蛛那样为网站带来流量和品牌提升。它抓取网页主要是为了进行数据分析,这对网站所有者来说意义不大。建议网站屏蔽掉 SemrushBot 的爬行,可通过在网站根目录下的 robots.txt 文件中添加以下内容进行屏蔽:User-agent: SemrushBot,Disallow: /。对于遵循 robots 协议的蜘蛛,都可以直接在 robots.txt 文件中进行禁止。常见的无用蜘蛛禁止方法如下,将以下内容加入到网站根目录下面的 robots.txt 就可以了:User-agent: SemrushBot,Disallow: /;User-agent: DotBot,Disallow: /;User-agent: MegaIndex.ru,Disallow: /;User-agent: MauiBot,Disallow: /;User-agent: AhrefsBot,Disallow: /;User-agent: MJ12bot,Disallow: /;User-agent: BLEXBot,Disallow: /。对于不尊许 robots 规则的蜘蛛,目前能够屏蔽的方法就是根据 useragent 或者 ip 来禁止。垃圾蜘蛛定义为对网站的品牌和流量没有任何实质性的帮助,并且给网站资源带来一定损耗的蜘蛛。SemrushBot 就是这样一种蜘蛛,它会频繁抓取网站内容,并且利用内容做一些数据分析来达到商业目的。SemrushBot 对中文站站点可能没有太大用处,遵循 robots 协议,可以直接在 robots 屏蔽。屏蔽 SemrushBot 抓取的原因还包括它抓取过多可能增加网站服务器负担,且不会给网站带来实质性帮助。如果网站服务器配置比较差,过多的蜘蛛抓取可能会影响网站速度,这时可以选择对 SemrushBot 蜘蛛进行屏蔽。操作如下:打开网站 robots.txt 文件,把 “user-agent: SemrushBot disallow: /” 两行内容加进去即可。
总之,SemrushBot 作为一种蜘蛛爬虫,对网站的作用有限,甚至可能带来一些负面影响,网站所有者可以根据自身情况选择是否屏蔽它。

二、常见垃圾蜘蛛及屏蔽方法

1. 垃圾蜘蛛定义及列表

  • 垃圾蜘蛛定义:垃圾蜘蛛定义为对网站的品牌和流量没有任何实质性的帮助,并且给网站资源带来一定损耗的蜘蛛。
  • 常见垃圾蜘蛛列表:常见垃圾蜘蛛包括 SemrushBot、DotBot、AhrefsBot、MJ12bot、MauiBot、MegaIndex.ru、BLEXBot 等。

2. 屏蔽方法

  • 通过网站 Robots.txt 来屏蔽:将特定蜘蛛的 User-agent 添加到 Robots.txt 文件中,Disallow 其访问。例如,对于 SemrushBot,可以在网站根目录下的 robots.txt 文件中添加 “User-agent: SemrushBot,Disallow: /”。常见的无用蜘蛛禁止方法如下,将以下内容加入到网站根目录下面的 robots.txt 就可以了:“User-agent: SemrushBot,Disallow: /;User-agent: DotBot,Disallow: /;User-agent: MegaIndex.ru,Disallow: /;User-agent: MauiBot,Disallow: /;User-agent: AhrefsBot,Disallow: /;User-agent: MJ12bot,Disallow: /;User-agent: BLEXBot,Disallow: /”。
  • 通过宝塔面板配置文件判断来屏蔽垃圾蜘蛛和扫描工具:在配置文件中添加代码,根据 User-agent 进行屏蔽。首先进入宝塔面板,文件管理进入 /www/server/nginx/conf 目录,新建空白文件 kill_bot.conf。然后将以下代码保存到当前文件中。“# 禁止垃圾搜索引擎蜘蛛抓取 if ( http_user_agent ~* "crawl|curb|git|Wtrace|Scrapy" ) {return 403; break;}”。保存后返回到宝塔 - 【网站】-【设置】点击左侧【配置文件】选项卡,在 “#SSL-START SSL 相关配置,请勿删除或修改下一行带注释的 404 规则” 上方空白行插入代码:“include kill_bot.conf;” 保存后即可生效,这样这些蜘蛛或工具扫描网站的时候就会提示 403 禁止访问。

三、Nginx 免费防火墙介绍


宝塔面板免费 nginx 防火墙仅限 nginx 服务使用,由第三方开发,需注册宝塔账号并登陆才能安装使用。安装部署十分简便,在宝塔面板的软件商店中,找到第三方应用里的 nginx 免费防火墙,点击 “立即购买”(无需花钱),接着点击 “安装” 和 “确定安装” 即可。
该防火墙具有多种功能。首先,它能够显示各种攻击次数,方便用户了解服务器的安全状况。同时,拥有全局配置和站点配置等设置选项,用户可以根据实际情况进行个性化的安全设置。此外,还可以手动加入 IP 黑名单,对恶意 IP 进行有效拦截,并且能根据不同的场景设置不同规则。
其中,禁止国外 IP,只允许国内 IP 段落访问功能非常实用。用户可以通过设置该功能,有效减少来自国外的恶意攻击。在使用黑名单和白名单功能时,需要注意使用 444 比 403 更加友好。
此外,Nginx 免费防火墙还具备 Webshell 查杀、From-data 协议、蜘蛛池、敏感文字替换、URL 关键词拦截、违禁词拦截、API 接口防御等强大功能。
例如,在一些博客和技术网站上,有用户分享了利用 nginx 宝塔免费防火墙实现禁止国外 IP 访问网站的经验。具体操作是在宝塔面板中的软件商店,搜索防火墙关键词,找到 Nginx 免费防火墙 7.3 进行安装。然后在插件中找到全局配置,将禁止海外访问状态按钮启用即可。里面还包含其它多种不同的拦截策略,可以根据自己的需求,合理配置。
总之,宝塔面板免费 nginx 防火墙为用户提供了一系列实用的安全防护功能,能够有效保护网站的安全。

四、如何利用 Nginx 免费防火墙应对 Semrush 蜘蛛



在应对 Semrush 蜘蛛时,可以利用 Nginx 免费防火墙进行有效的屏蔽。以下是具体的方法:
  1. 在 nginx 配置文件中添加代码,根据 User-agent 进行屏蔽,如:if ($http_user_agent ~* "SemrushBot") {return403;break;}。通过这种方式,当服务器检测到 User-agent 为 SemrushBot 时,会返回 403 状态码,阻止其继续访问。
  1. 禁止非 GET 方式的抓取、特殊请求方式、特殊请求工具、压缩包、不全的 UA 和特定 IP 等,减少潜在的安全风险。例如,可以使用以下代码进行配置:
    • if ($http_user_agent ~* "SemrushBot") {return403;break;}:屏蔽 SemrushBot 的访问。
    • #禁止非 GET|HEAD|POST 方式的抓取:if ( ) {return403;break;},确保只有 GET、HEAD 和 POST 方式的请求被允许。
    • #禁特殊请求工具:if ($http_user_agent ~* "Wget|Curl") {return403;break;},防止 Wget 和 Curl 等特殊请求工具的访问。
    • #禁压缩包:location ~* \.(tgz|bak|zip|rar|tar|gz|bz2|xz|tar.gz)$ {return403;break;},禁止访问特定的压缩包文件。
    • #UA 不全,十有八九不是正常访问,禁:if ( http_user_agent = "Mozilla/5\.0") {return403;break;}、if ($http_user_agent = "Mozilla/4\.0") {return403;break;},对不全的 UA 进行屏蔽。
    • #禁空 UA:if (http_user_agent ~* ^http_user_agent ~* ^) {return 403;break;},禁止空 UA 的访问。
通过以上方法,可以有效地利用 Nginx 免费防火墙应对 Semrush 蜘蛛,减少其对网站资源的消耗和潜在的安全风险。

五、Nginx 免费防火墙有哪些

  1. 介绍一些常见的 Nginx 免费防火墙,如宝塔面板免费 nginx 防火墙、OpenResty、AIHTTPS、ModSecurity、Naxsi、OpenWAF、X-WAF、unixhot、Java WAF、VeryNginx、FreeWAF 等。
    • 宝塔面板免费 nginx 防火墙:由第三方开发,需注册宝塔账号并登陆才能安装使用。安装部署简便,在宝塔面板的软件商店中可找到。具有显示攻击次数、全局配置和站点配置、手动加入 IP 黑名单等功能,还能禁止国外 IP 访问、进行 Webshell 查杀等。适用于各种规模的网站,为用户提供实用的安全防护。
    • OpenResty:由中国人章亦春发起,是把 nginx 和各种三方模块打包而成的软件平台,核心是 nginx+lua 脚本语言。国内很多大公司如 360、京东、gitee 等都用作 web 应用防火墙。速度快,lua 语言编写过滤脚本简单,但 nginx 是 C 语言编写,二次修改技术复杂,很多产品商业收费且网上几乎没有完整可直接用于生产环境部署的产品。
    • AIHTTPS:特点是兼容 ModSecurity 规则,向人工智能方向进化,使用机器学习自主生成对抗规则,防御漏洞扫描、CC、DDOS、SQL 注入、XSS 等。商业版也开源,是目前商业化开源程度最高的 WAF。
    • ModSecurity:开源 WAF 的鼻祖,用于 Apache、IIS 和 Nginx,由 Trustwave 的 SpiderLabs 开发。安全社区 OWASP 开发和维护一套免费应用程序保护规则,但某些环境误报率惊人。作为 WAF 引擎,需要二次开发才能试用,对使用者成本略高。
    • Naxsi:基于 Nginx 模块的防火墙,有自己规则定义,由 C 语言编写,需要熟练掌握 Nginx 源码才能看懂,离商业距离远。只支持 SQL 注入和 XSS 检测,不推荐在线上使用。
    • OpenWAF:基于 Nginx,由行为分析引擎和规则引擎两大功能引擎构成,规则引擎对单个请求分析,行为分析引擎负责跨请求信息追踪。缺点是复杂,不适合不熟悉 Nginx 和 lua 语言的开发者。
    • X-WAF:核心基于 openresty + lua 开发,waf 管理后台采用 golang + xorm + macrom 开发,支持二进制形式部署,适合小企业用。
    • unixhot:使用 Nginx+Lua 实现自定义 WAF,解析 HTTP 请求、进行规则检测、做防御动作并记录防御过程。
    • Java WAF:用 Java 开发的 API Gateway,底层使用 Netty。功能上支持安全拦截、各种分析检测、脚本(沙箱)、流控 / CC 防护等,是 Java 爱好者的福音。
    • VeryNginx:基于 lua_Nginx_module (openrestry) 开发,实现高级防火墙、访问统计等功能,集成在 Nginx 中运行,扩展了 Nginx 本身的功能。但项目年久失修,规则库多年不更新,基本停止维护。
    • FreeWAF:工作在应用层,对 HTTP 进行双向深层次检测,可防御 SQL 注入、XSS、CSRF、缓冲区溢出、应用层 DOS/DDOS 等。但项目已经很久没更新了。
  1. 各防火墙的特点和适用场景,如速度、语言、开发难度、商业化程度等方面的差异。
    • 速度方面:OpenResty 速度快,因为其核心是 nginx+lua 脚本语言;Java WAF 速度相对较慢,不能像其他 C 语言写的防火墙有巨大的并发连接。
    • 语言方面:不同防火墙使用的语言不同,如 ModSecurity、Naxsi、OpenWAF、X-WAF、unixhot、VeryNginx、FreeWAF 等很多基于 Nginx 的防火墙可能涉及 C 语言和 lua 语言;Java WAF 使用 Java 语言;Shieldon 用 PHP 原创。
    • 开发难度方面:以 Nginx 为基础的防火墙如 Naxsi 开发难度较大,需要熟练掌握 Nginx 源码;OpenResty 虽然 lua 语言编写过滤脚本简单,但 nginx 的二次修改技术复杂;ModSecurity 作为 WAF 引擎需要二次开发才能试用,对使用者成本略高;VeryNginx 提供了控制台,但规则库多年不更新且年久失修,后续开发可能有困难;Java WAF 对于不会 C 语言的开发者是福音,但可能在人工智能算法、智能语义解析上与其他语言生态相比有差距。
    • 商业化程度方面:有的防火墙如宝塔面板专业版防火墙需要付费,专业版用户可免费使用或单独购买每月付费;有的防火墙如 AIHTTPS 商业版也开源,商业化开源程度高;很多基于 OpenResty 的防火墙大多是技术研究型的半成品,离商业级实战产品还需要大量技术和人力投入;而一些防火墙如 FreeWAF 项目很久没更新,商业化程度低。适用场景方面,简单搭建个人博客、小型网站,偶尔维护着,安装免费 nginx 防火墙如宝塔面板免费 nginx 防火墙就足够用了;如果打算长期、稳定运行网站,或者涉及到商业行为,建议选择专业版防火墙或功能更强大、更新更及时的防火墙如 AIHTTPS、雷池社区版等,以避免网站被恶搞。对于熟悉特定语言的开发者,可根据自己的技术栈选择相应的防火墙,如 Java 开发者可选择 Java WAF。对于小企业,可选择支持二进制形式部署的 X-WAF 等。

墨者安全 防护盾

墨者安全作为专业级别安全防护专家,在应对 Webshell 风险隐患方面展现出了卓越的能力。其拥有全面的检测机制,能够精准识别 Webshell 的各种类型和变体,无论是复杂的大马,还是隐蔽的内存马,都难逃其敏锐的监测。
墨者安全防护盾具备强大的实时监控功能,对服务器的各项活动进行 7*24 小时不间断的监视。一旦发现任何可疑的 Webshell 活动迹象,立即发出警报,并迅速采取隔离和清除措施,将风险扼杀在萌芽状态。
在防护策略上,墨者安全防护盾采用了多层次的防御体系。不仅能够在网络层面阻挡外部的恶意访问和攻击,还能深入系统内部,对服务器的文件系统、进程等进行深度检查和保护,确保 Webshell 无法植入和运行。
同时,墨者安全防护盾拥有快速的应急响应能力。当 Webshell 攻击事件发生时,专业的安全团队能够迅速介入,进行深入的分析和处理,最大程度减少攻击带来的损失,并帮助用户快速恢复服务器的正常运行。
墨者安全防护盾还注重用户教育和培训,为用户提供关于 Webshell 防范的专业知识和最佳实践,帮助用户提升自身的安全意识和防范能力,共同构建坚实的网络安全防线。

热门文章

X

7x24 小时

免费技术支持

15625276999


-->