Nginx,全称为 Engine X,是一款性能卓越的 HTTP 和反向代理服务器软件。在当今的互联网世界中,Nginx 以其出色的性能和稳定性,成为了众多网站的首选 WEB 服务器。它能够高效地处理大量的并发连接,确保网站在高流量的情况下依然能够保持快速响应,为用户提供流畅的浏览体验。目前,很大一部分知名的网站和在线服务都采用了 Nginx 作为其核心的 WEB 服务器,这充分证明了 Nginx 在服务器领域的重要地位和广泛应用。
尽管 Nginx 功能强大,但在默认情况下,它并不能有效地阻挡恶意访问。恶意访问可能包括恶意下载网站文件、恶意爬虫的频繁访问、非法执行脚本以及来自特定 IP 或 IP 段的攻击等。这些恶意行为不仅会影响网站的正常运行,还可能导致数据泄露、服务器压力增加甚至网站被黑客攻击等严重后果。为了帮助各位站长更好地保护自己的网站,我们整理了一份常用的 Nginx 屏蔽规则,希望这些规则能够为大家提供有力的帮助,确保网站的安全稳定运行。
正题
在开始应用这些屏蔽规则之前,请务必先备份你的 Nginx 配置文件。这是一个非常重要的步骤,因为任何配置的修改都可能会对网站的运行产生影响。如果出现问题,备份可以帮助你快速恢复到原始状态,避免不必要的损失。
1. 防止文件被下载
在网站运营过程中,有时我们可能会将网站数据库导出到站点根目录进行备份。然而,这种做法存在一定的风险,因为这些备份文件很有可能会被别人下载,从而导致数据丢失。为了防止这种情况的发生,我们可以使用以下 Nginx 规则来阻止一些常规的文件被下载。你可以根据实际情况增减这些规则,以满足你的特定需求。
location ~.(zip|rar|sql|bak|gz|7z)$ {
return 444;
}
这条规则会匹配以.zip、.rar、.sql、.bak、.gz、.7z 结尾的文件路径。当 Nginx 检测到这样的请求时,会返回状态码 444,从而阻止文件被下载。
2. 屏蔽非常见蜘蛛(爬虫)
如果你经常分析网站日志,你会发现一些奇怪的用户代理(UA)总是频繁地访问网站。这些非常见的蜘蛛(爬虫)对网站收录毫无意义,反而会增加服务器的压力。为了减轻服务器负担,提高网站性能,我们可以使用以下规则直接将这些恶意爬虫屏蔽。
if ($http_user_agent ~* (SemrushBot|python|MJ12bot|AhrefsBot|AhrefsBot|hubspot|opensiteexplorer|leiki|webmeup)) {
return 444;
}
这条规则会检查请求的用户代理,如果用户代理中包含上述任何一个恶意爬虫的名称,Nginx 就会返回状态码 444,阻止该请求。
3. 禁止某个目录执行脚本
在网站中,通常会有一些目录用于存放静态文件,比如上传目录、模板目录等。如果因程序验证不严谨,被上传了木马程序,就可能导致网站被黑客攻击。为了防止这种情况的发生,我们可以使用以下规则禁止特定目录执行脚本。请根据自身情况将规则中的目录改为你自己的目录,同时也可以根据需要添加或修改禁止执行的脚本后缀。
location ~* ^/(uploads|templets|data|content/uploadfile)/.*.(php|php5|php7)$ {
return 444;
}
这条规则会匹配以 /uploads、/templets、/data、/content/uploadfile 开头的路径,并且文件后缀为.php、.php5 或.php7 的请求。当 Nginx 检测到这样的请求时,会返回状态码 444,禁止脚本的执行。
4. 屏蔽某个 IP 或 IP 段
如果你的网站遭到恶意灌水或 CC 攻击,你可以从网站日志中分析特征 IP,然后将其 IP 或 IP 段进行屏蔽。以下是屏蔽特定 IP 和 IP 段的示例规则。
#屏蔽 192.168.5.23 这个 IP
deny 192.168.5.23;
#屏蔽 192.168.5.* 这个段
deny 192.168.5.0/24;
通过这些规则,你可以有效地阻止来自特定 IP 或 IP 段的恶意访问,保护你的网站安全。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容