如果日志文件没有时间戳,fail2ban如何检测入侵尝试的时间?

Modified on: Sat, 30 Jun 2018 12:00:00 +0800

我知道如何使用fail2ban以及如何配置jail,但我对它的实际工作方式并不满意。

问题是,有一个特殊的监狱选项可以激起我的好奇心:findtime

配置过滤器时,必须使用 HOST 关键字(匹配IP地址),以便fail2ban可以知道要比较的IP并在必要时禁止。好的。

但是时间没有这样的事情:fail2ban无法知道一行添加到日志文件的确切时间,因为没有TIME关键字,对吧? 实际上,它可以在任何一行上没有任何时间扫描文件,它仍然有效。

我想这意味着fail2ban会定期扫描文件:它会在内部设置扫描时间,以便通过比较自己的扫描日期来处理findtime等选项。

首先,我是对的吗?如果是这样,扫描频率是多少?如果有很多大型日志文件需要经常扫描,它不能成为瓶颈吗?

然后,如果扫描频率优于findtime选项,会发生什么?这是否意味着fail2ban适应它发现设置其最小扫描频率的最小findtime选项?

最佳答案

首先关闭。这(也许)不是答案,但可能比评论更好(并且有点长)。

时间戳

找到你的陈述:

  

实际上,它可以在任何行上无需任何时间扫描文件,它仍然有效。

与文档冲突。 工作是什么意思?

手册#filters(v 0.8)说明

  

如果你正在创建自己的failregex表达式,那么你应该知道一些事情:

  
  

      
  • [...]

  •   
  • 为了使日志行与failregex匹配,它实际上必须分为两部分:行的开头必须匹配时间戳模式或正则表达式 < / strong>,该行的其余部分必须与您的failregex匹配。 如果failregex以前导^锚定,则锚点在时间戳和插入空格之后引用该行的其余部分的开头。

    < / LI>
      
  • 当前未记录与时间戳匹配的模式或正则表达式,用户无法读取或设置。请参阅Debian bug#491253。如果您的日志具有fail2ban不期望的时间戳格式,则会出现问题,因为它将无法匹配任何行。因此,您应该针对示例日志行测试任何新的failregex,如下例所示,以确保它匹配。 如果fail2ban无法识别您的日志时间戳,那么您有两个选择:重新配置您的守护程序以使用更常见格式的时间戳记录,例如在上面的示例日志行中;或者提交一份错误报告,要求提供您的时间戳格式。

  •   

请注意,日志文件可以已配置,以包含时间戳以及时间戳的格式。 (包括评论中提到的 dmesg 。)

另请参阅此主题,特别是消息#14和#19:

两个例子:

请注意,您还可以使用以下命令进行测试:

fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf

1没有时间戳:

$ fail2ban-regex ' [1.2.3.4] authentication failed' '\[<HOST>\] authentication failed'

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

Use   failregex line : \[<HOST>\] authentication failed
Use      single line :  [1.2.3.4] authentication failed


Results
=======

Failregex: 0 total

Ignoreregex: 0 total

Date template hits:

Lines: 1 lines, 0 ignored, 0 matched, 1 missed
|- Missed line(s):
|   [1.2.3.4] authentication failed
`-

2带时间戳:

$ fail2ban-regex 'Jul 18 12:13:01 [1.2.3.4] authentication failed' '\[<HOST>\] authentication failed'

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

Use   failregex line : \[<HOST>\] authentication failed
Use      single line : Jul 18 12:13:01 [1.2.3.4] authentication failed


Results
=======

Failregex: 1 total
|-  #) [# of hits] regular expression
|   1) [1] \[<HOST>\] authentication failed
`-

Ignoreregex: 0 total

Date template hits:
|- [# of hits] date format
|  [1] MONTH Day Hour:Minute:Second
`-

Lines: 1 lines, 0 ignored, 1 matched, 0 missed

扫描时间

手动#反应时间

  

评估反应时间非常困难。在检查要扫描的新日志之前,Fail2ban会等待 1秒。在大多数情况下这应该没问题。但是,可能会获得比maxretry指定的更多登录失败。

在这方面也看到了这个主题:Re:Bug#481265:fail2ban:民意调查间隔不可配置

但是根据可选但推荐的软件,人们可以找到Gamin。

  

Gamin是一个文件更改监视器。 Gamin从“启用内核”的内核中获益匪浅。因此,不再需要主动轮询来获取文件修改。

如果安装了Gamin并且backend中的jail.conf设置为 auto (或 gamin ) - 将使用Gamin。

作者:,user367890

相关问答

添加新评论