如果服务器重新启动,或者即使 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 会停止它,但它也会停止禁止通知,如何让它在进程启动/停止时停止通知我?
谢谢
答案1
查看action.d/mail.conf
或action.d/sendmail.conf
控制邮件的启动/停止/禁止。
答案2
要在 CentOS 7 (RHEL 7) 上的 Fail2Ban v0.9.1(来自 epel 存储库)上修复此问题,您可以覆盖 /etc/fail2ban/action.d/sendmail-common.local 中的 sendmail 启动和停止操作(将其设置为无)。我通过以 root 身份运行以下命令来创建此文件:
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
答案3
无需在任何文件中修复此问题。这取决于 中的配置jail.conf
。
如果您进行了配置mta = sendmail
,则可以缩小文件范围action.d/sendmail-*
。
然后你必须看看你的action = %(action_*)s
。如果你配置了
“action_”:在 action.d/ 中注释“actionstart”和“actionstop”发送邮件配置文件
“action_mw”:在 action.d/ 中评论...发送邮件配置文件
“action_mwl”:在 action.d/ 中评论...发送邮件-whois-lines.conf
如果你将 mta 配置为“邮件”,则只需更改发送邮件到邮件并配置特定的文件。
评论完文件后别忘了重新启动!
答案4
尝试将前面答案的点点滴滴整合在一起,并为懒人提供更多细节和长命令。
您jail.{conf,local}
定义如何发送邮件。默认情况下,它是sendmail
。检查:
grep 'mta *=' jail.{conf,local}
要查看为您的jail配置了哪些启动/停止操作,请使用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
在我的配置中,输出是'sendmail-whois-lines',
so that is the file to edit。假设您的配置位于 /etc/fail2ban 下,则完整文件名是/etc/fail2ban/action.d/sendmail-whois-lines.conf
。
但是,正如 Rabin 所提到的,不要直接编辑该文件,因为它会在更新过程中被覆盖。相反,创建/etc/fail2ban/action.d/sendmail-whois-lines.local
(或action.d/file-name.local
在您的配置中执行任何正确操作)并添加以下行:
[Definition]
actionstart =
actionstop =
或者,对于那些真正懒得查找和创建正确文件的人来说:
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