自己购买服务器搭建网站就涉及到一个服务器安全问题,虽然你自己不知道,但是每天服务器都在被一些机器人扫描。本文奶爸给大家分享几个Nginx的规则可以防止服务器被扫描。
1、禁止默认通过IP访问服务器
每台服务器都有一个IP地址,而一些机器人会直接通过访问ip地址的方法来探测你网站上的内容。
我们可以在Nginx的配置信息里面添加下面的代码来实现禁止通过IP地址访问服务器。
#别人如果通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500 server { listen 80 default; server_name _; return 500; } #开放一个或多个真实的希望被访问的域名配置,设置如下: server { linten 80; server_name naibabiji.com; }
2、禁止机器人扫描网站的压缩文件
同样的,也有很多机器人会直接访问你域名的一些文件,例如下图就是有人在扫描奶爸建站笔记的wwwroot.zip这个文件
我们可以给它加点料,让访问这些压缩包的链接给跳转到一个超大型的文件,让他慢慢去下载。
rewrite \.asp/?$ http://speedtest.tele2.net/50GB.zip permanent; rewrite \.zip/?$ http://speedtest.tele2.net/50GB.zip permanent; rewrite \.gz/?$ http://speedtest.tele2.net/50GB.zip permanent; rewrite \.7z/?$ http://speedtest.tele2.net/50GB.zip permanent; rewrite \.sql/?$ http://speedtest.tele2.net/50GB.zip permanent; rewrite \.rar/?$ http://speedtest.tele2.net/50GB.zip permanent; rewrite \.tar/?$ http://speedtest.tele2.net/50GB.zip permanent;
上面的代码是当访问网站上.asp/zip/gz/7z/sql/rar/tar格式的文件,就自动跳访问一个50G大小的zip链接。让他自己去爬吧。
我们也可以给他来点更大的文件,例如1000G,撑爆它硬盘。
http://speedtest.tele2.net/1000GB.zip http://speedtest.tele2.net/100GB.zip http://speedtest.tele2.net/50GB.zip
当然,你也可以安装Defender Security这款插件来帮你拦截这些机器人。如果你不会添加跳转规则,可以直接借助一些支持重定向的插件帮你,例如RanK Math的重定向功能。
2021年9月20日更新:
今天发现有新的机器人在扫描网站的时候无视上面的301(或者是量太大?),把奶爸建站笔记的服务器CPU挤满了好几次,所以只能用另外的方法了。
最简单粗暴的方法,直接nginx配置里面加上下面的规则,针对服务器上的文件下载链接,直接禁止访问(提供资源本地下载的网站慎用)
location ~ \.(zip|rar|sql|bak|gz|7z)$ { return 444; }
当有用户访问网站上的zip、rar这些资源时,直接返回444错误码。
444 No Response
Nginx上HTTP服务器扩展。服务器不向客户端返回任何信息,并关闭连接(有助于阻止恶意软件)
另外还有一种方法,就是给Nginx装一个waf防火墙,如果你是使用的宝塔面板,那么直接后台软件商店安装就可以了。
如果你使用的LNMP一键包,那么按照下面的方法安装。
LNMP一键安装包从1.5开始增加了lua支持的选项,可以通过修改lnmp.conf中Enable_Nginx_Lua后的参数为 y 来启用lua,如果没安装lnmp,修改lnmp.conf后保存,安装完lnmp就是支持lua的,如果已经安装好lnmp,也是按前面修改lnmp.conf,然后lnmp安装包目录下 ./upgrade.sh nginx 升级nginx,输入当前nginx版本号或更新的nginx版本号,升级完成就是支持lua的了。
安装ngx_lua_waf
下载安装ngx_lua_waf:
wget https://github.com/loveshell/ngx_lua_waf/archive/master.zip -O ngx_lua_waf.zip unzip ngx_lua_waf.zip mv ngx_lua_waf-master /usr/local/nginx/conf/waf
nginx上设置并启用ngx_lua_waf
编辑 /usr/local/nginx/conf/nginx.conf 在 server_tokens off; 下面添加如下代码:
lua_package_path "/usr/local/nginx/conf/waf/?.lua"; lua_shared_dict limit 10m; init_by_lua_file /usr/local/nginx/conf/waf/init.lua;
修改完成保存
如果要想在某个虚拟主机启用ngx_lua_waf可以修改对应虚拟主机的server段,在该server段中 root 网站目录行下面添加如下代码:
access_by_lua_file /usr/local/nginx/conf/waf/waf.lua;
修改完成保存
测试nginx配置文件:/usr/local/nginx/sbin/nginx -t
重载nginx配置生效:/usr/local/nginx/sbin/nginx -s reload
如果测试和重载都没报错就已经生效。
可以通过访问 http://域名/test.php?id=../etc/passwd 来测试
更详细的可以参见此文。
本文是全系列中第11 / 20篇:WordPress安全
- 使用插件给WordPress网站自动备份_网站备份的方法
- 分享一个外贸WordPress网站被挂马恶意跳转的案例
- 保护WordPress网站安全_Wordfence防火墙专业版下载
- 防止数据丢失 10款优秀的WordPress备份插件推荐
- WordPress官方推荐的4款恶意软件扫描插件
- 2021年6款热门的WordPress安全插件推荐和选用建议
- 3月份WordPress插件漏洞列表
- 免密码随机邮件链接登录WordPress网站的方法
- 11款好用的WordPress验证插件_Captcha验证码
- 9款WordPress暴力登录保护插件保护网站安全
- 服务器安全:添加Nginx规则防止服务器被恶意机器人扫描
- WordPress网站安全日志插件:WP Security Audit Log
- WordPress网站被黑客入侵跳转到其他网站的排查方法
- 4款WordPress需要密码才能访问网站的插件_密码查看内容
- WordPress安全插件推荐:Defender Security_恶意软件扫描_防火墙
- WordPress网站阻止特定机器人和爬虫访问的方法
- 做好安全防护避免WordPress网站被黑
- 保护网站安全,手动更新Nginx版本修复漏洞(LNMP和宝塔面板)
- 隐藏WordPress后台登录地址提升安全性WPS Hide Login
- 使用BackWPup给自己网站数据库和文件备份教程