Diverse processen die draaien op de server kunnen via e-mail status berichten en logs versturen. Deze blijven echter op het systeem staan zodat het lastig is om deze berichten te lezen. Door gebruik te maken van mail/postfix
wordt het mogelijk om deze e-mails via Gmail door te sturen.
Installatie
We starten met het bouwen van het installatie package via poudriere
door dit aan de lijst van packages toe te voegen, de instellingen aan te passen en dan alles te bouwen. Bij de opties moet SASL
aangezet zijn, voor de andere opties kunnen de defaults gebruikt worden.
# echo mail/postfix >> /usr/local/etc/poudriere.d/12amd64.pkglist
# poudriere ports -u
# poudriere options -j 12amd64 -c mail/postfix
# poudriere bulk -j 12amd64 -f /usr/local/etc/poudriere.d/12amd64.pkglist
Als het installatie package gebouwd is kan het geïnstalleerd worden.
# pkg install mail/postfix
Bevestig de vraag of postfix
geactiveerd moet worden met een y
. Dit zorgt ervoor dat we in plaats van sendmail
nu postfix
gaan gebruiken. Om sendmail
helemaal uit te schakelen zijn nog een aantal acties nodig. Deze acties worden beschreven bij de installatie van het postfix
package.
In het bestand /etc/rc.conf
zorgen we ervoor dat sendmail
niet meer wordt opgestart en dat we in plaats hiervan postfix
opstarten.
# - disable sendmail
sendmail_enable="NONE"
# - enable postfix
postfix_enable="YES"
Voeg onderstaande regels toe aan het bestand /etc/periodic.conf
om deze sendmail
specifieke zaken uit te zetten.
# disable sendmail tasks
daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"
Gmail authenticatie
Om mail door te kunnen sturen naar Gmail is het nodig om de juiste account gegevens vast te leggen. Dit doen we in het bestand /usr/local/etc/postfix/sasl_passwd
.
[smtp.gmail.com]:587 username@gmail.com:password
Vul hierbij het juiste e-mail adres en Gmail wachtwoord in. Verder moeten we ervoor zorgen dat alleen root
het bestand kan lezen.
chmod 600 /usr/local/etc/postfix/sasl_passwd
Postfix configuratie
De configuratie van postfix
is redelijk simpel. Vervang de inhoud van /usr/local/etc/postfix/main.cf
met de volgende regels.
# General options
queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
mail_owner = postfix
unknown_local_recipient_reject_code = 550
debug_peer_level = 2
# Alias maps
alias_maps = hash:/etc/aliases
virtual_alias_maps = hash:/usr/local/etc/postfix/virtual
# Address rewriting
recipient_canonical_maps = hash:/usr/local/etc/postfix/canonical
# My hostname, domain, origin, networks
myhostname = filevault.home.lan
mydomain = home.lan
myorigin = home.lan
inet_interfaces = 172.16.123.11
inet_protocols = ipv4
mynetworks = 127.0.0.0/8, 172.16.123.0/24
# SASL options
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/usr/local/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
# TLS options
smtp_use_tls = yes
smtp_tls_security_level = encrypt
tls_random_source = dev:/dev/urandom
# Relay host
relayhost = [smtp.gmail.com]:587
# Disable compatibility mode
compatibility_level = 2
Belangrijk hierbij is dat de gegevens van het lokale netwerk correct zijn zoals host naam en IP adres van de server, lokale domein naam en op welk IP netwerk de server zit. De SASL
, TLS
en relayhost
configuratie zijn nodig voor het doorsturen van mail naar Gmail.
De virtual_alias_maps
zorgt ervoor dat alle gebruikers herschreven worden naar mijn Gmail e-mail adres. Zet hiervoor de volgende regel in het /usr/local/etc/postfix/virtual
bestand.
.* username@gmail.com
In het bestand /etc/aliases
moet alleen de alias voor root
aangepast worden.
root: username@gmail.com
Run nu het commando newaliases
om de alias database aan te maken.
# newaliases
Het bestand /usr/local/etc/postfix/canonical
wordt gebruikt om de lokaal gebruikte domein namen om te zetten.
@poudriere.home.lan username@gmail.com
@git.home.lan username@gmail.com
@home.lan username@gmail.com
De databases voor de verschillende configuratie bestanden moeten nu nog aangemaakt worden. Voor de aliases is dit al gedaan via newaliases
, de overige moeten gemaakt worden met behulp van postmap
.
# postmap /usr/local/etc/postfix/sasl_passwd
# postmap /usr/local/etc/postfix/canonical
# postmap /usr/local/etc/postfix/virtual
We kunnen nu postfix
opstarten.
# service postfix start
Veiligheidniveau bij Gmail aanpassen
Normaal gesproken kunnen we geen mail via Gmail doorsturen. Hiervoor moet de instelling Allow less secure apps aangezet worden. Meer hierover kun je lezen op de support pagina Allowing less secure apps to access your account van Google.
Test e-mail versturen
Het versturen van een test e-mail is erg eenvoudig.
# echo "Test" | mail -s "Test" test@domain.com
In de verzonden items bij Gmail moet je nu dit bericht zien. Onafhankelijk vanaf welk gebruikersaccount dit is verstuurd, de afzender moet gelijk zijn aan het e-mail adres zoals ingevuld in /usr/local/etc/postfix/virtual
.