热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OpenResty+ngx_lua_waf使用

本篇介绍在CentOS7.6上安装、测试使用ngx_lua_waf+ope

  本篇介绍在CentOS7.6上安装、测试使用ngx_lua_waf + openresty。


Preface


# yum install epel-release -y
# yum group install
"Development Tools" -y    # 安装基本编译工具


安装Luagit


# cd /opt/
# wget http:
//luajit.org/download/LuaJIT-2.1.0-beta3.tar.gz
# tar -xvf 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


安装OpenResty


安装依赖


# yum install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel -y


下载安装


# cd /opt/
# wget https:
//openresty.org/download/openresty-1.13.6.1.tar.gz
# tar -xvf openresty-1.13.6.1.tar.gz
# cd openresty
-1.13.6.1/
# ./configure --prefix=/usr/local/openresty --with-luajit --with-http_stub_status_module --with-pcre --with-pcre-jit

# gmake
&& gmake install
# ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/local/openresty/bin/openresty


# /usr/local/openresty/bin/openresty # 启动openresty
# netstat
-lntp | grep 80 # 服务运行正常
tcp
0 0 0.0.0.0:80 0.0.0.0:* LISTEN


配置ngx_lua_waf


下载


# cd /usr/local/openresty/nginx/conf                  # 到openresty配置文件目录
# git clone https:
//github.com/loveshell/ngx_lua_waf.git      # 下载
Cloning into ngx_lua_waf...
# mv ngx_lua_waf/ waf/                           # 改个简单的名字


添加配置

修改openresty配置文件。


# vim /usr/local/openresty/nginx/conf/nginx.conf
...
user nobody; # 取消注释
...
http{ # 在http块下添加如下内
...

lua_package_path "/usr/local/openresty/nginx/conf/waf/?.lua";
lua_shared_dict limit 10m;
init_by_lua_file /usr/local/openresty/nginx/conf/waf/init.lua;
access_by_lua_file /usr/local/openresty/nginx/conf/waf/waf.lua;

...


修改ngx_lua_waf配置


# cd /usr/local/openresty/nginx/conf/waf/ # ngx_lua_waf目录
# vim config.lua
...
RulePath
= "/usr/local/openresty/nginx/conf/waf/wafconf/" # 规则文件路径
attacklog
= "on" # 启用日志
logdir
= "/usr/local/openresty/nginx/logs/hack/" # 日志目录
...

创建日志目录


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

测试openresty配置是否正常:


# /usr/local/openresty/bin/openresty # 如果没有启动服务,则启动
#
/usr/local/openresty/bin/openresty -s reload # 如果已经启动,则重载配置
#
/usr/local/openresty/bin/openresty -t # 测试配置是否正常
nginx: the configuration file
/usr/local/openresty/nginx/conf/nginx.conf syntax is ok
nginx: configuration file
/usr/local/openresty/nginx/conf/nginx.conf test is successful


WAF测试

 直接访问站点(此处为虚拟机的ip地址),应该能看到Openresty的欢迎页。
技术分享图片


 攻击测试

 尝试目录遍历攻击,即使用../,跳转目录读取文件。

访问:http://192.168.139.139//test.php?id=../etc/passwd

提示,检测到攻击行为,请求被拦截,说明可以正常工作。

技术分享图片


 ngx_lua_waf配置文件说明

配置文件路径:/usr/local/openresty/nginx/conf/waf/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次


参考

  centos下安装openresty+ngx_lua_waf防火墙部署

   https://github.com/loveshell/ngx_lua_waf

  https://blog.51cto.com/tar0cissp/1980249

注:参考链接中都有几个小问题,写的不够清晰。


推荐阅读
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
  • 编译安装更轻量,不会像yum安装那么臃肿。(一)安装MYSQL:一、安装简介用户名:mysql安装目录:us ... [详细]
  • 1、概念解读1.1什么是链接?链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的方法。Linux系统中有两种链接:硬链接(HardLink)和软链接(SoftLink), ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 在project.properties添加#Projecttarget.targetandroid-19android.library.reference.1..Sliding ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了一种解析GRE报文长度的方法,通过分析GRE报文头中的标志位来计算报文长度。具体实现步骤包括获取GRE报文头指针、提取标志位、计算报文长度等。该方法可以帮助用户准确地获取GRE报文的长度信息。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • 本文介绍在使用vmware中配置centos6.5时遇到的网络问题,包括host-only和natip的配置,以及无法上网的原因。同时提供了解决方法,包括去掉host-only配置文件中的gateway。 ... [详细]
  • 三、查看Linux版本查看系统版本信息的命令:lsb_release-a[root@localhost~]#lsb_release-aLSBVersion::co ... [详细]
  • centos6.8 下nginx1.10 安装 ... [详细]
author-avatar
帖帧
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有