fail2ban 区分相同 IP 的结果

fail2ban 区分相同 IP 的结果

我需要实施 fail2ban 来保护服务器。我想扫描日志并禁止生成大量 404 消息的主机。

我遇到的问题是,某个 NAT 的 IP 后面可能有许多客户端,我需要区分它们。每个客户端都以以下格式请求不同的 URL:

https://server.example.com/path/<uniqueid>/<mac_address>

我想运行 fail2ban,这样它会考虑正则表达式中的唯一 ID,而不仅仅是查看每个 IP 的 404 错误的数量。

我已经开发了以下正则表达式,它似乎可以捕获所需的事件:

(?P<host>(\d{1,3}.){4})\ -\ -\ \[\d{1,2}\/\w+\/\d{4}[\:\d{2}]+\ \+\d{4}\] "GET \/path\/(?P<unique_id>.+)\/.+HTTP\/\d.\d" ".+" ".+" 404.+

这应该匹配:

1.1.1.11 - - [29/Aug/2018:01:27:45 +0100] "GET /path/3B44444444483/ddddee37D4.cfg HTTP/1.1" "somestring" "otherstring" 404 - 2005 5 0.117

这应该匹配,但被视为与上面的不同实例:

1.1.1.11 - - [29/Aug/2018:01:27:45 +0100] "GET /path/3B46666444483/ddddee37D4.cfg HTTP/1.1" "somestring" "otherstring" 404 - 2005 5 0.117

答案1

使用此配置,您的服务器将消耗更多的 CPU 来在日志中查找 404 响应,而没有为 X IP 提供 404 响应的任何安全优势或 CPU 优势。

如果您不喜欢看到这些回复,请不要为它们创建日志条目。

相关内容