Fail2Ban在我的系统上使用了大量内存(1.2GB)。有几篇文章描述了如何减少这一问题。下面是Debian的一个例子。
/etc/default/fail2ban文件中。不幸的是,CentOS 7上没有这样的文件或目录。如何在我的系统上应用这个文件或目录?
经过一些技巧之后,我的Fail2Ban系统文件是
[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。
发布于 2014-11-30 13:10:06
如果您的机器有通常的sysvinit脚本,您可以在/etc/init.d/fail2ban中这样做(足够早,即在启动守护进程之前)。
如果您的机器使用systemd,您可以通过fail2ban.service来实现这一点。例如,而不是
ExecStart=/usr/bin/fail2ban-client -x start做
ExecStart=/bin/sh -c 'ulimit -s 256; /usr/bin/fail2ban-client -x start'发布于 2015-05-18 22:29:50
ulimit也会影响子进程,包括sendmail之类的通知电子邮件程序,这些程序可能无法容忍这样的堆栈大小限制。这就是exim4 sendmail的情况,它使用建议中的内存调整将分割错误,而不是像启用“惯用”监狱时那样发送电子邮件。
发布于 2021-04-07 09:11:32
我通常做的是在fail2ban.local中配置类似的东西
[Definition]
dbfile =
dbpurgeage = 0这迫使fail2ban创建一个新的sqlite数据库(在内存中?)每次重新启动时,都会发生这样的情况,因为持久性数据库包含所有处理过的原始日志行,而当机器受到攻击时,这通常会爆炸,使sqlite数据库中的无用日志减少MB。
这个最初指向dbfile的/var/lib/fail2ban/fail2ban.sqlite3是一个持久化的,因此重新启动fail2ban不必要地从db重新加载这数百MB的日志(没有处理),只是为了从其他表中找出几个不同的IPs - go图!
https://unix.stackexchange.com/questions/170671
复制相似问题