想为自己的网站配置一个类似Cloudflare的防CC攻击5秒盾,每30分钟展示一次5秒盾,之后再跳转到网站。记录一下通过简单高性能防火墙nfx_waf的配置过程。
一、系统环境
- debian 12
- ngx_waf版本:v10.1.2 Current
- aapanel环境下部署
说明一下,我的是一台新机器,从零开始安装的。
二、安装aapanel
wget -O install.sh https://www.aapanel.com/script/install_7.0_en.sh && bash install.sh
安装完aapanel先不安装软件。
三、安装ngx_waf步骤
3.1 安装依赖
提前安装需要的环境依赖
apt update
apt install -y libsodium23 \
libsodium-dev \
libcurl4-openssl-dev \
git \
libmodsecurity-dev \
uthash-dev \
libmodsecurity3
3.2 编辑文件/etc/profile
在文件末尾添加:
export LIB_UTHASH=/www/server/nginx/src/uthash
# 如果操作系统的 Ubuntu 则不用写下面这两行
export LIB_SODIUM=/usr/local/libsodium
export LIB_MODSECURITY=/usr/local/modsecurity
3.3 刷新配置
source /etc/profile
3.4 重启面板
清空缓存,重启aapanel并重新登录。
3.5 编译安装nginx
在应用商店,点击编译安装nginx,然后添加模块(我选择的是Current 版前置脚本,LTS 版失败了),
各参数如下:
- 模块名称:ngx_waf
- 模块描述:方便且高性能的 Nginx 防火墙模块
- 模块参数:
--add-module=/www/server/nginx/src/ngx_waf --with-cc-opt=-std=gnu99
前置脚本(Current 版):
mkdir -p /www/server/nginx/src
cd /www/server/nginx/src
git clone -b current https://github.com/ADD-SP/ngx_waf.git
rm -rf /usr/local/src/ngx_waf
cp -r ngx_waf /usr/local/src/ngx_waf
cd ngx_waf
git clone -b v1.7.16 https://github.com/DaveGamble/cJSON.git lib/cjson
git clone -b v2.3.0 https://github.com/troydhanson/uthash.git lib/uthash
cd /www/server/nginx/src
选择激活ngx_waf之后点击安装:
安装成功后删除第三步中向文件 /etc/profile
中添加的内容。可以通过nginx -v
查看编译的有没有ngx_waf模块。
四、配置网站
具体配置可以参考官网。下面是我的操作步骤。
新建网站,然后修改宝塔网站配置文件(在server段内添加内容)。示列代码如下:这段代码开启了waf自带的5秒盾功能。
waf on;
waf_rule_path /usr/local/src/ngx_waf/assets/rules/;
waf_mode STD;
waf_cache on capacity=50;
waf_under_attack on file=/www/wwwroot/xxxx.com/attack.html;
保存完配置之后,访问你的域名,就可以看到效果了。
参考文章:
1.官方文档-宝塔面板安装ngx_waf
2.宝塔面板安装ngx_waf,高性能的Nginx防火墙模块自带类似cf的防cc攻击的5秒盾
3.宝塔Nginx安装ngx_waf
最新评论
哈哈,夸张了
作者好厉害
网飞没问题, 迪士尼+有解决方案么?
pp助手是安卓手机用的,根本下载用不来苹果
已解决
这样的话数据库里的结构为{"attachment":{"content":"xxx"}}, 要怎么才能变成{"content":"xxx"},从而使结构保持一致?
赞! make test不过的坑都写到的,谢谢楼主~
谢谢你