如何在 fail2ban 中为特定 IP 添加监狱?

如何在 fail2ban 中为特定 IP 添加监狱?

我想添加一个特定的 IP 列表,以便在 Fail2ban 发出几个“GET”请求后收到针对这些 IP 的电子邮件。

在 apache 的访问日志中查找的模式是 ^1.2.3.4 - .*$ 但是 fail2ban-regex 失败了(我不能责怪它),因为它说:

无法删除正则表达式。索引 0 无效 ^1.2.3.4 - .*$ 中没有“主机”组

有什么办法可以在自定义过滤器/监狱中设置“HOST”变量吗?

答案1

正则表达式需要对 IP 地址进行(括号)分组,因此fail2ban 知道要禁止哪个 IP

在 failregex 的每一行中,与主机名或 IP 地址匹配的部分必须用三明治包裹起来(?P<host> ... )。这是一个特定于 Python 的正则表达式扩展,它将匹配的内容分配给名称<host><host>标签是您告诉 fail2ban 哪个主机正在连接的方式,因此它必须出现在 failregex 的每一行中。如果不是,fail2ban 将发出有关“没有‘主机’组”的错误消息。

就你的情况而言,你的正则表达式应该是

^(?P<host>1.2.3.4) - .*$

相关内容