Linux

SynFlood 攻擊:每 Mbit 每秒可能有多少數據包?

  • June 5, 2011

對於如何計算每 1 Mbit 頻寬可以發送多少 SYN 數據包的確切計算/公式,我將非常滿意:

1.) 一個 SYN 數據包 = 20 字節的大小(以字節為單位)是多少? http://de.wikipedia.org/w/index.php?title=Datei:TCP_Header.svg&filetimestamp=20070706210301 前五行是否正確,總共有 4 個字節 = 20 個字節?此外,不需要有效負載並且僅包含標頭的數據包有效,這是否正確?

2.) 除以 1Mbit / Number-of-Bytes-per-Syn 以獲得有效結果是否有效?(1000 000 /8/20 ==> 6250 SYN 每秒???)

3.) 或者是否有其他限制因素會大幅減少每 1Mbit 的 SYN 數據包數量?(因此計算出來的數字實際上要低得多。)這是什麼限制了這個數字?

4.) 是否有任何“必須知道”的工具來保護我的伺服器免受 Syn 攻擊 (linux/debian)。我已經在 iptables 中實現了一些基本的東西,但不知道這是否真的有幫助……更好地過濾“前端/網關”伺服器?什麼商業產品提供 SYN-Flood 過濾,如果你能說出一些具體的產品,我將不勝感激。

謝謝簡

  1. 您的假設是正確的,因為 SYN 數據包不必攜帶任何有效負載,並且嚴格甚至不必有任何選項,因此只有 TCP 標頭。但是數據包大小不會達到 20 字節,因為 TCP 將嵌入到 IP 數據包中,至少會增加 20 個標頭字節。任何現實世界的 SYN 都將進一步具有 MSS、時間戳值和 ECR 值集的選項,從而導致每個數據包的典型大小約為 60 字節。如果有興趣,您可以使用 tcpdump 查看流量:tcpdump -v -n -p tcp and 'tcp[13] & 2 == 2'
  2. 不完全——你必須考慮額外的協議成本(數據鏈路層的報頭大小和校驗和——例如,乙太網通常會再增加 31 個字節)
  3. SYN cookieTCP Cookie Transactions已被證明是抵禦 SYN 洪水攻擊的有效機制。如果您的客戶端不支持 TCPCT 並遭受 SYN cookie 帶來的限制,則實施SYN 速率限制只會創建另一個 DoS 攻擊向量,並且不建議這樣做。

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