Notifications

Sometimes things go wrong. Hardware fail. Updates fail. Space runs out.

In such cases, the server must be able to contact you, the admin.

E-Mail

The usual way is to send emails. To avoid a full mail server, there is a simple forward tool.

apt install postfix mailutils

During the installation of postfix, dpkg will ask a few questions. My answwers were:

  • Install a satellite system
  • For mailname my dynamic selfhost domain
  • As SMTP relay host, my mail provider smtp.web.de

Now more questions via sudo dpkg-reconfigure postfix.

Now, we must configure it by editing /etc/ssmtp/ssmtp.conf.

  • After repeating the first three questions above, there is more.
  • My email address, which will receive mail for root etc.
  • Destinations to accept mail. Removed a few of the proposed ones.
  • Force synchronous updates.
  • As per default, only accept from localhost.
  • Use the upstream default of 51200000 bytes.
  • Default for local address extension character.
  • Use IPv4 and IPv6.

This is still not enough configuration. Add the following lines to /etc/postfix/main.cf.

smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
sender_canonical_maps = hash:/etc/postfix/sender_canonical
smtp_tls_security_level = encrypt
smtpd_enforce_tls = yes

The account information for sending emails is put into /etc/postfix/sasl_password in the following format. Also, set its mode to 0600, so it is not readable by everybody on the machine.

smtp.web.de qznc@web.de:password

In /etc/postfix/sender_canonical, write a list of all mappings for local users.

root someone+root@gmail.com
qznc someone+qznc@gmail.com

These are for adapting the sender addresses. Now for changing the recipient addresses, edit /etc/aliases.

postmaster:    root
root:          someone+root@gmail.com
qznc:          someone+qznc@gmail.com

Postfix requires some hashing and a restart now.

sudo postmap /etc/postfix/sasl_password
sudo postmap /etc/postfix/sender_canonical
sudo newaliases
sudo systemctl restart postfix

Now cron and others should be able to send email. You can try it manually. Explicitly try a different FROM address via -r to check if ssmtp correctly rewrites it.

echo "$HOSTNAME Email Ready" | mail -s 'Email test' -r 'bill@microsft.com' root

Warning

The +homeserver tagging in gmail seems not to work?

Now a nice trick to improve the emails a little from Chris Siebenmann:

sudo chfn -f "$HOSTNAME root" root

In your passwd, you can set a “full name” for each user. Most people leave these field empty. However, most of those tools sending email will use it. We can exploit that to add some more information. For example, the hostname, because if cron sends you an email, that information will not be in there. If you only have one server, that trick in not necessary, but maybe you find something else to put in there.

Instant Message

A more modern way is use some instant messenger.

Usually, I recommend Signal, but they do not like bots. Likewise, WhatsApp, which is really popular.

Warning

Matrix looks good. Working on using that…

Supervising

Nagios and Munin?