Nginx通過ip和user_gent限制訪問

DDOS攻擊是大規模訪問站點經常會遇到的問題,它是指有人通過程序惡意刷站點的某些頁面,導致站點響應緩慢或者直接拒絕服務。

這種情況可以通過分析nginx的access日誌發現,存在大量相同ip或者user_agent的請求,我們可以根據請求的相似性,對於這些訪問的請求,直接在nginx層面上過濾掉。

通過ip限制訪問

Nginx中訪問控制模塊相關文檔

http://nginx.org/en/docs/http/ngx_http_access_module.html

訪問控制可以通過deny指令來拒絕訪問,allow指令允許訪問。

當有多個deny和allow規則時,匹配到對應的規則就跳出。

拒絕固定ip

deny 192.168.1.12;

拒絕ip網段

deny 192.168.1.0/24;

只允許內網訪問

allow 192.168.1.0/24;
deny all;

通過user_agent限制訪問

Nginx沒有專門針對user_agent的限制指令,user_agent在nginx中可以通過$http_user_agent變量訪問到,使用if指令對user_agent進行正則匹配,對於匹配到的規則,拒絕訪問即可。

nginx中對if指令介紹的比較詳細的在rewrite模塊中

http://nginx.org/en/docs/http/ngx_http_rewrite_module.html

通過user_agent限制Jmeter測試工具的訪問

if ($http_user_agent ~ "^Apache.*Java"){
    return 403;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章