有关日志大小,复杂性和finditme设置的fail2ban性能注意事项

7 python performance ram cpu-usage fail2ban

我是fail2ban的新手,并且很难确定我正在考虑设置的不同配置的性能考虑因素.这是在覆盆子pi板上运行,所以性能是一个问题.

我能想到的明显的优化是使用高效的正则表达式,只需要最少数量的jail.我想我的具体问题是:

  1. 资源使用量如何随着查找时间值的增加而增加?我猜测非常小且非常大的值都会以不同的方式影响服务器的RAM与CPU.
  2. 同样,fail2ban监控的日志文件大小和不同日志文件的数量如何影响整体资源使用情况?

举个例子,这个监狱会让某人每天尝试3,600个SSH登录密码,如果他们弄清楚fail2ban配置并调整他们的脚本时间以适应.

[ssh]
enabled  = true
action   = iptables-allports[name=ssh]
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 6
findtime = 120
Run Code Online (Sandbox Code Playgroud)

如果我们将findtime更改为86400(1天)的不同极限,它每天只允许5次尝试,但现在它正在监视日志文件的更大部分.这对资源使用有何影响?

另一个例子,POST洪水攻击的监狱:

[apache-post-flood]
enabled  = true
action   = iptables-allports[name=apache-post-flood]
filter   = apache-post-flood
logpath  = /var/log/apache2/*access.log
maxretry = 10
findtime = 10
Run Code Online (Sandbox Code Playgroud)

在这里,我们有相反的情况,其中findtime计数器每10秒重置一次.它还监控所有*访问日志(我猜,再次,我是新手).这可能意味着它正在监视access.log,other_vhosts_access.log,以及https部分网站的https_access.log.如果这是忙碌的一天怎么样,这些文件都是10-20mb?

希望这有助于解释我的想法.在此先感谢您的帮助.

sor*_*rin 0

只有一种方法可以找出这一点,即测试它,没有其他方法。

如果需要,添加有关内存使用情况的监控,但没有公式可以告诉您需要的 CPU、IO 或内存量。

作为一般规则,当您重新调整系统时,请在注释中添加新值以及需要重新调整的日期。这将使您了解是否有任何趋势。

我个人的看法是每次增加受影响的资源 30-50%。如果您使用的次数少于此次数,则您将面临过于频繁使用的风险。