Fail2ban - 使用 msmtp 发送电子邮件

Fail2ban - 使用 msmtp 发送电子邮件

如何设置fail2ban以使用msmtp发送电子邮件?

我尝试将mta = sendmail线路更改为mta = msmtp并将action = %(action_)s线路更改为action = %(action_mwl)s

我想/etc/fail2ban/action.d/msmtp-whois-lines.conf文件,但我不知道该放什么。

我通常可以从命令行发送邮件,无需密码。echo -e "Subject: subject\nMessage contents" | msmtp [email protected]

答案1

我要做的如下:

首先是将所有action.d/sendmail-*.conf文件复制到action.d/msmtp-*.conf文件:

for file in /etc/fail2ban/action.d/sendmail*.conf; do cp "$file" "${file/sendmail/msmtp}"; done

下一步是更改文件中出现的before = sendmailto :before = msmtpaction.d/msmtp-*.conf

sed -i 's/before = sendmail/before = msmtp/' /etc/fail2ban/action.d/msmtp-*.conf

这将更正对其他 sendmail 配置文件(例如before = sendmail-common.conf.

随后将所有出现的sendmail -f <sender>to更改msmtpaction.d/msmtp-*.conf

sed -i 's/sendmail -f <sender>/msmtp/p' /etc/fail2ban/action.d/msmtp-*.conf

sendmail这将纠正称为 like 的行Fail2Ban | /usr/sbin/sendmail -f <sender> <dest>

最后一步是更改文件mta = msmtp中的action.d/jail.conf。然后重新加载fail2ban来测试这些修改是否有效。

另一件需要记住的事情是fail2ban 相对于msmtp 配置的用户上下文。如果您配置了本地msmtprc文件,则当fail2ban尝试运行msmtp时,由于其他用户上下文,该文件可能不会被应用。在这种情况下,请使用全局配置来配置 msmtp,或者为运行fail2ban 的用户创建单独的配置。

答案2

由于我没有足够的声誉,无法直接在下面发表评论兰伯特的答案非常有帮助,我将在这里添加我的想法:

作为德克萨斯州洪水他们在评论中指出,你需要运行

sudo sed -i 's/\/usr\/sbin\/sendmail/\/usr\/bin\/msmtp/' /etc/fail2ban/action.d/msmtp*.conf

以及[标记发送邮件而不是德克萨斯洪水邮件传输协议! - 可能只是他们这边的一个错字]。

你可能需要添加须藤在...前面CP或者sed为了让它正常工作。

相关内容