Centos

使用命令 netstat 手動緩解 DDOS。如何確定真正的攻擊者?

  • September 10, 2020

當我的伺服器速度很慢時,我被告知執行此命令並檢查是否有人發出 SYN_RECV 請求以減慢我的伺服器速度:

netstat -npt  | grep SYN_RECV | awk '{print $5}' | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | cut -d: -f1 | sort | uniq -c | sort -nr | head | tee -a $REPORT_FILE 

輸出範例:

Single attack IP - DOS:
 262 187.7.214.146
 1   95.90.250.96
 1   83.215.15.150
 1   203.160.112.239
 1   124.197.39.213

Multiple attack IPs - DDOS:  
 316 187.7.214.146
 94  187.7.214.96
 44  187.7.214.150
 90  203.160.112.239
 22  203.160.112.222

我在某處讀到,如果一個IP的SYN_RECV請求數超過4個,則考慮進行SYN洪水攻擊(DOS)。我有幾個問題:

  1. 當使用這個 netstat 命令時,我們可以聲明一個 IP(DOS) 或 IPs (DDOS) 進行攻擊的確切數字是多少?如果 IP 是 SYN_RECV 狀態的連接,這是否意味著他正在進行 SYN 洪水攻擊?可以是假旗嗎?

  2. SYN_RECV 是 DDOS 攻擊者使用的唯一監聽狀態嗎?那麼 ESTABLISHED 狀態呢?我很困惑,因為其他文章說如果某些外國IP以ESTABLISHED狀態連接,那麼我的伺服器正在受到攻擊。什麼樣的攻擊

  3. 我問這個問題是因為我想製作一個簡單的 bash 腳本,它可以手動報告 IP 是否是攻擊者,並且我被告知使用 SYN_RECV 狀態來評估攻擊者。這是我們唯一可以使用的狀態嗎?可以認為是安全的 SYN_RECV 值的最小值是多少(不是 DOS 攻擊者)?

希望我的問題很清楚。請問我是否有不清楚的地方。

謝謝你,我希望有人能回答這個噩夢。

  1. 當 ip 地址(攻擊者)向您的伺服器發送大量 SYN 數據包,然後您的伺服器設置為響應每個數據包並保持埠打開(準備接收響應)時,就會發生拒絕服務。您的伺服器需要 ACK 數據包才能使用 ACK 數據包正確關閉響應,但 ACK 數據包永遠不會從攻擊者那裡到達,他會繼續發送更多的 SYN 數據包,這些數據包會在一定時間內打開更多的新埠連接並最終填滿所有降低伺服器速度的可用埠。因此,帶有 SYN_RECV 請求的 IP 意味著他正在向您的伺服器發送錯誤的數據包,所以是的,這是一個 DOS 攻擊,但是對於那個數字 4,它被認為是一個微小的 DOS 攻擊,它可能對擁有大量資源的伺服器沒有負面影響。
  2. 為此,實際上有多種類型的 DOS 或 DDOS 攻擊,SYN_FLOOD 只是流行的 SYN FLOOD 攻擊的名稱。
  3. 在生產伺服器中進行手動 DDOS 緩解並不好。您可以為此使用其他一些內置的自動化解決方案,例如Suricatacloudflare。

SYN FLOOD DDOS 攻擊 - 雲閃現

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