web-dev-qa-db-ja.com

メモリ消費Fail2Ban CentOS

Fail2Banがシステムで大量のメモリ(1.2 GB)を使用しています。それを減らす方法を説明するいくつかの記事があります。以下はDebianの例です。

  • 1ulimit1コマンドを/etc/default/fail2banファイルに追加します。
  • 最後の行に(ファイルに)追加します。

    ulimit -s 256
    

残念ながら、CentOS 7にはそのようなファイルやディレクトリはありません。これを私のシステムに適用する方法は?


いくつかのヒントの後、Fail2BanのSystemdファイルは

[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です。

6
Il Quadrifoglio

解決策は、/ etc/init.d/fail2banを編集することでした。

これは開始スクリプトです:

start() {
echo -n $"Starting fail2ban: "
ulimit -s 256
${FAIL2BAN} -x start > /dev/null
RETVAL=$?
if [ $RETVAL = 0 ]; then
touch ${lockfile}
echo_success
else
echo_failure
fi
echo
return $RETVAL
}

残念ながら、50MBしか節約できません

0
Il Quadrifoglio

ulimitは、このようなスタックサイズの制限を許容しない可能性のあるsendmailなどの通知メールプログラムを含む、子プロセスにも影響します。このis exim4 sendmailの場合、提案されたメモリを使用して、「recidive」jailが有効になっている場合のように、電子メールで送信する代わりにTweakがsegfaultします。

0
raf

マシンに通常の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'
0
vinc17