微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

利用开源软件自建WAF系统--OpenResty+unixhot

目录

简介:利用OpenResty+unixhot自建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 等都进行一致的高性能响应。

安装Openresty

以CentOS7.5为例
1.安装命令如下

yum install yum-utils -y
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
yum install openresty-resty -y
yum --disablerepo="*" --enablerepo="openresty" list available #列出所有 openresty 仓库里的软件包

安装完成如下图所示


2.查看openresty所在目录

whereis openresty

修改Nginx.conf

cd /usr/local/openresty/Nginx/conf
ls
mv Nginx.conf Nginx.conf.$(date +%Y%m%d) #将Nginx.conf移入Nginx.conf.$(date +%Y%m%d)


vim Nginx.conf #此时为新建 Nginx.conf
将以下内容复制到Nginx.conf中并保存

worker_processes  1;
error_log logs/error.log;
events {
    worker_connections 1024;
}
http {
    server {
        listen 8080;
        location / {
            default_type text/html;
            content_by_lua '
                ngx.say("<p>hello, world</p>")
            ';
        }
    }
}

添加环境变量

echo "export PATH=$PATH:/usr/local/openresty/Nginx/sbin" >> /etc/profile
source /etc/profile

启动Openresty

Nginx -c /usr/local/openresty/Nginx/conf/Nginx.conf

查看服务

ps -ef | grep  Nginx

访问web服务验证是否正常

curl http://localhost:8080/

重启web服务

Nginx -s reload

部署WAF

unixhot下载,如果没有git,先安装一下

yum -y install git
git clone https://github.com/unixhot/waf.git

将WAF配置文件夹复制到Nginx的配置下

cp -a ~/waf/waf /usr/local/openresty/Nginx/conf/

修改Nginx.conf配置,加入如下代码并保存

#WAF
lua_shared_dict limit 10m;
lua_package_path "/usr/local/openresty/Nginx/conf/waf/?.lua";
init_by_lua_file "/usr/local/openresty/Nginx/conf/waf/init.lua";
access_by_lua_file "/usr/local/openresty/Nginx/conf/waf/access.lua";

到目前为止,修改过的Nginx.conf文件如下图所示:


测试配置

/usr/local/openresty/Nginx/sbin/Nginx -t


重新加载配置

/usr/local/openresty/Nginx/sbin/Nginx -s reload

测试WAF

模拟sql注入

本文参考链接
https://www.cnblogs.com/sanduzxcvbnm/p/11322946.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐