首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存消耗Fail2Ban CentOS

内存消耗Fail2Ban CentOS
EN

Unix & Linux用户
提问于 2014-11-30 12:52:57
回答 3查看 6.4K关注 0票数 6

Fail2Ban在我的系统上使用了大量内存(1.2GB)。有几篇文章描述了如何减少这一问题。下面是Debian的一个例子。

  • 将1uLimited 1命令附加到/etc/default/fail2ban文件中。
  • 将(文件)添加到最后一行: ulimit -s 256

不幸的是,CentOS 7上没有这样的文件或目录。如何在我的系统上应用这个文件或目录?

经过一些技巧之后,我的Fail2Ban系统文件是

代码语言:javascript
复制
[Unit] 
Description=Fail2ban Service 

[Service] 
Type=forking 
ExecStart=/usr/bin/fail2ban-client -x start 
ExecStop=/usr/bin/fail2ban-client stop 
ExecReload=/usr/bin/fail2ban-client reload 
PIDFile=/var/run/fail2ban/fail2ban.pid 
Restart=always 
LimitSTACK=256`

不幸的是,结果仍然是1251888 KB。

EN

回答 3

Unix & Linux用户

发布于 2014-11-30 13:10:06

如果您的机器有通常的sysvinit脚本,您可以在/etc/init.d/fail2ban中这样做(足够早,即在启动守护进程之前)。

如果您的机器使用systemd,您可以通过fail2ban.service来实现这一点。例如,而不是

代码语言:javascript
复制
ExecStart=/usr/bin/fail2ban-client -x start

代码语言:javascript
复制
ExecStart=/bin/sh -c 'ulimit -s 256; /usr/bin/fail2ban-client -x start'
票数 0
EN

Unix & Linux用户

发布于 2015-05-18 22:29:50

ulimit也会影响子进程,包括sendmail之类的通知电子邮件程序,这些程序可能无法容忍这样的堆栈大小限制。这就是exim4 sendmail的情况,它使用建议中的内存调整将分割错误,而不是像启用“惯用”监狱时那样发送电子邮件。

票数 0
EN

Unix & Linux用户

发布于 2021-04-07 09:11:32

我通常做的是在fail2ban.local中配置类似的东西

代码语言:javascript
复制
[Definition]
dbfile =
dbpurgeage = 0

这迫使fail2ban创建一个新的sqlite数据库(在内存中?)每次重新启动时,都会发生这样的情况,因为持久性数据库包含所有处理过的原始日志行,而当机器受到攻击时,这通常会爆炸,使sqlite数据库中的无用日志减少MB。

这个最初指向dbfile/var/lib/fail2ban/fail2ban.sqlite3是一个持久化的,因此重新启动fail2ban不必要地从db重新加载这数百MB的日志(没有处理),只是为了从其他表中找出几个不同的IPs - go图!

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/170671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档