首页 > 解决方案 > fail2ban 配置第三方邮件服务器

问题描述

我在 Google Compute Engine 上使用 fail2ban,无法安装 sendmail 或其他电子邮件服务器,我想将 sendgrid 设置为电子邮件服务器。

在 jail.local 中有这个配置:

destemail = myemail@myhost.it
mta = mail

我在哪里可以设置通过 sendgrid.com 发送电子邮件的主机、用户、密码?

标签: emailsmtpsendgridhostfail2ban

解决方案


我认为fail2ban使用机器mail命令发送电子邮件,因此它使用机器邮件守护进程。如果你看这个片段:

# Option:  actionstart
# Notes.:  command executed once at the start of Fail2Ban.
# Values:  CMD
#
actionstart = printf %%b "Hi,\n
              The jail <name> has been started successfully.\n
              Regards,\n
              Fail2Ban"|mail -s "[Fail2Ban] <name>: started  on <fq-hostname>" <dest>

取自here(fail2bangithub上的源代码),您可以看到一条消息通过fail2ban管道传输到mail命令(在基于Debian的发行版中,这是通过mailutils软件包安装的)。由于我认为您的问题是您无法使用或配置此mail命令(这意味着配置邮件服务器),您可能会考虑编写一个非常简单的mail二进制文件(使用您喜欢的语言),其界面非常相似,可能使用类似Gmail App Script 发送电子邮件,甚至 Gunmail 或 Sendgrid 实际从该机器发送电子邮件(通过 REST Api 发出 POST 请求?他们允许吗?),并将此自定义二进制文件添加到$PATH用户的运行fail2ban


编辑Google 计算文档中有一个与发送网格相关的页面。同样根据这一点 ,您不能使用 sendmail:端口已关闭。

Google Compute Engine 不允许端口 25、465 和 587 上的出站连接。默认情况下,这些出站 SMTP 端口被阻止,因为这些端口容易受到大量滥用。此外,拥有可信赖的第三方提供商(例如 SendGrid、Mailgun 或 Mailjet)可以减轻 Compute Engine 和您在接收方维护 IP 声誉的负担。


推荐阅读