停止fail2ban停止/启动通知

如果服务器重新启动,或者即使fail2ban停止/启动,它也会发送通知。

[asterisk-iptables] enabled = true filter = asterisk action = iptables-allports[name=ASTERISK, protocol=all] sendmail-whois[name=ASTERISK, [email protected], [email protected]] logpath = /var/log/asterisk/messages maxretry = 5 bantime = 259200 

删除sendmail-whois停止它,但它也停止禁止通知,我怎样才能让它停止通知我,当进程启动/停止?

谢谢

看一下控制邮件start / stop / ban的action.d/mail.confaction.d/sendmail.conf

没有必要在任何文件中解决这个问题。 这取决于您在jail.conf的configuration。

如果您configuration了mta = sendmail ,则可以缩小文件action.d/sendmail-*

那么你必须看看你的action = %(action_*)s 。 如果你configuration

“action_”:在action.d / sendmail.conf中注释“actionstart”和“actionstop”

“action_mw”:注释…在action.d / sendmail -whois.conf中

“action_mwl”:注释…在action.d / sendmail -whois-lines.conf中

如果您将mtaconfiguration为“mail”,则只需将sendmail更改为邮件并configuration特定文件即可。

不要忘了在评论文件后重新启动!

我发现禁用启动/停止通知的唯一方法是在action.d/ actionstop 所有这些文件中的actionstartactionstop部分:

 mail-buffered.conf mail.conf mail-whois.conf mail-whois-lines.conf sendmail-buffered.conf sendmail.conf sendmail-whois.conf sendmail-whois-lines.conf 

要在CentOS 7(RHEL 7)的Fail2Ban v0.9.1(来自epel存储库)上修复这个问题,可以在/etc/fail2ban/action.d/sendmail-common中覆盖sendmail的启动和停止操作(将它们设置为空)。本地。 我通过以root身份运行这些命令来创build这个文件:

 cat << EOF >> /etc/fail2ban/action.d/sendmail-common.local # Override the Fail2Ban defaults in sendmail-common.conf with these entries [Definition] # Disable email notifications of jails stopping or starting actionstart = actionstop = EOF cat /etc/fail2ban/action.d/sendmail-common.local 

试图把以前的答案放在一起,用一些更多的细节和懒惰的长命令。

您的jail.{conf,local}定义邮件的发送方式。 默认情况下,它是sendmail 。 请检查:

 grep 'mta *=' jail.{conf,local} 

要查看为jailconfiguration了哪些启动/停止操作,请使用fail2ban-client -d

把两者结合在一起:

 mta=$(grep 'mta *=' /etc/fail2ban/jail.{conf,local} | awk '{print $NF}') fail2ban-client -d | awk "/action(start|stop).*$mta/ {print \$4}" | sort -u 

在我的configuration中,输出是'sendmail-whois-lines',所以这是要编辑的文件。 假设你的configuration位于/ etc / fail2ban之下,完整的文件名是/etc/fail2ban/action.d/sendmail-whois-lines.conf

但是,正如Rabin所说,不要直接编辑该文件,因为它在更新期间会被覆盖。 相反,创build/etc/fail2ban/action.d/sendmail-whois-lines.local (或者任何action.d/file-name.local在你的configuration中是正确的),并添加以下/etc/fail2ban/action.d/sendmail-whois-lines.local行:

 [Definition] actionstart = actionstop = 

或者,对于懒得查找和创build正确的文件的懒惰的人来说:

 mta=$(grep 'mta *=' /etc/fail2ban/jail.{conf,local} | awk '{print $NF}') fail2ban-client -d \ | awk "/action(start|stop).*$mta/ {print \$4}" \ | sort -u \ | while read f; do \ f=${f//\'/} f="/etc/fail2ban/action.d/${f/%,/}.local" cat <<EOF >>"$f" [Definition] actionstart = actionstop = EOF done 

通过创build/etc/fail2ban/action.d/sendmail-common.local文件覆盖/etc/fail2ban/action.d/sendmail-common.conf中的actionstart和actionstop定义。

将以下文本添加到此文件

 [Definition] actionstart = actionstop = 

现在,您在fail2ban服务的启动/停止时没有收到任何邮件。

我发现了一个快速简单的方法来做到这一点:

cd进入你的/etc/fail2ban/action.d目录。

然后简单地用您自己的替代每个行动开始声明,这对我来说是空白的。

 for FILE in *mail* ; do echo -e "actionstart =\nactionstop =\n" >> $FILE ; done 

这将追加一个新的actionstart和actionstop部分到每个邮件文件。

1线,工作完成。

build议更改软件包随附的默认文件(如这里的一些build议),它们将在下次更新时被覆盖。

只要把你使用的那个sendmail-whois这个动作复制到一个新的文件中,像你想的那样命名它,例如sendmail-mod ,在这个文件中你需要注释掉(或者删除)动作启动/动作停止部分。

接下来在configuration文件(jail.conf / jail.local)中更改动作以使用新动作。

从:

 action = iptables-allports[name=ASTERISK, protocol=all] sendmail-whois[name=ASTERISK, [email protected], [email protected]] 

至:

 action = iptables-allports[name=ASTERISK, protocol=all] sendmail-mod[name=ASTERISK, [email protected], [email protected]]