Apache-Httpd

使用負載均衡器而不是 Apache 來限制來自特定 IP 的事務

  • February 27, 2019

我在負載均衡器後面有兩個 Apache 實例,我將請求傳輸到這些實例,具體取決於請求類型。

現在我想要的是:當我從一個 IP 地址獲得太多交易時,我想阻止該 IP 幾秒鐘,然後向客戶端發送一些您發送了太多請求的響應。

所以現在的問題是:有什麼方法可以在我的負載均衡器上處理這種情況,而不是呼叫我的實例。

我如何在 Apache 上處理這個問題?我正在使用 Apache 2.2 版。

我建議你在 Apache 中設置 mod_evasive。

來自Apache 上的 mod_evasive

mod_evasive 是 Apache 的一個規避策略模組,可在 HTTP DoS 攻擊或蠻力攻擊的情況下提供規避動作。它還被設計為檢測和網路管理工具,可以輕鬆配置為與 ipchains、防火牆、路由器等通信。mod_evasive 目前通過電子郵件和系統日誌工具報告濫用行為。

在 Debian 中安裝它:

apt-get install libapache2-mod-evasive

然後編輯 mods-available/evasive.conf。您的值可能會有所不同,具體取決於您在伺服器上擁有的虛擬主機數量。

<IfModule mod_evasive20.c>
DOSHashTableSize 2048
DOSPageCount 50                    <---- visites to site in the given time
DOSSiteCount 500                   <---- to pages
DOSPageInterval 2.0                <---- 2 seconds
DOSSiteInterval 1.0
DOSBlockingPeriod 600.0             <--- seconds
DOSLogDir /var/log/apache2/evasive
DOSWhitelist 127.0.0.1
DOSWhitelist x.x.x.*
</IfModule>

要啟用新mod_evasive配置,您必須重新啟動 Apache。

您可能還對CloudFlare或 Amazon CloudFront等商業服務感興趣。

引用自:https://unix.stackexchange.com/questions/282734