Apache-2.2

如何使用 mod_security 刪除所有請求

  • July 5, 2017

我有一個啟用了多個站點的 apache2 伺服器,包括預設站點(000default)。預設伺服器正在擷取大量垃圾郵件請求,這些請求除了消耗頻寬並填滿日誌文件之外什麼都不做。

什麼是最小的虛擬主機配置,它會丟棄所有命中預設站點的請求?

到目前為止,這是我使用 mod_security 所做的,但它似乎什麼也沒做,只是對所有請求響應 403:

<VirtualHost *:80>
   ServerName default.only
   SecRuleEngine On
   SecAction "drop,phase:1"
</VirtualHost>

mod_security操作deny將產生 403 響應,同時drop將立即關閉連接。 從手冊

降低

**描述:**立即發起“連接關閉”動作,通過發送一個FIN包來斷開TCP連接。

**行動組:**破壞性

**範例:**以下範例啟動 IP 收集以跟踪基本身份驗證嘗試。如果客戶端在 2 分鐘內超過 25 次嘗試的門檻值,它將丟棄後續連接。

SecAction initcol:ip=%{REMOTE_ADDR},nolog
SecRule ARGS:login "!^$" \
   nolog,phase:1,setvar:ip.auth_attempt=+1,deprecatevar:ip.auth_attempt=20/120
SecRule IP:AUTH_ATTEMPT "@gt 25" \
   log,drop,phase:1,msg:'Possible Brute Force Attack"

筆記

此操作在響應蠻力和拒絕服務攻擊時非常有用,因為在這兩種情況下,您都希望最小化網路頻寬和返回給客戶端的數據。此操作導致日誌中出現錯誤消息“(9)Bad file descriptor: core_output_filter: writing data to the network”

Apache 必須以某種方式處理請求,它不能忽略它們。響應與403 Forbidden您盡可能接近。

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