摘要:說明防止注入,本地包含,部分溢出,測(cè)試,等攻擊防止備份之類文件泄漏防止之類壓力測(cè)試工具的攻擊屏蔽常見的掃描黑客工具,掃描器屏蔽異常的網(wǎng)絡(luò)請(qǐng)求屏蔽圖片附件類目錄執(zhí)行權(quán)限防止上傳下載使用使用安裝下載解壓后,將整放到目錄中,并命名為配置安裝路徑假
1. Ngx lua waf 說明
防止sql注入,本地包含,部分溢出,fuzzing測(cè)試,xss,SSRF等web攻擊
防止svn/備份之類文件泄漏
防止ApacheBench之類壓力測(cè)試工具的攻擊
屏蔽常見的掃描黑客工具,掃描器
屏蔽異常的網(wǎng)絡(luò)請(qǐng)求
屏蔽圖片附件類目錄php執(zhí)行權(quán)限
防止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安裝路徑假設(shè)為:/usr/local/nginx/conf/ ;以下都將以此配置為例進(jìn)行說明
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規(guī)則目錄 RulePath = "/usr/local/nginx/conf/waf/wafconf/" --修改失敗提示 html=[[{"retcode":"21000","messages":"請(qǐng)求失敗,請(qǐng)稍后再試","body":{}}]] --開啟cc攻擊,需要在nginx.conf http 段配置lua_shared_dict CCDeny="on" -- 設(shè)置cc攻擊頻率,單位為秒 (如:同一個(gè)ip請(qǐng)求同一個(gè)地址,每秒最多請(qǐng)求50次) CCrate = "50/1"4.3. 其他詳細(xì)配置說明
RulePath = "/usr/local/nginx/conf/waf/wafconf/" --規(guī)則存放目錄 attacklog = "off" --是否開啟攻擊信息記錄,需要配置logdir logdir = "/usr/local/nginx/logs/hack/" --log存儲(chǔ)目錄,該目錄需要用戶自己新建,切需要nginx用戶的可寫權(quán)限 UrlDeny="on" --是否攔截url訪問 Redirect="on" --是否攔截后重定向 CookieMatch = "on" --是否攔截cookie攻擊 postMatch = "on" --是否攔截post攻擊 whiteModule = "on" --是否開啟URL白名單 black_fileExt={"php","jsp"} --填寫不允許上傳文件后綴類型 ipWhitelist={"127.0.0.1"} --ip白名單,多個(gè)ip用逗號(hào)分隔 ipBlocklist={"1.0.0.1"} --ip黑名單,多個(gè)ip用逗號(hào)分隔 CCDeny="on" --是否開啟攔截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)自定義5 修改 waf/init.lua 文件
替換sys_html 函數(shù):
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 函數(shù):
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="請(qǐng)求拒絕,請(qǐng)稍后再試",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. 測(cè)試
curl http://17.16.200.20/test/index?id=../etc/passwd 返回:{"retcode":"21000","messages":"請(qǐng)求失敗,請(qǐng)稍后再試","body":{}} 說明生效
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/39633.html
摘要:說明防止注入,本地包含,部分溢出,測(cè)試,等攻擊防止備份之類文件泄漏防止之類壓力測(cè)試工具的攻擊屏蔽常見的掃描黑客工具,掃描器屏蔽異常的網(wǎng)絡(luò)請(qǐng)求屏蔽圖片附件類目錄執(zhí)行權(quán)限防止上傳下載使用使用安裝下載解壓后,將整放到目錄中,并命名為配置安裝路徑假 1. Ngx lua waf 說明 防止sql注入,本地包含,部分溢出,fuzzing測(cè)試,xss,SSRF等web攻擊防止svn/備份之類文件泄...
摘要:是一個(gè)基于的,提供及自定義規(guī)則的監(jiān)控和管理,如訪問統(tǒng)計(jì)流量切分重定向防火墻等功能。第三方版的已在開發(fā)中,屆時(shí)會(huì)伴隨一起發(fā)布。 Orange Orange是一個(gè)基于OpenResty的API Gateway,提供API及自定義規(guī)則的監(jiān)控和管理,如訪問統(tǒng)計(jì)、流量切分、API重定向、WEB防火墻等功能。它有以下特性: 配置項(xiàng)支持文件存儲(chǔ)和MySQL存儲(chǔ)(0.2.0版本開始將去除文件支持) ...
摘要:多返回值開始變得越來越與眾不同了允許函數(shù)返回多個(gè)結(jié)果。這種情況函數(shù)沒有足夠的返回值時(shí)也會(huì)用來補(bǔ)充。中的索引習(xí)慣以開始。 showImg(https://segmentfault.com/img/bVIcQU?w=136&h=103); 為什么值得入手? Nginx作為現(xiàn)在使用最廣泛的高性能后端服務(wù)器,Openresty為之提供了動(dòng)態(tài)預(yù)言的靈活,當(dāng)性能與靈活走在了一起,無疑對(duì)于被之前陷于...
閱讀 1728·2021-10-09 09:44
閱讀 3291·2021-09-27 13:36
閱讀 1549·2021-09-22 15:33
閱讀 1305·2021-09-22 15:23
閱讀 1192·2021-09-06 15:02
閱讀 1722·2019-08-29 16:14
閱讀 2933·2019-08-29 15:26
閱讀 2437·2019-08-28 18:08