Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 防禦 DDoS 攻擊實戰:DDoS Deflate 自動封鎖腳本部署與調優指南

編輯:Linux 教學

前言:軟體層面緩解 DDoS 的最後防線

面對分散式阻斷服務攻擊,硬體防火牆 (硬防) 固然最佳,但成本高昂。DDoS Deflate 這款輕量 Shell 腳本,透過 netstat/ss 監控連線數,自動呼叫 iptables 或 APF 封鎖異常 IP,是中小型 VPS/伺服器零成本的自動化緩解方案。

快速判斷是否遭受 DDoS


# 統計每 IP 連線數 (ESTABLISHED/SYN_RECV 等)
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

# 輸出範例:
#      1 192.168.1.1
#     15 203.0.113.5
#   2311 67.215.242.196  ← 異常:單 IP 兩千連線

一般單 IP 連線數 < 50 為正常;超過 150 即可疑 (視服務類型調整)。

安裝部署 (支援 CentOS/Debian/Ubuntu)


wget https://www.inetbase.com/scripts/ddos/install.sh
chmod 700 install.sh
./install.sh

安裝完成後,配置檔位於 /usr/local/ddos/ddos.conf,定時任務寫入 /etc/cron.d/ddos.cron (預設每分鐘執行)。

核心配置參數深度解析

參數預設值建議值說明
IGNORE_IP_LIST/usr/local/ddos/ignore.ip.list加入管理 IP、CDN 邊緣節點、監控伺服器 IP白名單,防止誤封
FREQ11檢查間隔 (分鐘)
NO_OF_CONNECTIONS150100-200單 IP 連線閾值,超過即封鎖
APF_BAN100=使用 iptables,1=使用 APF,建議 0
KILL111=實際封鎖,0=僅記錄 (測試用)
EMAIL_TOrootadmin@yourdomain.com封鎖通知郵箱
BAN_PERIOD6003600-86400封鎖秒數 (1小時-1天),視攻擊強度調整

配置檔範例 (生產環境建議)


# /usr/local/ddos/ddos.conf
IGNORE_IP_LIST="/usr/local/ddos/ignore.ip.list"
CRON="/etc/cron.d/ddos.cron"
FREQ=1
NO_OF_CONNECTIONS=150
APF_BAN=0
KILL=1
EMAIL_TO="security@company.com"
BAN_PERIOD=3600

# 白名單範例 /usr/local/ddos/ignore.ip.list
10.0.0.0/8
192.168.0.0/16
203.0.113.0/24  # CDN 節點

進階調優與替代方案

1. 改用 ss 替代 netstat (更快、支援更多狀態)


# 修改腳本核心檢測邏輯
# 原:netstat -ntu
# 新:ss -ntu state established '( sport = :http or sport = :https )'

2. 整合 fail2ban 統一封鎖管理


# /etc/fail2ban/jail.d/ddos.conf
[ddos]
enabled = true
filter = ddos
action = iptables-allports[name=ddos]
logpath = /var/log/ddos.log
maxretry = 150
findtime = 60
bantime = 3600

3. 現代替代方案:CrowdSec、Fail2Ban + 自定義 Filter、Cloudflare WAF (邊緣緩解)

  • CrowdSec:群眾智慧威脅情報,自動同步惡意 IP 資料庫
  • Cloudflare/Incapsula:DNS 切換即享受 L7 緩解、WAF、Bot 管理
  • Kernel 參數調優:net.ipv4.tcp_syncookies=1、net.ipv4.tcp_max_syn_backlog=8192、net.core.somaxconn=65535

驗證與測試


# 手動執行測試
/usr/local/ddos/ddos.sh --cron

# 查看封鎖規則
iptables -L -n -v | grep DROP

# 模擬攻擊 (僅限自有測試環境)
# hping3 -S -p 80 --flood target_ip
# 或使用 slowhttptest 測試 Slowloris

結語

DDoS Deflate 部署簡單、依賴少、效果立竿見影,適合缺乏硬防預算的中小型業務。但需認清其屬於「應用層緩解」,無法應對頻寬耗盡型攻擊 (Volumetric Attack)。生產環境建議採用「邊緣緩解 (CDN/WAF) + 主機層自動封鎖 (Fail2Ban/CrowdSec) + 核心參數調優」的纏繞防禦體系。

Copyright © Windows教程網 All Rights Reserved