首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

nginx_lua_waf 部署、测试记录

nginx_lua_waf部署、测试记录

首先,让我们了解一下什么是 nginx_lua_waf。它是一个开源的 Web 应用防火墙(Web Application Firewall, WAF),通过 lua 脚本实现自动化保护目标应用。下面是我针对 nginx_lua_waf 在腾讯云上进行部署和测试的详细记录。

部署记录

  1. 登录腾讯云控制台,在“云产品”列表中选择“服务器”,进入服务器管理页面。
  2. 选择“管理”标签,点击“更多操作”,然后进入“手动重装系统”页面。
  3. 在选择操作系统中,选择“Linux”,并根据提示创建新系统。
  4. 等待安装完成后,登录服务器。
  5. /etc/nginx 中创建一个新配置文件,内容如下:
代码语言:server
复制
server 

    location /my/static 

    location / 
}
  1. 修改 nginx 的配置文件:
代码语言:nginx
复制
server 
    location /my/static/ 
    }
}
  1. /etc/nginx/mime.types 文件末尾添加以下一行:
代码语言:types
复制
  1. 重启 nginx :
代码语言:bash
复制
# service nginx stop
# service nginx start

测试记录

  1. 在 Web 服务器(如 Nginx)上安装 nginx_lua_waf,并编写一段测试 Lua 代码。local http = require "luci.http" request = http.post } local response, status = http.request(request) print('status:', status, ', body:', response.body)
  2. 在浏览器中打开待测试的 /api/my 接口。
  3. nginx_lua_waf 拦截到请求后,会调用 lua 脚本对其进行操作,根据 lua 脚本的逻辑决定是否允许请求通过。在这个例子中,lua 会通过 http.response() 返回一个自定义的错误页面。
  4. 打开 Web 日志,可以看到拦截到的请求以及返回的页面。

结语

在这个部署和测试记录中,我详细介绍了如何在腾讯云服务器上部署 nginx_lua_waf,并测试了一个简单的测试用例。通过使用 nginx_lua_waf,我们可以提高 Web 服务的安全性。希望这些信息对您有所帮助。如果需要进一步了解 nginx_lua_waf 或者其他相关问题,请随时问我。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Centos7安装openresty实现WAF防火墙功能

    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 等都进行一致的高性能响应。

    02

    2021年十大开源web应用防火墙

    开源web应用防火墙是网络安全的重要部分,Cloudflare认为:十年后数字经济的网络安全基础设施会像水过滤系统一样普及,而这个过滤系统的核心就是waf。对于服务器来说,部署WEB应用防火墙十分重要,笔者经过大量搜索,并结合市场热度,整理出2021年十大开源web应用防火墙。 1、OpenResty OpenResty 是由中国人章亦春发起,把nginx和各种三方模块的一个打包而成的软件平台,核心就是nginx+lua脚本语言。主要是因为nginx是C语言编写,修改很复杂,而lua语言则简单得多,国内很多大公司如360、京东、gitee等都在用来作为web应用防火墙。 项目地址:https://github.com/openresty/ 2、AIHTTPS aihttps是hihttps的升级版,也是由中国人编写。特点是兼容ModSecurity规则,并且已经向人工智能方向进化:使用机器学习自主生成对抗规则,来防御包括:漏洞扫描、CC 、DDOS、SQL注入、XSS等。其商业版也开源,是目前商业化开源程度最高的WAF。 项目地址:https://github.com/qq4108863/ 官网:http://www.hihttps.com

    05

    闲谈WAF与反爬虫

    Openresty的核心功能就提供WEB服务,Openresty还有个很重要的功能就是用作反向代理服务器。 WAF防护功能的基本原理就是利用Openresty的反向代理模式工作。 因为Openresty服务器作为后端WEB服务器的前置服务器,先于后端服务器收到用户的请求,Openresty服务器在某个处理阶段,通过LUA语言读取用户的HTTP请求数据,并通过特定规则过滤策略,发现用户请求中的恶意攻击行为。 当Openresty的拦截分析功能,发现用户的请求含有威胁的意图时,直接将用户的请求进行了拦截。这时的请求,实际上不会被发送给业务服务器。(Openresty的常用处理阶段) 这种模式本质上,也是一种串行的流量复制模式,从时间轴上用户请求的数据,被按时间的前后顺序复制了两份, 一份数据先传给反向代理服务模式下的代理服务器,当代理服务器经过安全策略的检查,发现用户的请求没有威胁行为,又将几乎同样的请求数据转发给上游的业务服务器。 现在还有一种基于日志分析的WEB防护系统,这种系统依赖与日志的产生,在请求交给业务服务器,产生日志以后,对日志进行分析,当发现有异常攻击行为在请求当中,会从下次请求的时进行拦截。 这种模式没有建立下反向代理的工作模式下,只有当就服务器已经响应了用户请求后, 生成日志之后才能分析,相对来说处理是滞后一步的。 这种场景下的系统,要求拦截模块可以与分析系统、业务系统协同工作。 还有一种的是基于流量并行复制,将要给业务服务器的请求数据,先通过分光或是其他形式的流量复制,把流量发给其他服务器,其他服务器通过特定服务的流量协议的数据解析,将给业务的HTTP解析取得,然后分析流量的威胁行为,当异常请求再来的时候,通过业务服务器的前置Operesty、Tengine、Nginx等前置或是负载均衡,或部署业务本身服务的拦截模块进行拦截。 这种模式的处理,反向代理模式的代理那部分拦截模块,不负责异常的分析,只做具体的拦截动作。这样最大的好处是,代理或是负载均衡集群没有“思考”的时间消耗,只是执行具体拦截,这样的反向代理的模式下,不会消耗业务服务的太多响应时间。 这种模式,最大限度减少代理服务器对业务服务器的响应损耗,某些业务对应影响业务所消耗的时间严格的限制,并且对已上线的业务来说,压测准确率不能交十分好的把握,如果处理不好,出现正则风暴的可能性也都是有的,同样的问题是拦截相对第一时间拦截响应的模式,也会滞后处理。 各种模式都有自己的好处和弊端,对于不同的业务规模可以使用对应的模式与其匹配。 对于一些小型的业务来说,可以不使用太重型的武器,理论上来讲,只要反向代理的模式可以覆盖业务量,成本和部署好控制,可以选用反向代理模式的WEB防火墙部署。这种模式对DDOS基本也是无解的。 WAF系统的规则构建,针对于单一的业务来讲,没有必要求大求全,除去通用规则,Python业务服务没有必要配置PHP的拦截规则,Python的业务语言框架,也不用要求WAF系统进行拦截, 因为当前业务用的Python的框架, 不会有PHP框架的漏洞。 WAF和反爬虫系统不一样的地方,排除扫描器的爬虫行为。爬虫系统的目的是抓取网上的有价值的网页内容, 而不是非要爬取数据的同时,在爬取请求的链接中加入XSS和SQL注入,毕竟爬虫是抓取内容,而不是把发现漏洞和攻陷主机或是挂马为目的。 反爬系统的异常和WAF系统检查异常的角度是不一样的。因为请求者的目的就不一样。但是他们采用的技术手段有时候是类似的。无论从路由器设备就开始取得流量数据,还是通过镜像在链路层,或是网络层复制流量、还是通过Openresty反向代理代理的7层读取流量数据,要根据业务的硬件架构和软件结构来分析判断匹配对应模式的。 WAF系统的拦截规则不是万能的,即使是同样的异常拦截规则,也不是可以简单的移植到别的系统上的。一种是规则解释模块的功能问题,还有性能问题,核心的引擎平台怎么样。

    01
    领券