nginx安装ngx_lua_waf防护
ngx_lua_waf基于ngx_lua的web应用防火墙,使用起来简单,高性能和轻量级。
♦防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击
♦防止svn/备份之类文件泄漏
♦防止ApacheBench之类压力测试工具的攻击
♦屏蔽常见的扫描黑客工具,扫描器
♦屏蔽异常的网络请求
♦屏蔽图片附件类目录php执行权限
♦防止webshell上传
配置方法如下,nginx编译安装可参考https://blog.whsir.com/post-2134.html
1、下载ngx_devel_kit
cd /usr/local/src
wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz
tar zxf v0.3.0.tar.gz
2、下载lua-nginx-module
wget https://github.com/openresty/lua-nginx-module/archive/v0.10.11.tar.gz
tar zxf v0.10.11.tar.gz
3、安装luajit
wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz
tar zxf LuaJIT-2.0.5.tar.gz
cd LuaJIT-2.0.5
make
make install
4、导入环境变量
export LUAJIT_LIB=/usr/local/lib
export LUAJIT_INC=/usr/local/include/luajit-2.0
5、编译nginx模块(注意增加模块不需要make install)
cd /usr/local/src/nginx-1.12.2
./configure --add-module=/usr/local/src/ngx_devel_kit-0.3.0 --add-module=/usr/local/src/lua-nginx-module-0.10.11 --with-ld-opt=-Wl,-rpath,$LUAJIT_LIB
make
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp objs/nginx /usr/local/nginx/sbin/
systemctl reload nginx
6、下载ngx_lua_waf
cd /usr/local/nginx/conf
wget https://github.com/loveshell/ngx_lua_waf/archive/v0.7.2.tar.gz
tar zxf v0.7.2.tar.gz
mv ngx_lua_waf-0.7.2 waf
7、在nginx.conf的http字段内添加以下内容
lua_package_path "/usr/local/nginx/conf/waf/?.lua";
lua_shared_dict limit 10m;
init_by_lua_file /usr/local/nginx/conf/waf/init.lua;
access_by_lua_file /usr/local/nginx/conf/waf/waf.lua;
8、最后重启nginx(reload也可以的)
systemctl restart nginx
9、验证(看到如下图即表示配置成功)
http://域名或IP地址/index.php?id=../etc/passwd
例如:http://192.168.157.132/index.php?id=../etc/passwd

config.lua配置文件说明
RulePath = "/usr/local/nginx/conf/waf/wafconf/"
--规则存放目录
attacklog = "off"
--是否开启攻击信息记录,需要配置logdir
logdir = "/usr/local/nginx/logs/hack/"
--log存储目录,该目录需要用户自己新建,切需要nginx用户的可写权限
UrlDeny="on"
--是否拦截url访问(如果你用了phpmyadmin,开启此项会有问题)
Redirect="on"
--是否拦截后重定向
CookieMatch = "on"
--是否拦截cookie攻击
postMatch = "on"
--是否拦截post攻击(如果开启,可能会导致网站后台无法正常上传文件)
whiteModule = "on"
--是否开启URL白名单
black_fileExt={"php","jsp"}
--填写不允许上传文件后缀类型
ipWhitelist={"127.0.0.1"}
--ip白名单,多个ip用逗号分隔
ipBlocklist={"1.0.0.1"}
--ip黑名单,多个ip用逗号分隔
CCDeny="on"
--是否开启拦截cc攻击(需要nginx.conf的http段增加lua_shared_dict limit 10m;)
CCrate = "100/60"
--设置cc攻击频率,单位为秒.
--默认1分钟同一个IP只能请求同一个地址100次
html=[[Please go away~~]]
--警告内容,可在中括号内自定义
备注:不要乱动双引号,区分大小写
nginx安装ngx_lua_waf防护的更多相关文章
- nginx安装waf防护
		一.安装nginx 二.安装luajit2.0 三.安装ngx_devel_kit#wget https://github.com/simpl/ngx_devel_kit/archive/v0.2.1 ... 
- linux nginx 安装防火墙ngx_lua_waf
		ngx_lua_waf是一款开源的 基于 ngx_lua的 web应用防火墙 github地址是 https://github.com/loveshell/ngx_lua_waf 安装流程如下 1 ... 
- Nginx 支持 WAF 防护功能实战
		WAF(Web Application Firewall),中文名称叫做“Web应用防火墙 WAF的定义是这样的:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提 ... 
- 让 Nginx 支持 WAF 防护功能实战
		ngx_lua_waf 安装说明文档 作者github地址: https://github.com/loveshell/ngx_lua_waf ———————————————————————————— ... 
- zabbix 3.0.3 (nginx)安装过程中的问题排错记录
		特殊注明:安装zabbix 2.4.8和2.4.6遇到2个问题,如下:找了很多解决办法,实在无解,只能换版本,尝试换(2.2.2正常 | 3.0.3正常)都正常,最后决定换3.0.3 1.Error ... 
- Nginx 安装以及反向代理配置(windows)
		安装 windows 下 Nginx 安装非常简单,下载地址 http://nginx.org/en/download.html. 选择红框这个,下载下来是个 zip 文件,解压.这时我们双击根目录的 ... 
- nginx安装与配置
		一.在线安装 ubuntu 安装 sudo apt-get install nginx 安装后文件结构为: 配置文件:/etc/nginx ,并且每台虚拟主机已经安排在 /etc/nginx/site ... 
- Windows下将nginx安装为服务运行
		今天看到nginx这个小服务器软件正式版更新到了1.4.2,想玩下它.这个服务器软件虽小,但功能强大,是开源软件,有着良好的性能,被很多个人.企业,甚至大型企业所使用! 由于是在Windows下,所以 ... 
- windows下nginx安装、配置与使用(转载)
		目前国内各大门户网站已经部署了Nginx,如新浪.网易.腾讯等:国内几个重要的视频分享网站也部署了Nginx,如六房间.酷6等.新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx ... 
随机推荐
- 第三个Sprint冲刺第六天(燃尽图)
- JavaScript&HTML DOM
			1.JavaScript介绍 Javascript语言诞生主要是完成页面的数据验证.因此它运行在客户端,需要运行浏览器来解析执行JavaScript代码. JS是Netscape网景公司的产品,最早取 ... 
- Eclipse频繁崩溃问题待解决
			---------------------------Eclipse---------------------------Java was started but returned exit code ... 
- [转帖]数据中心网络里的Underlay和Overlay
			数据中心网络里的Underlay和Overlay https://blog.csdn.net/zjc801blog/article/details/54289683 2017年01月09日 15:47 ... 
- eclipse里面找不到databaseexplorer
			在window==>show view==>Other==>Data Management==>Database explorer配置:在右下方点击Database Sourc ... 
- PSP(5.4——5.10)以及周记录
			1.PSP 5.4 14:00 17:00 70 110 讨论班 A Y min 5.5 10:00 16:50 125 285 Cordova A Y min 5.6 13:30 15:00 35 ... 
- 日志那点事儿——slf4j源码剖析
			前言: 说到日志,大多人都没空去研究,顶多知道用logger.info或者warn打打消息.那么commons-logging,slf4j,logback,log4j,logging又是什么关系呢?其 ... 
- VS2008中英文转换
			设置Visual Studio的语言: 工具=>选项=>环境=>区域设置=>语言 如图: 对于英文不好的朋友还是挺好用的 
- html 腳本
			腳本引入: <script type="text/script"> document.write("hello")</script> 腳 ... 
- SpringMVC @RequestBody的使用
			@RequestBody的作用 @RequestBody用于读取Request请求的body数据,然后利用SpringMVC配置的HttpMessageConverter对数据进行转换,最后把转换后的 ... 
