SEnginx安全相關模塊配置

SEnginx官方主頁http://www.senginx.org
php


http {
    #nginx原有配置

    #定義一個10MB的內存用於SEnginx訪問統計
    statistics_zone 10m; 
    #開啓全局IP黑名單
    ip_blacklist on;
    #存儲的IP數量
    ip_blacklist_size 10240;
    #IP在黑名單保留時間(秒)
    ip_blacklist_timeout 120;
    #名單保存在SEnginx內部
    ip_blacklist_mode local;
    #定義一個容量10MB的令牌空間,每一個地址每秒只能請求10次(每秒補充10個令牌)
    limit_req_zone $binary_remote_addr zone=mudoom:10m rate=10r/s;
    #定義一個容量10MB的行爲識別空間,最小有效請求數量是10個,採樣週期是2秒
    ip_behavior_zone zone=brand:10m sample_base=10 sample_cycle=2s;

    #定義IP白名單
    geo $ip_wl {
        #使用以地址段的形式定義地址
        ranges;
        default 0;
        127.0.0.1-127.0.0.1 1;
    }
    #定義UA白名單,忽略經常使用網絡爬蟲
    whitelist_ua $ua_wl {
        #忽略大小寫
        caseless;
        "Baiduspider" ".*\.baidu\.com";
        "Baidu-YunGuanCe-SLABot" ".*\.baidu\.com";
        "Googlebot" ".*\.google\.com";
        "360Spider" ".*\.360\.cn";
        "360JK" ".*\.360\.cn";
        "Sosospider" ".*\.soso\.com";
        "Sogou web spider" ".*\.sogou\.com";
        "bingbot" ".*\.bing\.com";
    }
    server{
        #原有server配置

        #定義一個虛擬server名,用於SEnginx訪問統計顯示
        virtual_server_name www.mudoom.com;
        #在當前server上開啓ip識別空間brand並進行敏感url訪問行爲識別。
        ip_behavior zone=brand type=sensitive_url;

        #開啓機器人挑戰
        location @process {            #將全局IP白名單和User-Agent白名單做爲機器人挑戰白名單
            robot_mitigation_global_whitelist ua_var_name=ua_wl ip_var_name=ip_wl ip_var_value=1;
            #開啓Robot Mitigation模塊(機器人緩解)
            robot_mitigation on;
            #機器人挑戰模式(JS)
            robot_mitigation_mode js;
            #黑名單失敗次數上限
            robot_mitigation_blacklist 50;
            #挑戰成功後的有效時間(秒)
            robot_mitigation_timeout 600;
            #關閉挑戰ajax類型的請求
            robot_mitigation_challenge_ajax off;
            
            #php-fpm等原有配置
            fastcgi_pass 127.0.0.1:9000;
            ...
        }
        #請求可查看當前黑名單,安全起見需限定爲內部訪問
        location /blacklist_show {            allow 127.0.0.1;
            deny all;
            ip_blacklist_show;
        }

        #請求可清空黑名單列表,安全起見需限定爲內部訪問
        location /blacklist_flush {
            allow 127.0.0.1;
            deny all;
            ip_blacklist_flush;
        }        #請求可顯示SEnginx訪問統計,安全起見需限定爲內部訪問 
        location /stats {
            allow 127.0.0.1;
            deny all;
            statistics;
        }        #用於阻斷的location
        location /RequestDenied {
	    return 403;
        }

        #使用安全模塊控制的location配置
        location /mudoom {
            #敏感資源標識
            ip_behavior_sensitive;
            #原有令牌100枚,超出則觸發機器人挑戰
            limit_req zone=mudoom burst=100 forbid_action=@process condition=$cond;
            #當請求非敏感資源的佔比小於30%時觸發機器人挑戰
            ifall ($insensitive_percent >= 0) ($insensitive_percent < 30) {
                set $cond 1;
            }

            #將全局IP白名單和User-Agent白名單做爲cookie防篡改白名單 
            cookie_poisoning_whitelist ua_var_name=ua_wl ip_var_name=ip_wl ip_var_value=1;
            #cookie防篡改功能
            cookie_poisoning off;
            #指定發現cookie被篡改時執行的動做 block阻斷、pass放行 、remove刪除被篡改的cookie值 
            cookie_poisoning_action block;
            #阻斷超過5次後加入黑名單
            cookie_poisoning_action blacklist,5;            #發現攻擊時,是否向error log中寫入log
            cookie_poisoning_log on;
 
            #將全局IP白名單和User-Agent白名單做爲Naxsi白名單 
            naxsi_whitelist ua_var_name=ua_wl ip_var_name=ip_wl ip_var_value=1;
            #啓動學習模塊
	    LearningMode;
            #安全規則激活
            #SecRulesEnabled;
            #安全規則規避
	    #SecRulesDisabled;
	    #安全規則觸發行爲 
	    DeniedUrl "/RequestDenied";            #安全規則
	    CheckRule "$XSS >= 4" BLOCK;
	    CheckRule "$TRAVERSAL >= 4" BLOCK;
	    CheckRule "$EVADE >= 8" BLOCK;
	    CheckRule "$UPLOAD >= 8" BLOCK;
	    CheckRule "$RFI >= 8" BLOCK;
	    CheckRule "$SQL >= 8" BLOCK;

            #php-fpm等原有配置
            fastcgi_pass 127.0.0.1:9000;
            ...
        }
    }
}

SEnginx訪問統計返回部分變量說明:html

變量nginx

說明web

trafficajax

訪問量統計sql

cur_req安全

當前請求數cookie

req網絡

總相應請求數less

res_2xx

2xx請求數

res_3xx

3xx請求數

res_4xx

4xx請求數

res_5xx

5xx請求數

sent

發送數據量

recvd

接受數據量

attack

攻擊統計

sql

SQL注入

xss

XSS

rfi

遠程文件包含

dt

目錄穿透

evade

Evading tricks

fu

文件上傳

cp

cookie篡改

wd

網頁篡改

rm

機器人挑戰

other

其餘


注意:SEnginx訪問統計保存在內存中,故每次nginx關閉後統計清零

源地址:https://www.mudoom.com/Article/show/classify_id/1/id/32.html  By佐柱

轉載請註明出處,也歡迎偶爾逛逛個人小站,謝謝 :)

相關文章
相關標籤/搜索