nginx防攻擊的簡單配置


主要通過兩方案來做防護,一是nginx自帶模塊限制請求連接數和並發數;二是篩選IP加入黑名單;

1、並發數和連接數控制的配置
    nginx http配置:
    #請求數量控制,每秒20個
    limit_req_zone $binary_remote_addr zone=one:10m rate=20r/s;
    #並發限制30個
    limit_conn_zone $binary_remote_addr zone=addr:10m;
    
    server塊配置
    limit_req zone=one burst=5;
    limit_conn addr 30;


2、根據nginx 訪問日志記錄發現可疑的或者不正常的訪問記錄記錄然后自動添加到nginx的黑名單
起到阻止的作用  可以作為防范少量的ddos攻擊

策略:根據nginx日志,最近5W條同一IP訪問記錄超過5000的加入黑名單禁止訪問,每兩小時執行一次

示例腳本:
#!/bin/bash
acc_log=/usr/local/nginx/logs/uatpc.access.log
blockip=/usr/local/nginx/conf/vhost/blockip.conf
#最近50000條日志,同一IP超過5000的加入黑名單
tail -n50000 ${acc_log} | awk '{print $1,$7,$9}'|grep -i -v -E "google|yahoo|baidu|msnbot|FeedSky|sogou|360|bing|soso|403|api"|awk '{print $1}'|sort|uniq -c|sort -rn | awk '{if($1>5000)print "deny "$2";"}' >> ${blockip}

#排除公司IP
sed -i '/116.228.62.38/d' ${blockip}
/usr/local/nginx/sbin/nginx -s reload


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM