如何修改我的 cgi 以最有效地響應/阻止/任何 ddos 攻擊?
我在 DDoS 下。我能做些什麼?已經解決了這種“規範問題”,但我想我在問一個可區分的變體,如下所述。但是,如果這篇文章不合適,請告知。
我受到的攻擊來自各種不斷變化的 ip;在最後幾分鐘從 66.135.63.82。所有攻擊都是針對我在我自己編寫的網站上使用的 cgi(它是 gpl’ed http://www.forkosh.com/nutshell.html但除了我之外的任何人都沒有真正感興趣(而且,顯然,黑客))。攻擊使用看起來很傻的 ?query_string 執行我的 cgi,並且我添加了一個 qvalidate() 函式,到目前為止,該函式似乎可以可靠地辨識它們。對於無效查詢,我現在 sleep(15) 然後向攻擊者發出一個 ~25MB 的頁面(只是為了表明我也很煩人:)。而且它們似乎確實在等待——而不是每秒多次攻擊,它們現在以大約 15 秒的間隔分佈。
但從長遠來看,這種半修復似乎很愚蠢,最終無效。這浪費了我很多時間,每天檢查幾次,偶爾調整程序。所以我要問的是——我可以在我的 cgi 中編碼什麼來更好地處理這些攻擊?可以說,攻擊在我手中是實時發生的。我有來自 getenv(“REMOTE_ADDR”) 的 ip。因此,此時我幾乎可以做任何我想做的事情(除了發出嗶嗶聲,這是我真正想做的,但不知道如何編碼:)。最好的事情是什麼?謝謝。
編輯- 感謝您的回复,伙計們。我應該提到我的網站位於共享主機 dreamhost.com 上,因此我無法獲得一些建議。我正在等待 isp 的回复。但由於目標是我自己的 cgi,我希望這給了我一個機會來做一些通常不可能的事情。
編輯——@HBruijn 為什麼跑題?在這篇文章的最頂部,我提供了一個指向該站點的“規範問題”的連結,也是關於這個相同主題的。然後我繼續解釋為什麼我認為我在問那個(顯然是主題)問題的“可區分的變體”。此外,我最初發布了https://softwareengineering.stackexchange.com/questions/316052/how-to-best-deal-with-ddos-attack-against-your-my-site,他們告訴我在這裡發布。去搞清楚:)
我會首先使用fail2ban 來查看Web 伺服器日誌,並且只要它看到一個狡猾的命中,防火牆就會在接下來的一個小時內使用IP 或類似的東西。但是,這依賴於對您的伺服器具有 root 訪問權限來操作防火牆。
Cloudflare 等第三方服務可以在流量到達您之前對其進行清理。他們的服務範圍從免費到昂貴。查看選項,看看是否有任何有用的東西適合您的預算。
您可能還想與您的託管服務提供商交談,如果您不這樣做,他們可能對您的伺服器具有 root 訪問權限,並且可能有一系列其他 ddos 緩解選項,通過執行伺服器和網路,我們通過訂閱第三方ddos 服務如 cloudflare。
不要打擾你的程式碼。它比他們更傷害你(如果他們並行發出請求,你會更快地耗盡記憶體)。盡可能快地丟棄不良連接。