LNMP一鍵安裝包 ngx_lua_waf waf(web應(yīng)用防火墻) 安裝設(shè)置教程

WAF是啥?
WAF中文名是Web應(yīng)用防火墻,WAF能夠根據(jù)規(guī)則攔截SQL注入、惡意請(qǐng)求、黑客掃描等HTTP請(qǐng)求從而保護(hù)WEB應(yīng)用的安全。
今天我們要說(shuō)的是一個(gè)比較簡(jiǎn)單好用的基于lua的waf:ngx_lua_waf。
ngx_lua_waf是一個(gè)基于lua-nginx-module(openresty)的web應(yīng)用防火墻,https://github.com/loveshell/ngx_lua_waf。
用途:
防止sql注入,本地包含,部分溢出,fuzzing測(cè)試,xss,SSRF等web攻擊
防止svn/備份之類(lèi)文件泄漏
防止ApacheBench之類(lèi)壓力測(cè)試工具的攻擊
屏蔽常見(jiàn)的掃描黑客工具,掃描器
屏蔽異常的網(wǎng)絡(luò)請(qǐng)求
屏蔽圖片附件類(lèi)目錄php執(zhí)行權(quán)限
防止webshell上傳
ngx_lua_waf安裝
lua支持安裝
LNMP一鍵安裝包從1.5開(kāi)始增加了lua支持的選項(xiàng),可以通過(guò)修改lnmp.conf中Enable_Nginx_Lua后的參數(shù)為 y 來(lái)啟用lua,如果沒(méi)安裝lnmp,修改lnmp.conf后保存,安裝完lnmp就是支持lua的,如果已經(jīng)安裝好lnmp,也是按前面修改lnmp.conf,然后lnmp安裝包目錄下 ./upgrade.sh nginx 升級(jí)nginx,輸入當(dāng)前nginx版本號(hào)或更新的nginx版本號(hào),升級(jí)完成就是支持lua的了。
安裝ngx_lua_waf
下載安裝ngx_lua_waf:
wget https://github.com/loveshell/ngx_lua_waf/archive/master.zip -O ngx_lua_waf.zip
unzip?ngx_lua_waf.zip
mv ngx_lua_waf-master /usr/local/nginx/conf/waf
nginx上設(shè)置并啟用ngx_lua_waf
編輯 /usr/local/nginx/conf/nginx.conf 在 server_tokens off; 下面添加如下代碼:
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;
修改完成保存
如果之前http段里面已經(jīng)存在 lua_package_path 引用的配置,可能報(bào)如下錯(cuò)誤信息:nginx: [emerg] "lua_package_path" directive is duplicate in /usr/local/nginx/conf/nginx.conf:63 ,可以將引用的 目錄路徑都放到引號(hào)里面,多個(gè)目錄路徑直接用 ; 隔開(kāi)。
如原來(lái)存在 lua_package_path "/usr/local/nginx/lib/lua/?.lua";? 添加ngx_lua_waf的話需要添加 lua_package_path "/usr/local/nginx/conf/waf/?.lua"; 兩者合并之后就是 lua_package_path "/usr/local/nginx/lib/lua/?.lua;/usr/local/nginx/conf/waf/?.lua";
如果要想在某個(gè)虛擬主機(jī)啟用ngx_lua_waf可以修改對(duì)應(yīng)虛擬主機(jī)的server段,在該server段中 root 網(wǎng)站目錄行下面添加如下代碼:
access_by_lua_file /usr/local/nginx/conf/waf/waf.lua;
修改完成保存
測(cè)試nginx配置文件:/usr/local/nginx/sbin/nginx -t
重載nginx配置生效:/usr/local/nginx/sbin/nginx -s reload
如果測(cè)試和重載都沒(méi)報(bào)錯(cuò)就已經(jīng)生效。
可以通過(guò)訪問(wèn) http://域名/test.php?id=../etc/passwd 來(lái)測(cè)試
提示:您的請(qǐng)求帶有>不合法參數(shù),已被網(wǎng)站管理員設(shè)置攔截!說(shuō)明已經(jīng)正確設(shè)置
ngx_lua_waf配置文件位置:/usr/local/nginx/conf/waf/config.lua
ngx_lua_waf配置文件參數(shù)說(shuō)明:
RulePath = "/usr/local/nginx/conf/waf/wafconf/"
--規(guī)則存放目錄
attacklog = "off"
--是否開(kāi)啟攻擊信息記錄,需要配置logdir
logdir = "/usr/local/nginx/logs/hack/"
--log存儲(chǔ)目錄,該目錄需要用戶(hù)自己新建,切需要nginx用戶(hù)的可寫(xiě)權(quán)限
UrlDeny="on"
--是否攔截url訪問(wèn)
Redirect="on"
--是否攔截后重定向
CookieMatch = "on"
--是否攔截cookie攻擊
postMatch = "on"
--是否攔截post攻擊
whiteModule = "on"
--是否開(kāi)啟URL白名單
black_fileExt={"php","jsp"}
--填寫(xiě)不允許上傳文件后綴類(lèi)型
ipWhitelist={"127.0.0.1"}
--ip白名單,多個(gè)ip用逗號(hào)分隔
ipBlocklist={"1.0.0.1"}
--ip黑名單,多個(gè)ip用逗號(hào)分隔
CCDeny="on"
--是否開(kāi)啟攔截cc攻擊(需要nginx.conf的http段增加lua_shared_dict limit 10m;)
CCrate = "100/60"
--設(shè)置cc攻擊頻率,單位為秒.
--默認(rèn)1分鐘同一個(gè)IP只能請(qǐng)求同一個(gè)地址100次
html=[[Please go away~~]] --警告內(nèi)容,可在中括號(hào)內(nèi)自定義
備注:不要亂動(dòng)雙引號(hào),區(qū)分大小寫(xiě)
ngx_lua_waf安裝教程到此結(jié)束,后續(xù)我們也會(huì)推出其他幾款類(lèi)似waf的教程,如有問(wèn)題可以本文回復(fù)或者VPS論壇發(fā)帖。
-----------------------------------------------------------------------------------------------------------------
論壇注冊(cè)邀請(qǐng)碼:ef37cac79dzowN7H?有效期至:2019-3-2 10:19
>>轉(zhuǎn)載請(qǐng)注明出處:VPS偵探 本文鏈接地址:http://m.0794baidu.com/build/lnmp-nginx-lua-waf-install.html










論壇里貼配置文件看一下,你網(wǎng)站什么程序?
配置好,網(wǎng)站提示500錯(cuò)誤,什么原因
postMatch = "on" 打開(kāi)這個(gè)網(wǎng)站上傳附件就出現(xiàn) 500 Internal