配置 mod_evasive 以防止 CentOS 上的 DoS 和 DDoS 攻擊

在本文中,我們將學習如何安裝和配置 mod_evasive 以防止 CentOS 上的 DoS 和 DDoS 攻擊。

在這個演示中,我們使用了 CentOS 7 64 位專用服務器。

讓我們開始吧。

mod_evasive Apache 模塊。它有助於維持對 Apache 網絡服務器的分佈式拒絕服務(DoS 和 DDoS)攻擊和蠻力攻擊。mod_evasive 通過監控傳入請求並通過電子郵件和系統日誌工具報告濫用來運行。它旨在成為一種檢測和網絡管理工具,可快速配置為與 ipchains、防火牆、路由器等進行通信。

mod_evasive 監視可疑請求並拒絕來自以下任何一個的任何單個 IP 地址:

  • 每秒多次請求同一頁面
  • 每秒對同一個子進程發出 50 多個並發請求
  • 在暫時列入黑名單時提出任何請求

先決條件

  • CentOS 7 64 位專用服務器或云服務器(也適用於 CentOS 6)
  • Apache Webserver LAMP(Linux、Apache、MySQL、PHP)已安裝和配置
  • 郵件服務器

1. 保持服務器更新:

# yum update -y

2. 安裝 EPEL(企業 Linux 的額外包):

# yum install epel-release -y

3. 安裝mod_evasive 的先決條件

# yum install httpd-devel

4. 安裝 mod_evasive:

# yum install mod_evasive -y

現在,安裝了mod_evasive

5. 將 mod_evasive 配置添加到您的 Apache 配置文件中:

默認情況下,LoadModule行將添加到配置文件mod_evasive.conf 中。打開文件並添加以下行(如果尚不存在)。

# vi /etc/httpd/conf.d/mod_evasive.conf

LoadModule evasive20_module modules/mod_evasive24.so

打開配置文件mod_evasive.conf並檢查以下條目。

DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 60
DOSEmailNotify

您可以根據需要配置上述條目。將DOSEmailNotify修改為您的電子郵件 ID。

要將 IP 地址列入白名單,請在配置文件中添加以下行:

DOSWhitelist 127.0.0.1

DOSWhitelist 127.0.0.*

您也可以添加多個 IP 地址。

還有一項需要更改DOSLogDir。默認情況下,它引用/tmp以獲得鎖定機制。

/var/log/ 中創建新目錄:

# mkdir /var/log/mod_evasive

將所有權設置為 apache 用戶:

# chown -R apache:apache /var/log/mod_evasive

現在,在 mod_evasive 配置中編輯以下行並修改目錄路徑:

DOSLogDir  /var/log/mod_evasive

保存並退出 mod_evasive 配置文件。

接下來,重新啟動 Apache:

# systemctl restart httpd.service

就是這樣,安裝並配置了 mod_evasive。

了解有關mod_evasive配置選項的更多信息
這些配置選項說明直接來自自述文件。

DOS哈希表大小

哈希表大小定義了每個子哈希表的頂級節點數。增加此數字將通過減少獲取記錄所需的迭代次數來提供更快的性能,但會為表空間消耗更多內存。如果您有一個繁忙的 Web 服務器,您應該增加此值。您指定的值將自動分層到素數列表中的下一個素數(有關使用的引物列表,請參閱 mod_evasive.c)。

DOS頁面計數

這是每個頁面間隔對同一頁面(或 URI)的請求數量的閾值。一旦超過該間隔的閾值,客戶端的 IP 地址將被添加到阻止列表中。

站點計數

這是每個站點間隔的同一偵聽器上的同一客戶端對任何對象的請求總數的閾值。一旦超過該間隔的閾值,客戶端的 IP 地址將被添加到阻止列表中。

DOS頁面間隔

頁數閾值的間隔;默認為 1 秒間隔。

站點間隔

站點計數閾值的間隔;默認為 1 秒間隔。

DOS阻塞期

阻止週期是客戶端被添加到阻止列表後將被阻止的時間量(以秒為單位)。在此期間,來自客戶端的所有後續請求都將導致 403(禁止)並且計時器被重置(例如,另外 10 秒)。由於每次後續請求都會重置定時器,因此不需要很長的阻塞週期;如果發生 DoS 攻擊,此計時器將不斷重置。

劑量郵件通知

如果設置了此值,則每當 IP 地址被列入黑名單時,都會向指定的地址發送一封電子郵件。使用 /tmp 的鎖定機制可防止連續發送電子郵件。

筆記:

確保在 mod_evasive.c(或 mod_evasive20.c)中正確設置了 MAILER。默認為“/bin/mail -t %s”,其中 %s 用於表示配置中設置的目標電子郵件地址。如果您在 linux 或其他具有不同類型郵件程序的操作系統上運行,則需要更改此設置。

DOS系統命令

如果設置了此值,則每當 IP 地址被列入黑名單時,將執行指定的系統命令。這旨在啟用對 ip 過濾器或其他工具的系統調用。使用 /tmp 的鎖定機制可防止連續的系統調用。使用 %s 表示列入黑名單的 IP 的 IP 地址。

DOS日誌目錄

選擇一個備用臨時目錄
默認情況下,“/tmp”將用於鎖定機制,如果您的系統對 shell 用戶開放,這會帶來一些安全問題。如果您有非特權 shell 用戶,您需要創建一個僅對 Apache 運行的用戶(通常是 root)可寫的目錄,然後在您的 httpd.conf 中進行設置。

在本文中,我們介紹了我們的支持工程師如何安裝和配置 mod_evasive 以防止 CentOS 上的 DoS 和 DDoS 攻擊。


如何在 WordPress 5.0 中禁用塊編輯器並安裝經典編輯器

如何在 WordPress 5.0 中禁用塊編輯器並安裝經典編輯器

從 WordPress 5.0 開始,WordPress 上的默認編輯器是新的塊編輯器。新編輯器完全不同

導入WordPress數據庫時如何修復“utf8mb4_0900_ai_ci”排序錯誤

導入WordPress數據庫時如何修復“utf8mb4_0900_ai_ci”排序錯誤

如果您將 WordPress 安裝從 MySQL 8 服務器切換到 MySQL 5.7(或更低版本),您很可能會遇到

🔧 修復:您的 PHP 安裝似乎缺少 WordPress 所需的 MySQL 擴展

🔧 修復:您的 PHP 安裝似乎缺少 WordPress 所需的 MySQL 擴展

想要運行一個自我管理的 WordPress 網站?偉大的。你會學到無數的東西。設置的關鍵部分之一

如何將經典編輯器設置為 WordPress 中的默認編輯器而不是古騰堡

如何將經典編輯器設置為 WordPress 中的默認編輯器而不是古騰堡

古騰堡編輯器很快將成為 WordPress 的默認編輯器。您可以選擇經典編輯器

如何修復 WordPress 5.0 問題

如何修復 WordPress 5.0 問題

WordPress 5.0 終於推出了,它為古騰堡帶來了全新的編輯體驗

如何在 Windows 11 中刷新文件夾項目

如何在 Windows 11 中刷新文件夾項目

由於缺少上下文菜單中的刷新選項,以下是如何在 Windows 11 上的文件資源管理器中刷新項目。

修復:更新後 WordPress 中的“編輯器遇到意外錯誤”

修復:更新後 WordPress 中的“編輯器遇到意外錯誤”

無法使用 WordPress 中的新塊編輯器撰寫新帖子?你很有可能得到“編輯

如何啟用 PHP 短標籤

如何啟用 PHP 短標籤

在本文中,我們介紹瞭如何啟用 PHP 短標籤。PHP 使用開始和結束標記解析文件,它們看起來像 . 啟用 PHP 短標籤

配置 mod_evasive 以防止 CentOS 上的 DoS 和 DDoS 攻擊

配置 mod_evasive 以防止 CentOS 上的 DoS 和 DDoS 攻擊

在本文中,我們將學習如何安裝和配置 mod_evasive 以防止 CentOS 上的 DoS 和 DDoS 攻擊。mod_evasive Apache 模塊。

如何在 CentOS 上使用 PHP-FPM 為 NGINX 安裝 PHP

如何在 CentOS 上使用 PHP-FPM 為 NGINX 安裝 PHP

如何在 CentOS 上為 NGINX 安裝 PHP 和 PHP-FPM。NGINX 網絡服務器的基本配置,用於處理 PHP 應用程序並在端口 80 上為它們提供服務。