引言
在当今数字化时代,保护 Web 应用的安全不仅保护站点内容不被篡改,还将减轻站点的运营成本。
Web 应用防火墙(WAF)作为保护 Web 应用不受恶意攻击的关键技术应用,其重要性日益凸显。
WAF的工作原理
WAF 通常部署在 Web 服务器之前,对所有进入的 HTTP/HTTPS 请求进行过滤,通过内置的安全规则来识别和阻断恶意流量。
WAF的规则引擎可以配置为拦截、允许或记录特定的请求,从而保护后端服务器不受SQL注入、跨站脚本(XSS)和其他攻击的影响。
WAF 的选用
本站尝试过不同厂商开发的 WAF 产品,主要用过:
▸奇安信云锁(手动编译 nginx,规则更新少)
▸长亭雷池 WAF(推荐)
▸南墙(性能占用稍多)
▸宝塔免费 WAF(规则少)
▸1Panel 面板自带 WAF(基础的规则防护)
此处将介绍安装长亭雷池 WAF 及后续配置。
安装长亭雷池 WAF
安装命令:
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"
安装过程根据提示操作(输入 y 确定,配置用户名密码等)。
安装完成后,服务器防火墙放通 9443 端口,使用 IP:9443 地址访问控制面板。
在“防护站点>站点管理”添加站点:
(此处没有使用前置的反向代理)
按下面格式配置并放开 80,443 端口,同时在“防护站点>代理设置”中开启“强制 HTTPS”。
添加本机地址,大致有如下几种,视具体情况而定。
http://localhost:1234
https://localhost:1234
http://127.0.0.1:1234
https://127.0.0.3:1234
推荐几个规则
▸WordPress 管理后台防护规则
防护配置>自定义规则>添加“身份认证规则”。
此处两个条件是同时满足才会执行的,因此可先增加 Host 匹配,限定规则要作用的网站。
第二个条件是“路径+正则表达式”,匹配内容是:
wp-admin(?!/admin-ajax)|wp-login
意思是当路径中含有 wp-admin 和 wp-login 其中任意一个,则该条件满足。
最后添加用户名和密码,保存生效后测试。
(规则更新:优化兼容评论功能)
▸Alist 后台管理防护规则
类似上一规则,添加正则表达式:
^/@login|^/@manage
▸Alist 误报解除规则
截止发文时间,在开启 XSS 攻击检测后,使用 Alist 管理后台修改设置时,会被雷池当做恶意攻击而被拦截,主观体现是 Alist 点击保存时出现长时间不动。
推荐的解决方法是,保持 XSS 攻击检测,手动添加白名单规则如下:
在 路径>正则表达式 添加:
^/api/admin/setting/save
(可选继续增加 WebDav 误报解除)在 路径>正则表达式 添加:
^/dav|^/api/admin/setting/save
最终效果
诸如此类的扫描器是拦截类型当中最多的,有一则统计数据表明,Web 网站有 10% 左右的流量来自扫描器(详见文章)。
扫描器算是最低端的拦截对象了,我的站点这几天的拦截类型还有“信息泄露(config 文件)”、“反序列化(ajax.php)”等。
服务器只要联网开机,就是要面对这充满各种未知威胁的网络空间。
最后补充一句,安全防护做的再好,还是需要多备份以防万一(快照或者手动备份)。
ㅤ
ㅤ
ㅤ
☑ 图片授权:稿定设计
☆ 原创文章,未经允许不得转载