1.官网下载nginx源码包(nginx-1.20.0.tar.gz)

新建nginx安装目录

mkdir -p /opt/nginx

新增nginx运行用户

useradd -s /sbin/nologin -M nginx

2.安装依赖

yum -y install wget unzip gcc gcc-c++ make automake autoconf pcre pcre-devel zlib zlib-devel openssl openssl-devel libtool

3.安装lua相关包(waf配置需要)

下载luajit 2.0并安装

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

tar -xf tar -zxvf LuaJIT-2.0.5.tar.gz

cd LuaJIT-2.0.5

make && make install

安装ngx_devel_kit(nginx development kit)模块是一个拓展nginx服务器核心功能的模块,第三方模块开发可以基于它来快速实现。

wget https://github.com/simplresty/ngx_devel_kit/archive/v0.3.0.tar.gz

tar -xf ngx_devel_kit-0.3.0.tar.gz #nginx编译安装时需要此模块

安装nginx_lua_module

tar -xf lua-nginx-module-0.10.13.tar.gz #nginx编译安装时需要此模块

4.导入环境变量:

echo "export LUAJIT_LIB=/usr/local/lib" >> /etc/profile
echo "export LUAJIT_INC=/usr/local/include/luajit-2.0" >> /etc/profile
source /etc/profile

5.nginx编译安装

tar -zxvf nginx-1.20.0.tar.gz

cd nginx-1.20.0

./configure --prefix=/opt/nginx --user=nginx --group=nginx --add-module=/root/ngx_devel_kit-0.3.0 --add-module=/root/lua-nginx-module-0.10.13 --with-ld-opt="-Wl,-rpath,$LUAJIT_LIB"

make && make install

cd ../

chown -R nginx:nginx nginx

新建/opt/nginx/logs/hack/攻击日志目录,并赋予nginx用户对该目录的写入权限。

mkdir -p /opt/nginx/logs/hack/

chown -R nginx.nginx /opt/nginx/logs/hack/

chmod -R 755 /opt/nginx/logs/hack/

6.下载安装waf

wget https://github.com/loveshell/ngx_lua_waf/archive/master.zip

unzip master.zip -d /opt/nginx/conf/

cd /opt/nginx/conf/

mv ngx_lua_waf-master waf

chown -R nginx:nginx waf/

7.nginx配置如下

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

配置config.lua里的waf规则目录(一般在waf/conf/目录下):

cd /opt/nginx/conf/waf/conf

vim config.lua

8.启动nginx服务完成配置

 

nginx+waf防火墙的更多相关文章

  1. Nginx详解二十八:Nginx架构篇Nginx+Lua的安全waf防火墙

    Nginx+Lua的安全waf防火墙 看一下别人写好的:https://github.com/loveshell/ngx_lua_waf 先安装git:yum -y install git 在/opt ...

  2. Nginx + Lua 搭建网站WAF防火墙

    前言 对于项目里面只是使用代理等常用功能,在线安装即可,如需制定化模块,则推荐编译安装 PS:本文不仅仅包含Nginx相关的知识点,还包含了逆天学习方法(对待新事物的处理) 官方网站:https:// ...

  3. nginx+lua实现灰度发布/waf防火墙

    nginx+lua 实现灰度发布 waf防火墙 课程链接:[课程]Nginx 与 Lua 实现灰度发布与 WAF 防火墙(完)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili 参考博客 Nginx ...

  4. 小迪安全 Web安全 基础入门 - 第八天 - 信息打点-系统篇&端口扫描&CDN服务&负载均衡&WAF防火墙

    一.获取网络信息-服务厂商&网络架构 1.通过whois查询获取. 2.nmap.goby等扫描工具扫描获取. 3.https://www.netcraft.com/等网站查询获取. 二.服务 ...

  5. 【转】Nginx 学习笔记(十一)nginx下安装配置naxsi waf防火墙(附完整编译、配置)

    原文地址:http://f2ex.cn/nginx-installed-configuration-naxsi-waf/ Naxsi 是第三方 nginx 模块 ,它和 Modsecurity 都是开 ...

  6. nginx中使用waf防火墙

    1.安装依赖 yum install -y readline-devel ncurses-devel 2.安装Lua # .tar.gz # cd lua- # make linux # make i ...

  7. linux nginx 安装防火墙ngx_lua_waf

    ngx_lua_waf是一款开源的 基于 ngx_lua的 web应用防火墙 github地址是  https://github.com/loveshell/ngx_lua_waf 安装流程如下 1 ...

  8. Azure WAF防火墙工作原理分析和配置向导

    Azure WAF工作原理分析和配置向导 本文博客地址为:http://www.cnblogs.com/taosha/p/6716434.html ,转载请保留出处,多谢! 本地数据中心往云端迁移的的 ...

  9. WAF防火墙介绍

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt187 在互联网应用高速发展的同时,承载Web信息系统的Web服务器也面临着巨 ...

随机推荐

  1. OpenCV 查找轮廓

    本文将结合实例代码,介绍 OpenCV 如何查找轮廓.获取边界框. 代码: contours.py OpenCV 提供了 findContours 函数查找轮廓,需要以二值化图像作为输入.并指定些选项 ...

  2. js中reduce用法详解

    介绍reduce reduce() 方法接收一个函数作为累加器,reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(上一次回调的返回值),当 ...

  3. 3D点云完美匹配

    3D点云完美匹配 The Perfect Match: 3D Point Cloud Matching with Smoothed Densities 地址链接: http://openaccess. ...

  4. 为x86 CPU自动调度神经网络

    为x86 CPU自动调度神经网络 对特定设备和工作负载进行自动调试对于获得最佳性能至关重要.这是有关如何使用自动调度器为x86 CPU调试整个神经网络的文档. 为了自动调试神经网络,将网络划分为小的子 ...

  5. cuDNN 功能模块解析

    Abstract 本cuDNN 8.0.4开发人员指南概述了cuDNN功能,如可自定义的数据布局.支持灵活的dimension ordering,striding,4D张量的子区域,这些张量用作其所有 ...

  6. 【NX二次开发】拉伸的偏置方向猜想与验证

    结论:偏置的方向为曲线方向与拉伸方向的向量叉乘. 在UF_MODL_create_extrusion帮助中有这么一句话:Note that the offset direction is determ ...

  7. 【C++】Vector判断元素是否存在,去重,求交集,求并集

    1 #include <iostream> 2 #include <vector> 3 #include <algorithm> //sort函数.交并补函数 4 ...

  8. 详解Apache Dubbo的SPI实现机制

    一.SPI SPI全称为Service Provider Interface,对应中文为服务发现机制.SPI类似一种可插拔机制,首先需要定义一个接口或一个约定,然后不同的场景可以对其进行实现,调用方在 ...

  9. 从菜鸟到大神:Java高并发核心编程(连载视频)

    任何事情是有套路的,学习是如此, Java的学习,更是如此. 本文,为大家揭示 Java学习的套路 背景 Java高并发.分布式的中间件非常多,网上也有很多组件的源码视频.原理视频,汗牛塞屋了. 作为 ...

  10. 微信小程序使用async await的一些技巧

    在小程序onLoad事件中使用getItems(this) 和this.getItems() getItems(this)对应的方法为 this.getItems()对应的方法为 在getItems( ...