nginx_lua_waf安裝測試
ngx_lua_waf是一個基於lua-nginx-module(openresty)的web應用防火墻,對於中小企業或不願購置硬件防火墻的企業的首選,能有效保證網站的安全性。
源碼:https://github.com/loveshell/ngx_lua_waf
0x1 安裝部署
系統版本:Centos7 x86_64
安裝依賴包
yum install -y readline-devel pcre-devel openssl-devel
1、openresty的安裝配置
cd /usr/local/src
wget https://openresty.org/download/openresty-1.9.15.1.tar.gz
tar -zxvf openresty-1.9.15.1.tar.gz
cd openresty-1.9.15.1
./configure --prefix=/usr/local/openresty-1.9.15.1 --with-luajit --with-http_stub_status_module --with-pcre --with-pcre-jit
gmake && gmake install
ln -s /usr/local/openresty-1.9.15.1/ /usr/local/openresty
測試啟動nginx
/usr/local/openresty/nginx/sbin/nginx -t
成功啟動nginx顯示如下
nginx: the configuration file /usr/local/openresty-1.9.15.1/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/openresty-1.9.15.1/nginx/conf/nginx.conf test is successful
啟動nginx
/usr/local/openresty/nginx/sbin/nginx
2、配置nginx_lua_waf
git clone https://github.com/loveshell/ngx_lua_waf.git
將git獲取的文件放到nginx的conf目錄下
在nginx.conf的http段添加
lua_package_path "/usr/local/openresty/nginx/conf/ngx_lua_waf/?.lua";
lua_shared_dict limit 10m;
init_by_lua_file /usr/local/openresty/nginx/conf/ngx_lua_waf/init.lua;
access_by_lua_file /usr/local/openresty/nginx/conf/ngx_lua_waf/waf.lua;
配置config.lua裏的waf規則目錄(一般在ngx_lua_waf/wafconf/目錄下)
RulePath = "/usr/local/openresty/nginx/conf/ngx_lua_waf/wafconf"
attacklog = "on"
logdir = "/usr/local/nginx/logs/waf"
3、waf日誌配置
#將nginx.conf首行的”# user nobody;”的”#”註釋去掉,重新啟動nginx服務
user nobody
#將防護日誌目錄所屬user和group修改為nobody,目錄權限可設為700也可以寫入,當然也可以默認
cd /usr/local/nginx/conf
//chown -R nobay.nobady waf
//chmod 700 waf
因為nginx、php模塊等是單獨安裝的,所以每次重啟服務器都需要重啟相應的服務
啟動nginx
cd /usr/local/openresty/nginx/sbin
./nginx (不關閉nginx而重新加載配置文件 ./nginx -t)
0x2 nginx_lua_waf測試
啟動php
直接執行/usr/sbin/php-fpm
測試SQL註入漏洞
測試結果
測試任意文件讀取
進行CC攻擊測試
通過查看waf_logs可以看到waf攔截的所有的攻擊操作
通過waf_logs可以看到無論是sql註入、任意文件讀取還是CC攻擊都被成功的攔截,waf的部署是成功可靠的!
本文出自 “tar0cissp” 博客,請務必保留此出處http://tar0cissp.blog.51cto.com/6253667/1980249
nginx_lua_waf安裝測試