Iptables

如何調整 Linux 核心以抵禦 DDoS?(HAProxy)

  • October 20, 2012

請不要回复“這不可能”,因為這是浪費時間。我正在開發雲設備,我有正當理由保護這一層免受 DDoS 攻擊,而且很少有公司這樣做,所以請不要告訴我我沒有意義,因為很多公司都想購買這個解決方案而我沒有查看使用股票 Linux 實現它的問題

由於缺乏 CPU 和 RAM 等資源,我的 Linux 核心在 10.000 個連接上出現 oops 崩潰。我想知道當有人試圖從各種主機打開 100.000 個連接時,如何安全地限制它不會在 netfilter 連接跟踪表或其他地方創建 tcp/ip 連接?

網卡是 1GBps 並且具有最大的緩衝區,它可能需要很多連接但是我希望它同時只有 5.000,其餘的被丟棄,除非有空閒的連接插槽。在核心級別,因此它不會污染 netfilter 或任何東西,並且它會盡快被丟棄。有這些因素:

  • HAProxy 連接數僅限於 5.000
  • Linux 因 10.000 個打開的連接而崩潰
  • 我想每分鐘承受 100.000 個打開的連接,所以也許 netfilter 可以處理它,但沒有 HAProxy。
  • 現有連接繼續執行

這是為了讓機器在不產生 oops 的情況下抵禦 DDoS 攻擊,並且一旦攻擊發生,服務就會自動恢復到它繼續以低速率正常服務的方式。

這是關於伺服器實例的物理層,而不是交換機。假設交換機將這麼多的流量傳遞給我,我可以處理,上游提供商並不總是有可能調整或保護它。

我不同意你無能為力。你可以做很多事情,根據攻擊的規模和你擁有的硬體的規模,你有很好的機會保護自己。

對於 SYN 氾濫Google一點。您可能想要一個全新的 Linux 核心,因為最近有很多改進。選擇 3.6 並啟用同步 cookie。您可以調整其他幾個可調參數。確保首先閱讀它,因為隨機調整的東西從來都不是一個好主意,並且會導致問題。

如果是 HTTP 泛洪,現在很常見,您可能需要考慮 Varnish。您可能能夠通過某種圖形辨識攻擊請求並在 vcl_recv 中將其殺死。您可以部署屏蔽模組以終止這些連接,因為提供錯誤頁面是一種浪費。請注意:這不是一個快速解決方案,需要您付出大量努力。

祝你好運。

引用自:https://serverfault.com/questions/417969