使用Nginx+Lua实现的WAF网站防护功能


一.OpenResty安装和测试官方网站:https://openresty.org/cn/OpenResty是一个基于Nginx与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。OpenResty通过汇聚各种设计精良的Nginx模块(主要由 OpenResty 团队自主开发),从而将Nginx有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动Nginx支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。OpenResty的目标是让你的Web服务直接跑在Nginx服开发云主机域名务内部,充分利用Nginx的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。
LUA学习:http://blog.jobbole.com/70480/
1.安装OpenResty:# yum install -y readline-devel pcre-devel openssl-devel# cd /usr/local/src下载并编译安装openresty# wget https://openresty.org/download/ngx_openresty-1.9.3.2.tar.gz# tar zxf ngx_openresty-1.9.3.2.tar.gz# cd ngx_openresty-1.9.3.2# ./configure –prefix=/usr/local/ngx_openresty-1.9.3.2 –with-luajit –with-http_stub_status_module –with-pcre –with-pcre-jit# gmake && gmake install# ln -s /usr/local/openresty-1.9.3.2/ /usr/local/openresty
#报错提醒:在./configure时的报错:/usr/bin/env: perl: No such file or directory出现这种错误可能是没有安装perl,解决yum install perl -y解决:yum install *gcc* -y
2.测试openresty安装:vim /usr/local/openresty/nginx/conf/nginx.conf在此处省略处,添加一行

3.启动openresty并测试:/usr/local/openresty/nginx/sbin/nginx -t/usr/local/openresty/nginx/sbin/nginx

4. 性能测试– 1. 安装压力测试工具
— 2. 测试

…需求产生 由于原生态的Nginx的一些安全防护功能有限,就研究能不能自己编写一个WAF,参考(照抄)Kindle大神的ngx_lua_waf,自己尝试写一个了,使用两天时间,边学Lua,边写。不过不是安全专业,只实现了一些比较简单的功能:####功能列表:支持IP白名单和黑名单功能,直接将黑名单的IP访问拒绝。支持URL白名单,将不需要过滤的URL进行定义。支持User-Agent的过滤,匹配自定义规则中的条目,然后进行处理(返回403)。支持CC***防护,单个URL指定时间的访问次数,超过设定值,直接返回403。支持Cookie过滤,匹配自定义规则中的条目,然后进行处理(返回403)。支持URL过滤,匹配自定义规则中的条目,如果用户请求的URL包含这些,返回403。支持URL参数过滤,原理同上。支持日志记录,将所有拒绝的操作,记录到日志中去。日志记录为JSON格式,便于日志分析,例如使用ELKStack进行***日志收集、存储、搜索和展示。####WAF实现 WAF一句话描述,就是解析HTTP请求(协议解析模块),规则检测(规则模块),做不同的防御动作(动作模块),并将防御过程(日志模块)记录下来。所以本文中的WAF的实现由五个模块(配置模块、协议解析模块、规则模块、动作模块、错误处理模块)组成。

相关推荐: DHCP原理及实验

DHCP原理及实验一、DHCP原理1、DHCP(dynamic host configuration protocol)动态主机配置协议,主要为网络中计算机自动分配TCP/IP参数的协议。2、DHCP提供的TCP/IP配置IP地址、子网掩码、网关、DNS3、使…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/30 14:55
下一篇 03/30 14:56