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

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










論壇里貼配置文件看一下,你網站什么程序?
配置好,網站提示500錯誤,什么原因
postMatch = "on" 打開這個網站上傳附件就出現 500 Internal