我试图将Fail2ban电子邮件通知的发送方更改为单独的域。
在/etc/fail2ban/jail.local内部,我指定:
sender = no-reply@externaldomain.com
mta = mail但是,当我重新启动服务时,仍然会从root@domain.com发送电子邮件。
我正在使用后缀并将中继配置为正确使用外部域。在Fail2ban选项中还有什么是我遗漏的吗?
发布于 2021-10-30 17:07:18
摘要
因为您使用的是mta = mail,所以不使用变量sender (默认情况下)。您必须更改一些配置,以使命令使用sender变量。
如果你和我一样,你读了一篇像如何在Ubuntu14.04上使用Fail2Ban保护Nginx服务器这样的文章,其中提到了使用sendername = Fail2BanAlerts。也许在过去的版本中默认操作中使用了sendername,但至少在我的版本v0.11.1中,mail操作既没有使用sender也没有使用sendername (它们被sendmail-*操作使用,例如sendmail-whois-lines.conf)。您可以更改操作以使用变量,或操作中的硬代码值。
详细信息
在mta = maildir中以mail开头的一个文件中指定了如何实际发送电子邮件(在您的情况下,指定了/etc/fail2ban/action.d/ ):
mail-buffered.confmail-whois-common.confmail-whois-lines.confmail-whois.confmail.conf您没有说明您的action设置为什么,但是让我们假设它是按照以下方式配置的:action = %(action_mwl)s。
在您的监狱文件(例如/etc/fail2ban/jail.local)中,它有如下内容:
action_mwl = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
%(mta)s-whois-lines[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", logpath="%(logpath)s", chain="%(chain)s"]请注意,%(mta)s-whois-lines部件位于第二行的开头。%(mta)s是带有mta变量的python插值,因此它变成了mail-whois-lines。因此,您需要编辑文件/etc/fail2ban/action.d/mail-whois-lines.conf。
在/etc/fail2ban/action.d/mail-whois-lines.conf文件中,有以下内容:
mailcmd = mail -s你可以在这里硬编码一些值。邮件命令(Postfix)需要使用-a来指定头部(如From: )。所以你可以这么做:
mailcmd = mail -a "From: My Name <myemail@example.com>" -s或者您可以像这样使用sender变量:
mailcmd = mail -a "From: <sender>" -s额外学分:使用sendername变量
如果你的jail.local里有这个
sendername = My Name你是怎么用的?我们首先需要更新我们设置action_mwl的位置(第二行)。您已经可以看到,sender正在那里传递。让我们添加sendername。
action_mwl = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
%(mta)s-whois-lines[name=%(__name__)s, sendername="%(sendername)s", sender="%(sender)s", dest="%(destemail)s", logpath="%(logpath)s", chain="%(chain)s"]然后在action.d/mail-whois-lines.conf中使用它
mailcmd = mail -a "From: <sendername> <<sender>>" -s我们必须在sender周围使用双尖括号,因为变量需要尖括号,而From标头本身需要电子邮件地址周围的尖括号(如果使用From名称)。
https://stackoverflow.com/questions/46978827
复制相似问题