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

資訊專欄INFORMATION COLUMN

【Nginx】Openresty增加waf配置

CoderDock / 3371人閱讀

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

1. Ngx lua waf 說(shuō)明

防止sql注入,本地包含,部分溢出,fuzzing測(cè)試,xss,SSRF等web攻擊
防止svn/備份之類文件泄漏
防止ApacheBench之類壓力測(cè)試工具的攻擊
屏蔽常見(jiàn)的掃描黑客工具,掃描器
屏蔽異常的網(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)行說(shuō)明

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":{}}]]

--開(kāi)啟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ì)配置說(shuō)明
    RulePath = "/usr/local/nginx/conf/waf/wafconf/"
    --規(guī)則存放目錄

    attacklog = "off"
    --是否開(kāi)啟攻擊信息記錄,需要配置logdir

    logdir = "/usr/local/nginx/logs/hack/"
    --log存儲(chǔ)目錄,該目錄需要用戶自己新建,切需要nginx用戶的可寫(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ě)不允許上傳文件后綴類型

    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)自定義
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://www.test.cn/test/index?id=../etc/passwd

返回:{"retcode":"21000","messages":"請(qǐng)求失敗,請(qǐng)稍后再試","body":{}} 說(shuō)明生效

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/39526.html

相關(guān)文章

  • OpenrestyOpenresty增加waf配置

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

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

    摘要:是一個(gè)基于的,提供及自定義規(guī)則的監(jiān)控和管理,如訪問(wèn)統(tǒng)計(jì)流量切分重定向防火墻等功能。第三方版的已在開(kāi)發(fā)中,屆時(shí)會(huì)伴隨一起發(fā)布。 Orange Orange是一個(gè)基于OpenResty的API Gateway,提供API及自定義規(guī)則的監(jiān)控和管理,如訪問(wèn)統(tǒng)計(jì)、流量切分、API重定向、WEB防火墻等功能。它有以下特性: 配置項(xiàng)支持文件存儲(chǔ)和MySQL存儲(chǔ)(0.2.0版本開(kāi)始將去除文件支持) ...

    Cc_2011 評(píng)論0 收藏0
  • Nginx-架構(gòu)篇

    摘要:架構(gòu)篇一常見(jiàn)問(wèn)題相同多個(gè)虛擬主機(jī)優(yōu)先級(jí)訪問(wèn)三個(gè)配置文件配置上述相同的三個(gè)虛擬主機(jī),會(huì)先訪問(wèn),訪問(wèn)的優(yōu)先級(jí)是按照服務(wù)器的讀取順序,即文件名的排序。 Nginx-架構(gòu)篇 一、Nginx常見(jiàn)問(wèn)題 1. 相同server_name多個(gè)虛擬主機(jī)優(yōu)先級(jí)訪問(wèn) # 三個(gè)配置文件: # testserver1: server_name testserver1 www.rona1do.top; root...

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

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

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<