如何使用 mod_security 删除所有请求

izb*_*izb 3 security web-server mod-security apache-2.2

我有一个 apache2 服务器,上面启用了多个站点,包括默认站点 (000default)。默认服务器正在捕获大量垃圾邮件请求,这些请求只会消耗带宽并填满日志文件。

什么是最小的虚拟主机配置,它会丢弃所有访问默认站点的请求?

这是我到目前为止使用 mod_security 所做的,但它似乎除了对所有请求响应 403 之外什么都不做:

<VirtualHost *:80>
    ServerName default.only
    SecRuleEngine On
    SecAction "drop,phase:1"
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

Lad*_*ada 5

mod_security操作deny将产生 403 响应,而drop将立即关闭连接。 从手册

降低

说明:立即发起“连接关闭”动作,通过发送FIN包来断开TCP连接。

行动组:破坏性

示例:以下示例启动 IP 收集以跟踪基本身份验证尝试。如果客户端在 2 分钟内超过 25 次尝试的阈值,它将 DROP 后续连接。

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"
Run Code Online (Sandbox Code Playgroud)

笔记

在响应蛮力攻击和拒绝服务攻击时,此操作非常有用,因为在这两种情况下,您都希望最大限度地减少网络带宽和返回到客户端的数据。此操作导致日志中出现错误消息“(9)Bad file descriptor: core_output_filter:writing data to the network”