如何在惡意 CC 攻擊期間限制單一 IP 的並發連線數

限制每個 IP 的並發連線數,是防禦惡意 CC 攻擊、保護香港伺服器的關鍵。透過設定合理的並發連線上限,你可以在不影響正常使用者的前提下,阻斷可疑行為。多數瀏覽器通常同時開啟的連線數不超過 6 個。下表給出了建議的連線限制數值:
| 說明 | 數值 |
|---|---|
| 總並發半開連線上限 | 1000 |
| 單一客戶端上限 | 50 |
持續監控這些限制,有助於確保你的網站保持穩定且回應迅速。
要點速覽
- 限制每個 IP 的並發連線數,以保護伺服器免受 CC 攻擊。在正常瀏覽器使用之上設定門檻,在攔截攻擊者的同時,保障真實使用者的存取體驗。
- 定期監控流量模式。特別留意單一 IP 連線數的異常暴增,以便及早辨識潛在攻擊。
- 透過 Nginx 或 Apache 等伺服器設定來實施連線限制。啟用相關模組,協助追蹤並阻擋來自惡意使用者的過量請求。
- 依不同使用者群組調整連線限制。受信任使用者的上限可以高於一般訪客,以確保存取順暢。
- 記錄被拒絕的連線嘗試,用於分析攻擊模式。運用這些資料微調安全策略,提升防護效果。
理解 CC 攻擊
什麼是 CC 攻擊?
CC 攻擊(Challenge Collapsar 攻擊)會在短時間內向你的伺服器發送大量 HTTP 請求。攻擊者使用自動化工具或殭屍網路,向你的网站注入洪水般的流量,導致網站變慢甚至當機。你可能會發現伺服器沒有回應、網頁載入極度緩慢。攻擊者往往會使用大量不同的 IP 位址,有時也會集中從單一 IP 發起大量請求。
你需要及早識別 CC 攻擊的徵兆。留意流量的突然飆升,或來自某個單一 IP 的連線數異常增加。這類攻擊會損害你網站的聲譽,並為業務帶來實際損失。
為什麼限制並發連線有效?
當你對每個 IP 的並發連線數設限時,就能控制單一使用者在同一時間內可發起的請求數量。如此一來,可以阻止攻擊者透過大量連線壓垮伺服器。大多數真實使用者(例如瀏覽器使用者),同時只會開啟少量連線,而攻擊者則會嘗試同時開啟數十甚至上百個連線。
提示:將連線上限設定在略高於正常瀏覽器使用的水準(例如大於 6 條連線),可以在不影響正常存取的情況下,有效攔截攻擊者。
下表說明這一策略為何有效:
| 說明 | 解釋 |
|---|---|
| 限制並發連線 | 透過控制每個 IP 位址的同時連線數,協助緩解 DoS 與 DDoS 攻擊。 |
| 對合法使用者的影響 | 確保在阻斷惡意請求的同時,合法使用者仍能正常存取服務。 |
透過採用限制並發連線的策略,你可以防止伺服器過載,同時也能確保真實訪客始終能夠連上你的网站。
限制並發連線:伺服器設定
Nginx 的每 IP 限制
你可以使用 Nginx 為每個 IP 位址設定並發連線上限,從而阻止攻擊者一次開啟過多連線。Nginx 主要透過兩個指令來實現這項功能:
limit_conn_zone:建立共享記憶體區域,用於依 IP 追蹤連線數。limit_conn:在 server 或 location 區塊實際套用連線限制。
範例設定如下:
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
location / {
limit_conn addr 10;
}
}
}
此範例允許每個 IP 最多同時擁有 10 個並發連線。你應將該值設定在高於正常瀏覽器使用的水準。多數瀏覽器使用 6 條連線,因此 10 條足以保障真實使用者的空間。如果你發現攻擊者仍能穿透,可以適度下調上限。
提示:在設定這些限制後,請密切監控日誌。如果發現過多合法使用者被攔截,應及時調整參數。
Apache 的每 IP 限制
Apache 提供多種方式來限制並發連線。你可以使用 mod_evasive、mod_reqtimeout 等模組來保護伺服器。
| 功能 | 說明 |
|---|---|
| 連線限制 | 對資源使用施加規則,包括每個 IP 的最大連線數。 |
| 客戶端層級追蹤 | 依據請求模式監控並阻斷違規客戶端。 |
| 請求速率監控 | 限制請求速率和連線並發度,防止伺服器過載。 |
| 動態設定 | 透過 QS_SrvMaxConn、QS_ClientEntries 等指令實現彈性調整。 |
| 效能最佳化 | 在 Apache 2.4 搭配 worker MPM 時表現最佳,可高效處理大量請求。 |
你可以在設定檔中加入這些模組並設置限制。例如,使用 mod_evasive 時:
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 20
DOSBlockingPeriod 10
</IfModule>
此設定會阻斷在短時間內發起過多請求的 IP。你也可以使用 mod_reqtimeout 限制連線保持開啟的時間。兩者搭配,可以有效限制並發連線並降低 CC 攻擊風險。
mod_reqtimeout限制連線的最低傳輸速度。mod_evasive限制單一 IP 的連線數量。- 兩者皆有助於防禦如 Slowloris 等攻擊。
注意:務必將限制設定在高於正常使用者活動水準的範圍內。可以先從每 IP 10–20 條連線起步,再依實際情況調整。
Squid 代理的限制
若你使用 Squid 作為代理伺服器,可以控制每個客戶端 IP 的最大並發連線數。Squid 透過存取控制列表(ACL)與特定參數來達成這一目標。
| 參數 | 說明 |
|---|---|
| client_db | 必須啟用,maxconn 類型 ACL 才能生效。 |
| maxconn ACL | 限制每個客戶端 IP 可擁有的同時連線數。 |
| http_access | 拒絕超出連線上限的客戶端請求。 |
範例設定:
acl maxcon_clients maxconn 10
http_access deny maxcon_clients
此設定會拒絕任何並發連線數超過 10 的客戶端 IP。請確保已啟用 client_db 才能生效。同時,你也應為受信任主機建立存取控制規則,並在必要時設定使用時段,藉此在 CC 攻擊期間降低服務中斷風險。
- 依受信任 IP 或網域允許或限制存取。
- 設定代理使用時間區段,以降低尖峰時段的攻擊風險。
管理面板中的相關設定
許多管理面板允許你透過安全設定來配置連線上限。通常可在控制台的安全或網路設定中找到相關選項。
| 設定項 | 說明 |
|---|---|
| 連線硬上限 | 設定來自單一 IP 的最大並發連線數。 |
| 建議連線數 | 建議為每個 IP 允許 4–10 條連線,以符合典型瀏覽器行為。 |
請將連線硬上限設定在正常瀏覽器使用之上。多數使用者需要 4–10 條連線,這一範圍既能攔截攻擊者,又能確保一般訪客有良好體驗。有些面板還提供類似「Network Quota(網路額度)」的功能,你可以運用它進一步控管資源使用,保護伺服器安全。
提示:請參閱你所使用面板的官方文件了解具體操作步驟。不同服務供應商可能採用不同術語與設定項。
透過這些伺服器設定選項,你可以有效限制並發連線並防禦 CC 攻擊。務必持續監控流量,並依情況調整設定,以維持網站安全且高可用。
設定與調整連線上限
啟用所需功能
在限制並發連線之前,你需要先啟用相應模組與系統設定。不同的伺服器環境各有需求,可以參考以下步驟為系統做好準備:
- 在 Web 伺服器外掛設定中配置 MaxConnections 參數,用於控制每個子行程可處理的連線數。
- 在應用程式伺服器中降低 TCP 監聽佇列(listen backlog),以更好地管理傳入負載,防止過載。
- 監控 MaxConnections 的使用情況。將 LogLevel 設為 “Stats”,並使用管線日誌(piped logging)過濾與連線相關的事件。
- 透過編輯
/etc/sysctl.conf檢查並設定核心的 file-max 參數,若伺服器需要處理更多連線,則提高最大開啟檔案數。 - 在
/etc/security/limits.conf中,為 Web 伺服器使用者調整行程層級的 file-max(ulimit)。 - 修改 Nginx 的 systemd 單元檔,設定 LimitNOFILE,以支援所需連線數。
- 透過
cat /proc/sys/fs/file-max檢視目前核心的 file-max 限制。 - 修改
/etc/sysctl.conf後,使用sysctl -p套用變更。
提示:調整完成後,請使用
sysctl net.ipv4.tcp_max_syn_backlog等指令進行確認,並檢查 Web 伺服器使用者的 ulimit,確保伺服器能支撐你設定的連線上限。
套用每 IP 連線限制
在啟用必要功能後,你就可以開始設定每個 IP 的連線上限。這一步有助於控制每個 IP 位址可同時建立的連線數。對於以 Linux 為基礎的伺服器,可參考以下步驟設定每 IP 限制:
- 透過
sysctl net.ipv4.tcp_max_syn_backlog檢視目前連線佇列限制。 - 在
/etc/sysctl.conf中調整net.ipv4.tcp_max_syn_backlog,提高 TCP 連線上限。 - 在
/etc/security/limits.conf中設定開啟檔案數的軟、硬限制。 - 在
/etc/sysctl.conf中修改fs.file-max,更新系統層級檔案描述元上限。 - 使用
sysctl net.ipv4.tcp_max_syn_backlog確認新設定已生效。
設定完成後,你應持續監控流量模式,特別是單一 IP 連線數的異常上升。若發現合法使用者被誤攔截,或攻擊者仍能繞過限制,應及時調整參數。多數瀏覽器會使用最多 6 條連線,因此將上限設在此數值之上,可以避免誤傷真實使用者。
注意:使用日誌與監控工具追蹤活動連線,有助於你微調設定並在異常發生時快速應對。
封鎖惡意 IP
在 CC 攻擊期間,封鎖惡意 IP 是防禦中的關鍵環節。你需要快速識別可疑行為並即時處置。可以透過請求速率與來源 IP 等指標來鎖定攻擊者。下表展示如何利用速率限制模式(rate limit mode)來封鎖惡意流量:
| 參數 | 範例數值 | 說明 |
|---|---|---|
| 速率限制模式 | Source > Per IP address | 針對特定來源限制請求。當某個 IP 位址的流量超過設定門檻時,WAF 會限制該 IP 的流量速率。 |
你應封鎖超出連線或請求上限的 IP,但同時要留意誤判。錯封合法使用者會導致警報疲勞、資源浪費,並讓資安團隊備感挫折。因此,必須定期檢視日誌,並在發現誤封時儘速解除。
警示:誤判會造成資源浪費與使用者不滿。請持續監控封鎖紀錄,並依情況優化判斷條件,避免不必要的中斷。
為不同使用者群組調整限制
不同使用者群組可能需要不同的連線上限。例如,受信任合作夥伴或內部使用者通常比一般公開訪客需要更高的限制。你可以透過存取控制列表或使用者設定檔,為不同群組制定專屬上限。
- 為受信任的 IP 或網域指派更高的連線上限。
- 對匿名或公共使用者設定較低限制。
- 依據實際流量模式監控使用情況,並據此動態調整上限。
你應定期檢視這些設定,關注使用者行為變化與新的攻擊手法,並相應更新策略,確保網站同時兼顧安全與易用性。
提示:務必在安全性與可用性之間取得平衡。限制並發連線以攔阻攻擊者的同時,也要為真實使用者保留足夠的存取空間。
透過遵循上述步驟,你可以更有效地設定與調整連線上限,在防禦 CC 攻擊的同時,讓網站持續對所有使用者保持良好回應。
監控與優化
監控活動連線
你需要持續關注活動連線數,以便及時發現異常高峰或可疑模式。即時監控有助於你迅速回應威脅,並依需求調整連線上限。以下工具可協助你依 IP 監控活動連線:
- Nagios Network Analyzer:提供即時更新與封包分析能力,可檢視流量路徑並擷取封包進行深入檢查。
- Zabbix Network Monitoring:蒐集網路指標並支援 SNMP,在偵測到異常時觸發警報。
- SolarWinds Network Performance Monitor:提供端到端可視性與自動裝置探索功能,並根據效能趨勢發送智慧警報。
- PRTG Network Monitor:監控裝置、頻寬與應用程式,可為不同連線門檻設定自訂警報。
提示:運用這些工具,為單一 IP 連線數的突增設定警報,有助於你在攻擊早期就將其攔截。
記錄被拒絕的嘗試
務必記錄所有被拒絕的連線嘗試。這些日誌有助於你了解攻擊模式,識別試圖超出限制的 IP。定期檢視日誌,可以發現趨勢與重複的攻擊來源。許多監控工具支援依 IP 或時間區段篩選日誌,讓你更容易鎖定可疑活動。
- 安全儲存日誌,避免遭攻擊者篡改。
- 為來自同一 IP 的重複拒絕嘗試設定自動警報。
- 運用日誌資料更新防火牆或封鎖清單。
注意:持續檢視日誌有助於你不斷微調設定,長期而言可大幅提升整體防禦能力。
選擇安全的限制數值
合適的連線限制數值取決於你的伺服器類型。提供圖片或 HTML 檔案這類靜態內容的伺服器,通常可以設定較低連線上限,因為回應速度快、單一連線資源占用少。而 Payara 等動態應用程式伺服器會處理更複雜的工作與資料庫操作,這類伺服器可以支援較高的連線上限,因其設計目標就是管理更多資源。
- 靜態內容伺服器通常採用較低的並發上限,以防止過載。
- 動態應用程式伺服器因架構設計,可承載更多連線。
- 依伺服器負載調整 MaxConnections 與 ThreadsPerChild 等設定。
警示:務必在正常流量條件下測試你的連線限制。依真實使用者行為與伺服器效能,適時調高或調低門檻。
當你為每個 IP 限制並發連線數時,就為網站建立了一道重要防線,有助於抵禦 CC 攻擊,保持伺服器穩定運行,讓真實使用者順利存取。透過定期監控與調校,你可以發現新的威脅並及時調整策略,持續提升整體安全性。請經常檢查安全設定,保持前瞻性思維,以確保網站長期安全、快速且可靠。
常見問題
如何判斷伺服器是否正遭受 CC 攻擊?
你可能會發現網站載入緩慢甚至完全沒有回應。此時應檢查伺服器日誌,查看是否存在來自同一 IP 的大量請求,並使用監控工具辨識流量的突然暴增。
每個 IP 的安全並發連線上限是多少?
請將上限設定在高於正常瀏覽器使用水準的數值。多數瀏覽器會開啟最多 6 條連線,建議從每 IP 10 條連線作為起點,再依網站實際流量情況進行調整。
限制連線會不會阻擋真實使用者?
若限制設定得過低,確實可能誤傷部分真實使用者。因此,一定要持續監控日誌並適時調整參數。可以先設定稍高一些的上限,如出現攻擊跡象再逐步下調。
我可以用防火牆來協助限制連線嗎?
可以。防火牆可以封鎖超出設定限制的 IP。你可以使用 iptables 等工具,或選擇雲端防火牆服務。將防火牆策略與伺服器自身設定結合使用,可以獲得更強的整體防護效果。
