nginx+ngx_lua_waf 部署 WAF(web 应用防火墙)

本贴最后更新于 2065 天前,其中的信息可能已经天翻地覆

1、安装 Luagit:

wget http://luajit.org/download/LuaJIT-2.1.0-beta3.tar.gz

tar -zxvf LuaJIT-2.1.0-beta3.tar.gz

cd LuaJIT-2.1.0-beta3

make

make install

#ln -sf luajit-2.1.0-beta3 /usr/local/bin/luajit

2、安装 openresty:

./configure --prefix=/usr/local/openresty --with-luajit --with-pcre=/usr/local/src/pcre-8.42/(pcre 源码地址,解压即可)

gmake

gmake install

3、下载 ngx_lua_waf

#cd /usr/local/openresty/nginx/

git clone https://github.com/loveshell/ngx_lua_waf.git

4、修改 nginx 添加配置,支持 lua 脚本地址,在 http 段位置:

lua_package_path "/usr/local/openresty/nginx/ngx_lua_waf/?.lua"; ###相关项目存放地址

lua_shared_dict limit 10m; ###存放 limit 表的大小

init_by_lua_file /usr/local/openresty/nginx/ngx_lua_waf/init.lua; ###相应地址

access_by_lua_file /usr/local/openresty/nginx/ngx_lua_waf/waf.lua; ##相应地址

5、修改 ngx_lua_waf 相关配置:

[root@www ngx_lua_waf]# vim config.lua

RulePath = "/usr/local/openresty/nginx/ngx_lua_waf/wafconf/" ##指定相应位置

attacklog = "on" ##开启日志

logdir = "/usr/local/openresty/nginx/logs/hack/" ##日志存放位置

UrlDeny="on" ##是否开启 URL 防护

Redirect="on" ##地址重定向

CookieMatch="on" ##cookie 拦截

postMatch="on" ##post 拦截

whiteModule="on" ##白名单

black_fileExt={"php","jsp"}

ipWhitelist={"127.0.0.1"} ##白名单 IP

ipBlocklist={"1.0.0.1"} ##黑名单 IP

CCDeny="on" ##开启 CC 防护

CCrate="100/60" ##60 秒内允许同一个 IP 访问 100 次

6、创建日志存放目录:

#mkdir /usr/local/openresty/nginx/logs/hack/

#chown -R nobody:nobody /usr/local/openresty/nginx/logs/hack/

7、启动 nginx 测试

  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    311 引用 • 546 回帖 • 38 关注
  • WAF

    Web Application Firewall.

    2 引用
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 35 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...