成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【Openresty】Openresty增加waf配置

iliyaku / 2885人閱讀

摘要:說明防止注入,本地包含,部分溢出,測(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上傳

2. 下載 waf

使用git

git clone https://github.com/loveshell/...

使用wget

wget https://github.com/loveshell/...

3. 安裝
下載解壓后,將整 ngx_lua_waf 放到 nginx conf 目錄中,并命名為 waf;
4. 配置

nginx安裝路徑假設(shè)為:/usr/local/nginx/conf/ ;以下都將以此配置為例進(jìn)行說明

4.1. 在nginx.conf的http段添加
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
end
6. 啟用waf
然后重啟nginx,或reload 即可:
/user/local/nginx/sbin/nginx -s reload
7. 測(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

相關(guān)文章

  • 【Nginx】Openresty增加waf配置

    摘要:說明防止注入,本地包含,部分溢出,測(cè)試,等攻擊防止備份之類文件泄漏防止之類壓力測(cè)試工具的攻擊屏蔽常見的掃描黑客工具,掃描器屏蔽異常的網(wǎng)絡(luò)請(qǐng)求屏蔽圖片附件類目錄執(zhí)行權(quán)限防止上傳下載使用使用安裝下載解壓后,將整放到目錄中,并命名為配置安裝路徑假 1. Ngx lua waf 說明 防止sql注入,本地包含,部分溢出,fuzzing測(cè)試,xss,SSRF等web攻擊防止svn/備份之類文件泄...

    CoderDock 評(píng)論0 收藏0
  • Orange - 基于OpenResty的API Gateway

    摘要:是一個(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版本開始將去除文件支持) ...

    Cc_2011 評(píng)論0 收藏0
  • Openresty的開發(fā)閉環(huán)初探

    摘要:多返回值開始變得越來越與眾不同了允許函數(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ì)于被之前陷于...

    ruicbAndroid 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<