获取 Fail2Ban 以每 X 分钟检查一次查找时间

Dom*_*red 6 linux firewall iptables brute-force-attacks fail2ban

我已经fail2ban设置了以下设置:

bantime  = 86400
findtime  = 600
maxretry = 2
Run Code Online (Sandbox Code Playgroud)

这很棒,因为它可以阻止任何在 10 分钟内暴力破解 3 次的 IP。但是,有些 IP 每 30 分钟左右尝试一次。为了捕获这些 IP,我将设置更改为:

bantime  = 86400
findtime  = 3600
maxretry = 2
Run Code Online (Sandbox Code Playgroud)

现在,它每小时检查一次并捕获其中每 20-30 分钟尝试一次的一些 IP。但是,现在我的 VPS 没有捕获可能会在一个小时内进行高级别暴力破解的 IP。

因此,有没有办法设置findtime = 3600并且fail2ban每 10 分钟检查一次?

Ale*_*lke 14

正如迈克尔汉普顿在一些评论中提到的,反应时间fail2ban检查日志的频率,与findtime参数无关。fail2ban预计每隔一秒左右读取一次新的日志数据(这将取决于您的计算机负载,但它应该非常快,因为在大多数情况下,新的日志数据仍将在内存中,在内核缓冲区中。)

findtime=...回日志多远检查定义。根据日期介于now - findtime和之间的输入检查过滤器now。如果过滤器在该时间段 ( to )内找到maxretry或更多匹配的日志行(不计算那些也匹配 的日志),则它会发出操作。ignoreregexnow - findtimenowban

  ancient past  |     past       |       ban         |   future
----------------+--*--*-*--*---*-+-------------------+------------->
                |                |                   |
                |                |                   +--> now + bantime
                |                +--> now
                +--> now - findtime
Run Code Online (Sandbox Code Playgroud)

有一个图表显示时间线。古代过去的日志部分被忽略。now - findtime和之间的日志now,名为past 的部分,被检查是否匹配。如果匹配的数量(用星号表示)为 ,>= maxretry则禁令从 开始now。禁令持续到now + bantime。请注意,一旦 IP 被禁止,使用相同 IP 的命中不应该发生在被禁止的端口上。不过,其他端口仍然可能发生这种情况。

因此,通过增加findtime=...您不会影响反应时间,但是,您增加了 IP 被相应过滤器禁止的机会。


小智 1

您可以添加一个监狱,jail.conf每 30 分钟检查一次谁在进行暴力破解。工作配置示例是:

[ssh] # first jail: check every 10 minutes 

enabled  = true
port     = ssh
filter   = sshd
action   = %(action_)s
logpath  = /var/log/auth.log
maxretry = 3
bantime  = 600

[fail2ban-ssh] # second jail: check every hour

enabled = true
filter = fail2ban-ssh
logpath = /var/log/fail2ban.log
action = iptables-multiport
maxretry = 3
findtime = 3600    
bantime = 86400     # ban for a day
Run Code Online (Sandbox Code Playgroud)

创建一个文件fail2ban-ssh.conf并将其放入filter.d您想要的内容中,例如:

[Definition]

failregex = fail2ban.actions: WARNING \[ssh\] Unban <HOST>
Run Code Online (Sandbox Code Playgroud)