python - 关于日志大小、复杂性和 finditme 设置的 fail2ban 性能注意事项

标签 python performance cpu-usage ram fail2ban

我是 fail2ban 的新手,很难确定我正在考虑设置的不同配置的性能注意事项。这是在树莓派板上运行的,因此性能是一个问题。

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

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

例如,这个 jail 允许某人每天尝试 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 洪水攻击的 jail :

[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

在这里,我们有相反的情况,查找时间计数器每 10 秒重置一次。它还在监视所有 *access 日志(我再次猜测,我是新手)。这可能意味着它正在监视站点的 https 部分的 access.log、other_vhosts_access.log 和 https_access.log。如果今天很忙并且这些文件每个都是 10-20 MB 怎么办?

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

最佳答案

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

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

作为一般规则,当您重新调整系统时,请在注释中注明新值和需要重新调整的日期。这将使您能够查看是否存在任何趋势。

我个人的做法是每次将受影响的资源增加 30-50%。如果您使用的少于此数量,则您可能会冒着过于频繁地使用它的风险。

关于python - 关于日志大小、复杂性和 finditme 设置的 fail2ban 性能注意事项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26568928/

相关文章:

delphi - 如何检索每个进程的 cpu 使用情况

python - 打印 MySQLdb 运行的实际查询?

java - HashMap用作Cache时的性能问题

C# 将 byte[] 解析为十六进制字符串的不同方法的意外性能结果

Mongodb 查询所有二级文档是否有任何子文档满足条件

android - 锁定 Android 上的 CPU 以进行应用程序性能测试

c - 需要使 CPU 以 100% 运行的程序

python - windows cmd 未在命令前面显示 python virtualenvwrapper

Python Visio 转 pdf

python - 使用twistd运行高速公路应用程序