Linux下给nginx安装waf模块

 更新时间:2016年08月27日 11:01:32   作者:mindg  
ngx_lua_waf是一个基于ngx_lua的web应用防火墙。代码很简单,开发初衷主要是使用简单,高性能和轻量级。下面我们来看看如何在为nginx安装waf模块

最近上新项目,搭建nginx的时候为保证安全,决定安装下waf模块,以下是具体步骤,首先下载需要的安装包,进行每个安装:

wget http://luajit.org/download/LuaJIT-2.0.3.tar.gz
tar -zxvf LuaJIT-2.0.3.tar.gz
cd LuaJIT-2.0.3
make
make install

然后下载nginx,

wget http://nginx.org/download/nginx-1.7.6.tar.gz
tar -zxvf nginx-1.7.6.tar.gz

下载ngx_devel_kit,

wget https://github.com/simpl/ngx_devel_kit/archive/v0.2.19.tar.gz –no-check-certificate
tar -zxvf v0.2.19.tar.gz

下载nginx_lua_module

wget https://github.com/openresty/lua-nginx-module/archive/v0.9.13rc1.tar.gz –no-check-certificate
tar -zxvf v0.9.13rc1.tar.gz
cd nginx-1.7.6

安装pcre,

tar -zxvf pcre-8.30.tar.gz
cd pcre-8.30
./configure
make
make install

安装openssl,

tar -zxvf openssl-1.0.0.tar.gz

安装ngx_cache_purge模块:

tar   -zxvf  ngx_cache_purge-1.3.tar.gz

安装zlib,    yum install zlib zlib-devel

设置环境变量,进行编译,

export LUAJIT_LIB=/usr/local/lib

export LUAJIT_INC=/usr/local/include/luajit-2.0

./configure –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module –add-module=/root/ngx_devel_kit-0.2.19 –add-module=/root/lua-nginx-
module-0.9.13rc1 –with-http_ssl_module –with-openssl=/root/openssl-1.0.0 –add-module=/root/ngx_cache_purge-1.3 –with-pcre=/root/pcre-8.30 –with-ld-opt=”-Wl,-rpat
h,$LUAJIT_LIB”

make -j2

make install

建立目录存放攻击日志:

mkdir -p /data/logs/hack/
chown -R nobody:nobody /data/logs/hack/
chmod -R 755 /data/logs/hack/

下载waf,

wget https://github.com/loveshell/ngx_lua_waf/archive/master.zip –no-check-certificate
unzip master.zip
cd ngx_lua_waf-master/
mkdir /usr/local/nginx/conf/waf
mv * /usr/local/nginx/conf/waf/
cd /usr/local/nginx/conf/
vi nginx.conf

在http 段加入:

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

启动前运行: ln -s /usr/local/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2  否则会找不到这个模块报错。

过滤规则在wafconf下,可根据需求自行调整,每条规则需换行,或者用|分割
global是全局过滤文件,里面的规则对post和get都过滤
get是只在get请求过滤的规则
post是只在post请求过滤的规则
whitelist是白名单,里面的url匹配到不做过滤
user-agent是对user-agent的过滤规则

相关文章

  • Nginx中location匹配以及rewrite重写跳转详解

    Nginx中location匹配以及rewrite重写跳转详解

    访问重写 rewrite 是 Nginx HTTP 请求处理过程中的一个重要功能,下面这篇文章主要给大家介绍了Nginx中location匹配以及rewrite重写跳转的相关资料,需要的朋友可以参考下
    2022-03-03
  • nginx配置代理多个前端资源

    nginx配置代理多个前端资源

    本文主要介绍了nginx配置代理多个前端资源,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Nginx使用limit_req_zone对同一IP访问进行限流的方法

    Nginx使用limit_req_zone对同一IP访问进行限流的方法

    今天小编就为大家分享一篇Nginx使用limit_req_zone对同一IP访问进行限流的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • 详解Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解

    详解Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解

    本篇文章主要介绍了Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-12-12
  • 基于nginx反向代理获取用户真实Ip地址详解

    基于nginx反向代理获取用户真实Ip地址详解

    我们访问互联网上的服务时,大多数时客户端并不是直接访问到服务端的,而是客户端首先请求到反向代理,反向代理再转发到服务端实现服务访问,这篇文章主要给大家介绍了关于如何基于nginx反向代理获取用户真实Ip地址的相关资料,需要的朋友可以参考下
    2022-03-03
  • Nginx 介绍及日常管理的详解

    Nginx 介绍及日常管理的详解

    这篇文章主要介绍了Nginx 介绍及日常管理的详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-10-10
  • 利用nginx + fastcgi实现图片识别服务器

    利用nginx + fastcgi实现图片识别服务器

    这篇文章主要给大家介绍了关于如何利用nginx + fastcgi实现图片识别服务器的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • 使Nginx服务器支持.htaccess的方法

    使Nginx服务器支持.htaccess的方法

    这篇文章主要介绍了使Nginx服务器支持.htaccess的方法,.htaccess配置文件设置是Apache上的好东西,现在我们让Nginx服务器也能使用它,需要的朋友可以参考下
    2015-07-07
  • Nginx限制带宽配置示例

    Nginx限制带宽配置示例

    这篇文章主要介绍了Nginx限制带宽配置示例,本文网罗了3个方法,希望可以帮到大家,需要的朋友可以参考下
    2014-09-09
  • 分享nginx+php-fpm实现大文件下载排坑的过程

    分享nginx+php-fpm实现大文件下载排坑的过程

    这篇文章主要介绍了nginx+php-fpm实现大文件下载排坑的过程,文中通过代码实例相结合的形式给大家介绍的非常详细,具有一定得参考借鉴价值,需要的朋友参考下吧
    2018-08-08

最新评论