摘要:說明防止注入,本地包含,部分溢出,測試,等攻擊防止備份之類文件泄漏防止之類壓力測試工具的攻擊屏蔽常見的掃描黑客工具,掃描器屏蔽異常的網絡請求屏蔽圖片附件類目錄執行權限防止上傳下載使用使用安裝下載解壓后,將整放到目錄中,并命名為配置安裝路徑假
1. Ngx lua waf 說明
防止sql注入,本地包含,部分溢出,fuzzing測試,xss,SSRF等web攻擊
防止svn/備份之類文件泄漏
防止ApacheBench之類壓力測試工具的攻擊
屏蔽常見的掃描黑客工具,掃描器
屏蔽異常的網絡請求
屏蔽圖片附件類目錄php執行權限
防止webshell上傳
使用git
git clone https://github.com/loveshell/...
使用wget
3. 安裝wget https://github.com/loveshell/...
下載解壓后,將整 ngx_lua_waf 放到 nginx conf 目錄中,并命名為 waf;4. 配置
4.1. 在nginx.conf的http段添加nginx安裝路徑假設為:/usr/local/nginx/conf/ ;以下都將以此配置為例進行說明
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;4.2. 配置config.lua
--配置waf規則目錄 RulePath = "/usr/local/nginx/conf/waf/wafconf/" --修改失敗提示 html=[[{"retcode":"21000","messages":"請求失敗,請稍后再試","body":{}}]] --開啟cc攻擊,需要在nginx.conf http 段配置lua_shared_dict CCDeny="on" -- 設置cc攻擊頻率,單位為秒 (如:同一個ip請求同一個地址,每秒最多請求50次) CCrate = "50/1"4.3. 其他詳細配置說明
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~~]] --警告內容,可在中括號內自定義5 修改 waf/init.lua 文件
替換sys_html 函數:
function say_html() if Redirect then ngx.header.content_type = "text/html;charset=UTF-8" ngx.status = ngx.HTTP_FORBIDDEN ngx.say(html) ngx.exit(ngx.status) end end
替換denycc 函數:
function denycc() if CCDeny then local uri=ngx.var.uri CCcount=tonumber(string.match(CCrate,"(.*)/")) CCseconds=tonumber(string.match(CCrate,"/(.*)")) local token = getClientIp()..uri local limit = ngx.shared.limit local req,_=limit:get(token) if req then if req > CCcount then ngx.header.content_type = "application/json;charset=UTF-8" local ret={returncode="22000",messages="請求拒絕,請稍后再試",body={}} --ngx.header["Content-Type"]="text/html;charset=UTF-8" ngx.say(json.encode(ret)) ngx.exit(200) return true else limit:incr(token,1) end else limit:set(token,1,CCseconds) end end return false end6. 啟用waf
然后重啟nginx,或reload 即可: /user/local/nginx/sbin/nginx -s reload7. 測試
curl http://17.16.200.20/test/index?id=../etc/passwd 返回:{"retcode":"21000","messages":"請求失敗,請稍后再試","body":{}} 說明生效
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39633.html
摘要:說明防止注入,本地包含,部分溢出,測試,等攻擊防止備份之類文件泄漏防止之類壓力測試工具的攻擊屏蔽常見的掃描黑客工具,掃描器屏蔽異常的網絡請求屏蔽圖片附件類目錄執行權限防止上傳下載使用使用安裝下載解壓后,將整放到目錄中,并命名為配置安裝路徑假 1. Ngx lua waf 說明 防止sql注入,本地包含,部分溢出,fuzzing測試,xss,SSRF等web攻擊防止svn/備份之類文件泄...
摘要:是一個基于的,提供及自定義規則的監控和管理,如訪問統計流量切分重定向防火墻等功能。第三方版的已在開發中,屆時會伴隨一起發布。 Orange Orange是一個基于OpenResty的API Gateway,提供API及自定義規則的監控和管理,如訪問統計、流量切分、API重定向、WEB防火墻等功能。它有以下特性: 配置項支持文件存儲和MySQL存儲(0.2.0版本開始將去除文件支持) ...
摘要:多返回值開始變得越來越與眾不同了允許函數返回多個結果。這種情況函數沒有足夠的返回值時也會用來補充。中的索引習慣以開始。 showImg(https://segmentfault.com/img/bVIcQU?w=136&h=103); 為什么值得入手? Nginx作為現在使用最廣泛的高性能后端服務器,Openresty為之提供了動態預言的靈活,當性能與靈活走在了一起,無疑對于被之前陷于...
閱讀 1697·2021-10-09 09:44
閱讀 3263·2021-09-27 13:36
閱讀 1520·2021-09-22 15:33
閱讀 1274·2021-09-22 15:23
閱讀 1159·2021-09-06 15:02
閱讀 1695·2019-08-29 16:14
閱讀 2901·2019-08-29 15:26
閱讀 2408·2019-08-28 18:08