网站首页 > 技术教程 正文
说明: ngx_waf 是最近新出的一款方便且高性能的 Ng-inx 防火墙模块,功能齐全,「网络应用防火墙」的基本功能都有。安装方便,大多数情况下你可以直接下载使用预构建的模块。使用便捷,配置指令简单易懂。规则灵活,提供高级规则,将动作(如拦截或放行)和多个条件表达式组合起来。Github 项目地址:https://github.com/ADD-SP/ngx_waf
功能特性
1、SQL 注入防护(Powered By libinjection)。
2、XSS 攻击防护(Powered By libinjection)。
3、支持 IPV4 和 IPV6。
4、支持开启验证码(CAPTCHA),支持 hCaptcha、reCAPTCHAv2 和 reCAPTCHAv3。此功能仅限最新的 Current 版本。
5、支持识别友好爬虫(如 BaiduSpider)并自动放行(基于 User-Agent 和 IP 的识别)。此功能仅限最新的 Current 版本。
6、CC 防御,超出限制后自动拉黑对应 IP 一段时间。
7、IP 黑白名单,同时支持类似 192.168.0.0/16 和 fe80::/10,即支持点分十进制和冒号十六进制表示法和网段划分。
8、POST 黑名单。
9、URL 黑白名单
10、查询字符串(Query String)黑名单。
11、UserAgent 黑名单。
12、Cookie 黑名单。
13、Referer 黑白名单。
14、高级规则,将动作(如拦截或放行)和多个条件表达式组合起来。编译安装 ngx_waf 模块
?? 本教程基于军哥的 LNMP 一键包环境!若环境相同,可供参考!
当前各程序版本信息如下:
LNMP = v1.7
Nginx version = 1.20.1
gcc version = 4.8.5编译安装 LTS 版本的 ngx_waf 模块:
cd /usr/local/src \
&& git clone -b lts https://github.com/ADD-SP/ngx_waf.git \
&& cd ngx_waf \
&& make
cd /usr/local/src \
&& git clone https://github.com/libinjection/libinjection.git lib/libinjection
cd /usr/local/src/ngx_waf \
&& git clone https://github.com/DaveGamble/cJSON.git lib/cjson
cd /usr/local/src/ngx_waf \
&& git clone https://github.com/libinjection/libinjection.git inc/libinjection
cd /usr/local/src \
&& git clone https://github.com/jedisct1/libsodium.git --branch stable libsodium-src \
&& cd libsodium-src \
&& ./configure --prefix=/usr/local/src/libsodium --with-pic \
&& export LIB_SODIUM=/usr/local/src/libsodium \
&& make -j$(nproc) && make check -j $(nproc) && make install
cd /usr/local/src \
&& git clone https://github.com/troydhanson/uthash.git \
&& export LIB_UTHASH=/usr/local/src/uthash进入 lnmp1.7 所在目录,编辑 ~/lnmp1.7/include/upgrade_nginx.sh 这个文件:
nano ~/lnmp1.7/include/upgrade_nginx.sh找到 else 后面的 ./configure 这行(大概第 62 行),在这串编译参数末端追加 --add-module=/usr/local/src/ngx_waf --with-cc-opt='-std=gnu99'(注意:有空格!!有空格!!不要换行!!!不要换行!!!)
编译模块
cd ~/lnmp1.7
./upgrade.sh nginx输入版本号,回车,耐心等待编译完成。(Ng-inx 版本号可在 nginx 下载页 找到预升级的版本号进行输入并按下回车键)
配置 waf 防火墙
在主机配置文件例如 /usr/local/nginx/conf/vhost/www.moewah.com.conf 文件 server 块内加入以下代码:
# 启用模块
waf on;
# 指定规则文件所在目录
waf_rule_path /usr/local/src/ngx_waf/assets/rules/;
# 指定防火墙的工作模式
waf_mode DYNAMIC;
# 指定请求频率上限为每分钟1000次,超过请求拉黑60分钟
waf_cc_deny rate=1000r/m duration=60m;
# 最多缓存 50 个检测目标的检测结果
waf_cache capacity=50;
# 被攻击时降低带宽占用
waf_http_status cc_deny=444;修改完成后,重启 nginx 使配置生效。
猜你喜欢
- 2024-10-10 Nginx之gzip模块(nginx配置gzip压缩)
- 2024-10-10 Nginx源码分析之模块初始化(初始化nginx命令)
- 2024-10-10 Nginx的Gzip模块配置指令(二)(nginx gzip json)
- 2024-10-10 nginx随机模块——ngx_http_random_index_module
- 2024-10-10 写一个Nginx的模块没有那么难(nginx 模块开发)
- 2024-10-10 Nginx模块主要有三种角色(nginx模块主要有三种角色和什么)
- 2024-10-10 后端开发组件,nginx从模块开始,让你对nginx有全新的理解
- 2024-10-10 12、Nginx模块配置应用——模块概述
- 2024-10-10 了解Nginx模块开发与架构,看这一篇就够了,图表齐全通俗易懂
- 2024-10-10 nginx有哪些模块(nginx有哪些功能)
欢迎 你 发表评论:
- 10-23Excel计算工龄和年份之差_excel算工龄的公式year
- 10-23Excel YEARFRAC函数:时间的"年份比例尺"详解
- 10-23最常用的10个Excel函数,中文解读,动图演示,易学易用
- 10-23EXCEL中如何计算截止到今日(两个时间中)的时间
- 10-2390%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 10-23计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- 10-23Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 10-23怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- 最近发表
-
- Excel计算工龄和年份之差_excel算工龄的公式year
- Excel YEARFRAC函数:时间的"年份比例尺"详解
- 最常用的10个Excel函数,中文解读,动图演示,易学易用
- EXCEL中如何计算截止到今日(两个时间中)的时间
- 90%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- Excel日期函数之DATEDIF函数_excel函数datedif在哪里
- Excel函数-DATEDIF求司龄_exceldatedif函数计算年龄
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)

本文暂时没有评论,来添加一个吧(●'◡'●)