email - fail2ban 配置第三方邮件服务器
问题描述
我在 Google Compute Engine 上使用 fail2ban,无法安装 sendmail 或其他电子邮件服务器,我想将 sendgrid 设置为电子邮件服务器。
在 jail.local 中有这个配置:
destemail = myemail@myhost.it
mta = mail
我在哪里可以设置通过 sendgrid.com 发送电子邮件的主机、用户、密码?
解决方案
我认为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(fail2ban
github上的源代码),您可以看到一条消息通过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 声誉的负担。
推荐阅读
- r - 在 R 中结合 For 和 If 循环
- c - 我正在尝试使用 openssl 对字符串进行 base64 解码,但返回的字符串无效
- java - 如何使用 android 版本 9 保存数据
- android - 我们如何设置或更改滑动布局或回收视图(如 Whatsapp 聊天)的背景
- arduino - 为什么我无法使用此代码从 USART 接收字符串?
- ruby-on-rails - 获取当前 if 条件声明的名称
- java - 将 ListView 转换为 RecyclerView
- laravel - 如何在现有的 Eloquent 模型上“lockForUpdate()”?
- javascript - 获取文件内容并在客户端替换多个值
- javascript - 为什么我在系统中第一次运行 react js 项目时收到此错误消息?