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

时间:2014-10-26 01:25:59

标签: python performance cpu-usage ram fail2ban

我是fail2ban的新手,很难找到我正在考虑设置的不同配置的性能考虑因素。这是在覆盆子pi板上运行,因此性能是一个问题。

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

  1. 资源使用量相对于查找时间值的增加情况如何?我猜测非常小且非常大的值都会以不同的方式影响服务器的RAM与CPU。
  2. 同样,fail2ban监控的日志文件大小和不同日志文件的数量如何影响整体资源使用情况?
  3. 作为一个例子,这个监狱会让某人每天尝试3,600个SSH登录密码,如果他们想出了fail2ban配置并调整了他们的脚本时间以适应。

    [ssh]
    enabled  = true
    action   = iptables-allports[name=ssh]
    filter   = sshd
    logpath  = /var/log/auth.log
    maxretry = 6
    findtime = 120
    

    如果我们将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
    

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

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

1 个答案:

答案 0 :(得分:0)

只有一种方法可以找到它,测试它,没有别的。

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

作为一般规则,当您重新调整系统时,请将新值和需要重新调整的日期放入注释中。这将允许您查看是否有任何趋势。

我个人的看法是每次增加30-50%的受影响资源。如果你使用的比这个少,那么你经常冒这个风险。