CC 攻擊 (Challenge Collapsar) 透過大量偽造合法請求耗盡伺服器資源 (CPU、連線數),導致正常服務不可用。本文對比本地防火牆 (CSF) 與 CDN 兩種防禦層級,提供 CSF 完整安裝配置步驟、關鍵防禦參數調教,並說明適用場景與侷限。
| 策略 | 優點 | 缺點 | 適用場景 |
| 本地防火牆 (CSF/iptables) | 免費、部署快、無需改 DNS | 消耗本機資源、僅能緩解小規模攻擊、大流量仍導致 CPU 滿載 | 小型站點、預算有限、攻擊頻率低 |
| CDN (Cloudflare, AWS CloudFront, 阿里雲 CDN 等) | 邊緣節點吸收流量、隱藏源站 IP、提供 WAF/速率限制、DDoS 綜合防護 | 需付費、需修改 DNS、快取策略需調教 | 中大型站點、業務關鍵、面臨持續性攻擊 |
CSF (ConfigServer Security & Firewall) 完整部署
1. 安裝相依套件
yum install -y perl-libwww-perl iptables
2. 下載安裝
wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh
3. 功能測試
perl /etc/csf/csftest.pl
# 應顯示 "RESULT: csf should function on this server"
4. 核心配置 /etc/csf/csf.conf
# 開放 TCP 入站埠 (含 SSH 非常用埠建議修改)
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,8080,8443"
# 開放 TCP 出站埠
TCP_OUT = "20,21,22,25,53,80,110,113,443,8080"
# UDP
UDP_IN = "20,21,53"
UDP_OUT = "20,21,53,113,123"
# ICMP (Ping) - 0 關閉, 1 開放
ICMP_IN = "0"
# CC 攻擊防禦核心參數
# 每 IP 連線數限制 (預設 0 關閉)
CT_LIMIT = "100"
# 連線數超過封鎖秒數 (0 永久)
CT_PERMANENT = "1"
CT_BLOCK_TIME = "1800"
# 針對特定埠的連線速率限制 (每秒請求數)
# PORTFLOOD = "80;tcp;20;5" # 80 埠 TCP 5 秒超過 20 連線則封鎖
# 登入失敗封鎖 (SSH, FTP, SMTP 等)
LF_SSHD = "5"
LF_SSHD_PERM = "1"
LF_FTPD = "10"
LF_SMTP_AUTH = "5"
# 封鎖清單自動更新 (已知惡意 IP)
LF_DSHIELD = "1"
LF_SPAMHAUS = "1"
5. 啟用 CSF
csf -e # 啟用 (預設安裝後為測試模式 -t)
csf -r # 重新載入規則
進階防禦建議
- 修改 SSH 預設埠 (22 → 非標準埠) 並同步更新
TCP_IN
- 搭配
fail2ban 分析 Nginx/Apache 存取日誌,動態封鎖高頻 IP
- 應用層限流:Nginx
limit_req_zone、limit_conn_zone
- 資料庫查詢優化、啟用快取 (Redis/Memcached) 降低動態頁面 CPU 開銷
- 重要服務部署多可用區、啟用自動擴展