How do I set up fail2ban to send emails using msmtp?
I tried changing the mta = sendmail
line to mta = msmtp
and the action = %(action_)s
line to action = %(action_mwl)s
.
I think /etc/fail2ban/action.d/msmtp-whois-lines.conf
file, but I'm not sure what to put in it.
I can normally send mail from the command line with echo -e "Subject: subject\nMessage contents" | msmtp recipient@hotmail.com
without a password.
Best Answer
What I would do is the following:
First thing is to copy all
action.d/sendmail-*.conf
files toaction.d/msmtp-*.conf
files:Next step is to change the occurrences of
before = sendmail
tobefore = msmtp
in theaction.d/msmtp-*.conf
files:This will correct the references to other sendmail configuration files like
before = sendmail-common.conf
.Followed by changing all occurrences of
sendmail -f <sender>
tomsmtp
inaction.d/msmtp-*.conf
:This will correct the lines where
sendmail
is called likeFail2Ban | /usr/sbin/sendmail -f <sender> <dest>
.The final step is changing the
mta = msmtp
in theaction.d/jail.conf
file. Then reload fail2ban to test whether these modifications work.Another thing to keep in mind is the user context of fail2ban with respect to the msmtp configuration. If you have a local
msmtprc
file configured, it might not be applied when fail2ban tries to run msmtp due to other user context. In that case, configure msmtp with a global configuration, or create a separate configuration for the user that runs fail2ban.