Fail2Ban 的自定义过滤器

Fail2Ban 的自定义过滤器

我已经安装了 fail2ban,并尝试将其设置为阻止出现在系统日志中的某条消息中的 IP 地址。系统日志中的消息是:

racoon: ERROR: Invalid exchange type 243 from 103.14.62.181[11950]

通常每条消息都有不同的 IP 地址,括号内的数字(端口?)也不同。看来我可以通过执行以下操作来创建自定义过滤器:

racoon: ERROR: Invalid exchange type 243 from <HOST>

但我的问题是,我可以就此停下来并让 fail2ban 完成其工作吗,或者我是否需要指定如下内容:

racoon: ERROR: Invalid exchange type 243 from <HOST>[IDONTKNOWWHATGOESHERE]

如果我需要指定类似上述内容,那么括号中应显示的有效通配符是什么?有关 OpenVPN 的 fail2ban 文档(最接近的示例)显示了这一点:

http://www.fail2ban.org/wiki/index.php/OpenVPN

* <HOST>:[0-9]{4,5} Connection reset, restarting \[[0-9]{1,2}\]

看起来他们使用 [0-9]{4,5} 作为端口号的通配符。这在我的例子中有效吗?还是无效?

我的过滤器示例是否完全偏离了基础?

这里的最终目标是将任何失败并出现 243 交换错误的操作添加到 IP 表中,并带有 DROP 标志。在得到初始问题的答案后,我可能会对我的过滤器和其他问题产生更多疑问。

答案1

是的,你可以停在那里,fail2ban 会执行它的工作。你可以使用fail2ban-regex(1)效用。摘要如下:

fail2ban-regex [OPTIONS] <LOG> <REGEX> [IGNOREREGEX]

因此使用您已完成的工作(请注意,我必须在您提供的日志条目的开头添加日期时间,否则它会抱怨。)

fail2ban-regex "Mar  3 07:36:19 racoon: ERROR: Invalid exchange type 243 from 103.14.62.181[11950]" "racoon: ERROR: Invalid exchange type 243 from <HOST>"

Running tests
=============

Use regex line : racoon: ERROR: Invalid exchange type 243 from <HOST>
Use single line: Mar  3 07:36:19 racoon: ERROR: Invalid exchange ty...

Matched time template MONTH Day Hour:Minute:Second
Got time using template MONTH Day Hour:Minute:Second

Results
=======

Failregex: 1 total
|- #) [# of hits] regular expression
|  1) [1] racoon: ERROR: Invalid exchange type 243 from <HOST>
`-

Ignoreregex: 0 total

Summary
=======

Addresses found:
[1]
    103.14.62.181 (Mon Mar 03 07:36:19 2014)

Date template hits:
2 hit(s): MONTH Day Hour:Minute:Second

Success, the total number of match is 1

相关内容