彻底屏蔽恶意IP/IP段访问网站(Nginx和阿里云安全组配置)
今天发现手上的某网站打开巨慢无比,到服务器上查看一下php-fpm的CPU占用居高不下,到阿里云后台看了一下CPU居然占用了30%多而且持续了几个小时之久
接下来去查看了/var/log/nginx/access.log
文件,不看不知道一看吓一跳刷新一次每秒几KB的log增长,为了找到清爽干净的log我把之前的log全部删除,然后重启了一下nginx,拿到最新的log看了一下发现209.58.139.198
这个IP地址以一秒10多次请求的频率来产生请求,而且请求的字符串后面带有sql注入的特殊字符
209.58.139.198 - - [17/Feb/2022:20:57:15 +0800] "GET /products/microscope/sm/0-0-0-2179-0/page2?sort=12-list-id1111111111111'%20UNION%20SELECT%20CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45)%20--%20/*%20order%20by%20'as%20/* HTTP/1.1"
很明显,这是一个在网络上扫描WEB漏洞的程序,于是立即在nginx中屏蔽这个IP,不知道如何使用nginx屏蔽IP?在这里直达即可,接下来继续查看log文件,没错请求状态变成了403,这就说明nginx成功拒绝了该IP的访问
403 571 "https://www.xxx.com/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2)" "-"
但是问题接着来了,这个log不断地增长,实属恶心,我既又不想产生太多垃圾文件又不想浪费系统资源读写垃圾信息,这时候我急需一个系统级的IP屏蔽策略,由于网站服务器在阿里云ECS上,这时候我想到了阿里云的安全策略组
打开阿里云后台 -> 安全组 (该功能在ECS管理以及后台左侧菜单中都有) -> 配置规则 -> 入方向 -> 手动添加 保存,如下图所示
添加完成后可能需要几分钟时间来等待配置生效,再次刷新log文件发现世界清净了。