Rocky 8 沒法子直接安裝 evasive,只好找有支援的repo來安裝
dnf install https://pkgs.dyn.su/el8/base/x86_64/raven-release-1.0-3.el8.noarch.rpm # dnf --enablerepo=raven-extras install mod_evasive
安裝完後,在 /etc/httpd/conf.d 裡會多了一個設定檔 mod_evasive.conf,而在 /etc/httpd/modules 裡會有 evasive.so 這個模組。
重啟apache
systemctl restart httpd
檢查模組是否載入。
httpd -M | grep evasive
mod_evasive.conf裡參數說明。
DOSHashTableSize 3097 這個指令指明瞭雜湊表的大小,它用來追蹤基於IP地址的活動。增加這個數字將使得站點訪問歷史的查詢變得更快,但如果被設定的太大則會影響整體效能。 DOSPageCount 2 在DOSPageInterval間隔內可由一個使用者發起的針對特定的URI(例如,一個Apache 提供服務的檔案)的同一個請求的數量。 DOSSiteCount 50 類似DOSPageCount,但涉及到整個站點總共有多少的請求可以在DOSSiteInterval間隔內被發起。 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 如果一個使用者超過了DOSSPageCount的限制或者DOSSiteCount,他的源IP地址將會在DOSBlockingPeriod期間內被加入黑名單。在DOSBlockingPeriod期間,任何從這個IP地址發起的請求將會遭遇一個403禁止錯誤。
模擬測試
ab -n 1000 -c 20 https://網址