Linux

如何在短時間內自動和臨時阻止在伺服器上點擊過多的 IP 地址?

  • April 11, 2018

我的一台 LAMP 伺服器最近被某種尋找漏洞的腳本機器人關閉。從外觀上看,它每秒發出如此多的請求,以至於伺服器上的 RAM 超載並導致我的整個站點癱瘓了一個小時。那個“攻擊”都來自一個IP地址。

那麼如何在短時間內自動和臨時阻止在我的 LAMP 伺服器上點擊過多的 IP 地址呢?什麼是這項工作的最佳工具,我應該在作業系統級別還是通過 PHP 解決這個問題?

失敗2禁令。Linux 平台上此問題的黃金標準/預設解決方案。

您應該避免嘗試使用 PHP 執行此操作。當 PHP 介入時,已經太晚了——記憶體已經被分配了。

您可以在任何層禁止 IP 地址,但使用最少資源的最低層是您要採用的路由。這通常是防火牆。至少,iptables(linux 防火牆)是您想要使用的。其他人已經提到了一些工具,例如 Fail2Ban,可以為您自動執行此操作。外部防火牆會更好。

除了嘗試禁止違規 IP 地址之外,您還應該嘗試更好地利用您的資源。如果請求佔用的資源較少,則攻擊需要更長的時間才能生效。

Apache 也使用大量記憶體。如果您使用的是 mod_php,情況會更糟,因為 PHP 是在每個 Apache 子程序中載入的。這意味著即使是對靜態內容(css/js/images)的請求也在載入 PHP,即使沒有使用 PHP。您可以改用 FastCGI 來解決此問題。mod_fcgid 是一個不錯的選擇。

還有其他資源效率更高的 Web 伺服器。Nginx 是我的最愛。還有Lighttpd。很多人喜歡 Litespeed(替代 Apache)。

如果您想堅持使用 Apache,請考慮盡可能對其進行調整。考慮禁用 .htaccess。這是一個很好的解釋為什麼

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