网站首页 > 开源技术 正文
说明: 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-23 第7天 | 12天搞定Python,函数详解
- 2024-10-23 浅谈网站设计中KgCaptcha使用的心得
- 2024-10-23 屯溪警方提醒:又有人被骗了(黄山屯溪诈骗新闻)
- 2024-10-23 python实现登录12306网站查看火车票信息
- 2024-10-23 漳州公民办中小学网上报名如何操作?我教你
- 2024-10-23 Wordpress建站教程:WPForms表单如何防止垃圾询盘?
- 2024-10-23 1.5折 好友联机8人野外探险求生 《The Wild Eight》
- 2024-10-23 每日游讯:《永劫无间》反挂,Epic官方推荐网络无法登录解决办法
- 2024-10-23 验证码识别全流程实战(验证码识别技术)
- 2024-10-23 Burp验证码识别插件"captcha-killer-modified"使用教程(详细)
你 发表评论:
欢迎- 03-26业务监控—一站式搭建jmeter+telegraf+influxdb+Grafana看板
- 03-2615个最好的性能测试工具(软件测试工程师必备)
- 03-26软件测试工程师必备技巧!(软件测试工程师入门教程)
- 03-26UE4基础知识总结(七)(ue4入门)
- 03-26Portkeys推出新款HDMI播放器:5.5英寸FHD屏幕,支持4K输入/输出
- 03-26数字时代的纯粹,HiFiMan HM-901S 播放器体验
- 03-26CBN丨Double 11 sales shows resilience in China’s consumption
- 03-26AKG K812简单听感(akgk812pro评测)
- 最近发表
-
- 业务监控—一站式搭建jmeter+telegraf+influxdb+Grafana看板
- 15个最好的性能测试工具(软件测试工程师必备)
- 软件测试工程师必备技巧!(软件测试工程师入门教程)
- UE4基础知识总结(七)(ue4入门)
- Portkeys推出新款HDMI播放器:5.5英寸FHD屏幕,支持4K输入/输出
- 数字时代的纯粹,HiFiMan HM-901S 播放器体验
- CBN丨Double 11 sales shows resilience in China’s consumption
- AKG K812简单听感(akgk812pro评测)
- 盘点索尼Walkman发展史,哪台播放器让你印象深刻
- LUXMAN力仕 DA-07X 解码器#发烧hifi
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)