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)
| 归档时间: |
|
| 查看次数: |
12704 次 |
| 最近记录: |