首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fail2ban在jail.conf中不使用发送方

Fail2ban在jail.conf中不使用发送方
EN

Stack Overflow用户
提问于 2017-10-27 15:42:34
回答 1查看 1.3K关注 0票数 2

我试图将Fail2ban电子邮件通知的发送方更改为单独的域。

/etc/fail2ban/jail.local内部,我指定:

代码语言:javascript
复制
sender = no-reply@externaldomain.com
mta = mail

但是,当我重新启动服务时,仍然会从root@domain.com发送电子邮件。

我正在使用后缀并将中继配置为正确使用外部域。在Fail2ban选项中还有什么是我遗漏的吗?

EN

回答 1

Stack Overflow用户

发布于 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.conf
  • mail-whois-common.conf
  • mail-whois-lines.conf
  • mail-whois.conf
  • mail.conf

您没有说明您的action设置为什么,但是让我们假设它是按照以下方式配置的:action = %(action_mwl)s

在您的监狱文件(例如/etc/fail2ban/jail.local)中,它有如下内容:

代码语言:javascript
复制
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文件中,有以下内容:

代码语言:javascript
复制
mailcmd = mail -s

你可以在这里硬编码一些值。邮件命令(Postfix)需要使用-a来指定头部(如From: )。所以你可以这么做:

代码语言:javascript
复制
mailcmd = mail -a "From: My Name <myemail@example.com>" -s

或者您可以像这样使用sender变量:

代码语言:javascript
复制
mailcmd = mail -a "From: <sender>" -s

额外学分:使用sendername变量

如果你的jail.local里有这个

代码语言:javascript
复制
sendername = My Name

你是怎么用的?我们首先需要更新我们设置action_mwl的位置(第二行)。您已经可以看到,sender正在那里传递。让我们添加sendername

代码语言:javascript
复制
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中使用它

代码语言:javascript
复制
mailcmd = mail -a "From: <sendername> <<sender>>" -s

我们必须在sender周围使用双尖括号,因为变量需要尖括号,而From标头本身需要电子邮件地址周围的尖括号(如果使用From名称)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46978827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档