首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

CentOS 防禦 DDoS 攻擊實戰指南

     編輯:程式設計綜合問答

攻擊識別

  • netstat -an | grep :80 | wc -l 連接數異常暴增。
  • top 顯示 CPU/內存被佔滿,ksoftirqd 進程高。
  • 日誌出現大量同源 IP 重複請求:tail -f /var/log/nginx/access.log。

緊急封禁單 IP

# iptables 封禁
iptables -I INPUT -s 203.0.113.45 -j DROP
# 保存規則
service iptables save

自動化腳本:封禁高頻 IP

#!/bin/bash
# block_ddos.sh 每分鐘跑一次
LOG="/var/log/nginx/access.log"
THRESHOLD=200  # 每分鐘超過 200 次請求
awk '{print $1}' "$LOG" | sort | uniq -c | sort -nr |
while read count ip; do
    if [ "$count" -gt "$THRESHOLD" ]; then
        iptables -C INPUT -s "$ip" -j DROP 2>/dev/null || \
        iptables -I INPUT -s "$ip" -j DROP
        echo "$(date) Blocked $ip ($count req/min)" >> /var/log/ddos_block.log
    fi
done

系統級加固

措施命令/配置說明
啟用 SYN Cookieecho 1 > /proc/sys/net/ipv4/tcp_syncookies緩解 SYN Flood
調大連接隊列echo 65535 > /proc/sys/net/core/somaxconn防止合法連接被丟棄
限制單 IP 並發Nginx: limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn addr 50;應用層限流
部署 WAFModSecurity + OWASP CRS攔截惡意載荷
接入高防 IP / CDN阿里云/騰訊雲/Cloudflare清洗流量在進入源站前

長期策略

  • 架構無狀態化,橫向擴展前端節點。
  • 關鍵接口加驗證碼、Token 桶限流。
  • 建立流量基線,異常自動告警(Prometheus + Alertmanager)。
  • 制定應急預案:切換高防、封禁段、熔斷降級。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved