Auteur: Koen Vervloesem

Eenvoudig e-mails versturen

Heel wat systeemdiensten op een Linux-computer sturen e-mails om je ergens van te waarschuwen. Standaard komen die vaak in een lokale mailbox terecht, maar het is nuttiger om ze naar je normale e-mailadres te versturen, zodat je het sneller opmerkt.

Je kunt daar een volwaardige mailserver, zoals Postfix of Exim, voor installeren, maar dat is overkill. En als je niet goed oplet, heb je je systeem als open relay geconfigureerd en wordt het door spammers misbruikt. Een interessanter alternatief is Nullmailer, dat specifiek voor deze taak is ontwikkeld: lokaal afgeleverde e-mails naar een vooraf ingesteld e-mailadres doorsturen.

Op Debian- en Ubuntu-systemen installeer je Nullmailer met een eenvoudig sudo apt install Nullmailer. Overigens bevat Debian Stretch een vrij oude versie van Nullmailer, die onder andere een probleem heeft als je spaties in het wachtwoord van je e-mailaccount gebruikt en die het bestand /etc/nullmailer/allmailfrom dat we nodig hebben niet ondersteunt. Kijk dan in de volgende tip “Nieuwere pakketten installeren uit stretch-backports” hoe je een nieuwere versie van Nullmailer installeert.

Bij de installatie krijg je de vraag om enkele instellingen in te vullen, maar daar mag je voorlopig gerust de standaardwaarden bevestigen; we stellen alles daarna via de juiste configuratiebestanden in. Die vind je allemaal onder de directory /etc/nullmailer.

De belangrijkste configuratie is die voor de mailserver waaraan Nullmailer e-mails moet afleveren. In /etc/nullmailer/remotes zet je een regel als volgt:

smtp.example.com smtp --user=gebruikersnaam --pass=wachtwoord --port=587 --starttls

Dat is de configuratie voor een met TLS en STARTTLS beveiligde verbinding over poort 587. Welke opties je hier allemaal kunt invullen, vind je in de uitvoer van /usr/lib/nullmailer/smtp –help.

Daarna stel je de afzender van elke door Nullmailer doorgestuurde e-mail in door dit e-mailadres in /etc/nullmailer/allmailfrom in te voeren. Als je hier geen bestaand e-mailadres invult, wijst je smtp-server de e-mails wellicht af, omdat het geen e-mailadres als root kent.

Om ervoor te zorgen dat Nullmailer alle e-mail die naar lokale gebruikers wordt gestuurd naar een specifiek e-mailadres doorstuurt, vul je dat e-mailadres in het bestand /etc/nullmailer/adminaddr in. Als je dat niet doet, probeert Nullmailer immers e-mail voor bijvoorbeeld root naar je domein te sturen en wijst de smtp-server dat af, omdat hij geen mailbox voor die gebruiker heeft.

Tot slot stel je in /etc/mailname nog het domein in van de ontvanger. Stop nu de systemd-dienst van Nullmailer en start Nullmailer manueel op:

sudo systemctl stop nullmailer.service

sudo nullmailer-send

Als alles goed gaat, kun je nu een lokaal proces een e-mail laten sturen. Installeer om dit te testen mailutils:

sudo apt install mailutils

En verstuur een e-mail als test:

mail -s "Dit is een testonderwerp" root@localhost <<< 'Hallo wereld'

Je ontvangt nu op het ingestelde e-mailadres een e-mail. Als dit niet het geval is, kijk dan in de uitvoer van nullmailer-send wat er misgaat. Waarschijnlijk krijg je dan ook van je smtp-server een bericht met een foutmelding. Als alles eenmaal correct geconfigureerd is, kun je het proces nullmailer-send afbreken en de systemd-dienst van Nullmailer weer opstarten:

sudo systemctl start nullmailer.service

Link: https://github.com/bruceg/nullmailer

 

Nieuwere pakketten installeren uit stretch-backports

Debian bevat een ongelooflijk aantal pakketten. Vaak zijn ze ook heel stabiel, omdat ze uitgebreid getest zijn. Het nadeel daarvan is dat het doorgaans om oudere versies van de software gaat. En soms heb je nu eenmaal een nieuwere versie nodig, omdat de versie in de huidige versie van Debian (ten tijde van de redactiesluiting Stretch of 9.0) de functies die je nodig hebt nog niet bevat.

Gelukkig kun je in Debian Stretch een repository toevoegen met zogenoemde ‘backports’: de versies van software die in Debian Testing zitten, aangepast en gehercompileerd voor gebruik in Debian Stable. En omdat dit de versies zijn die in de volgende Debian-versie komen, kom je niet in de problemen als je in de toekomst je systeem naar die nieuwe Debian-versie upgradet.

Voeg eerst de pgp-sleutels van de ontwikkelaars van stretch-backports toe:

sudo apt install dirmngr
gpg --keyserver hkp://pgpkeys.mit.edu:80 --recv-key 8B48AD6246925553
gpg -a --export 8B48AD6246925553 | sudo apt-key add -
gpg --keyserver hkp://pgpkeys.mit.edu:80 --recv-key 7638D0442B90D010
gpg -a --export 7638D0442B90D010 | sudo apt-key add -

Open dan het bestand met de pakketbronnen:

sudo nano /etc/apt/sources.list

En voeg daarin de volgende regel voor de repository toe:

deb http://deb.debian.org/debian/ stretch-backports main contrib non-free

Update de lijst van beschikbare pakketten:

sudo apt update

Als je nu nieuwe pakketten installeert, zijn dat nog altijd de versies uit Debian Stretch. Maar als je van één specifiek pakket (bijvoorbeeld nullmailer) de nieuwere versie uit Debian Testing wilt installeren, doe je dat met de optie -t:

sudo apt install -t stretch-backports nullmailer

Overigens werkt deze tip niet alleen voor Debian, maar ook voor het daarvan afgeleide Raspbian.

Een dashboard in je terminal

Voor een mooi dashboard hoef je je heil niet te zoeken in een web-interface. Het programma WTF toont aan dat het ook in een terminal kan. Het Go-programma zit nog niet in de repository’s van de bekendste Linux-distributies, dus installeer het als volgt:

go get -u github.com/wtfutil/wtf  
cd $GOPATH/src/github.com/wtfutil/wtf
make install

Daarvoor heb je Go 1.9.2 of hoger nodig. Het project heeft ook binaire releases als je het niet zelf wilt compileren. Na de installatie draai je het:

make run

Standaard toont wtf vier widgets met informatie: een wereldklok, systeeminformatie, informatie over de beveiliging van je systeem en de inhoud van het standaard configuratiebestand ~/.config/wtf/config.yml. Dit is een yaml-bestand waarin je het dashboard naar je wensen kunt aanpassen. Op de website vind je meer informatie over de mogelijkheden.

Zo definieer je in columns en rows onder grid respectievelijk de breedte en hoogte van de widgets. Het grootste deel van de configuratie gebeurt onder mods: daar definieer je voor elk widget de configuratie van een module. Op https://wtfutil.com/modules/ vind je de beschikbare modules en hoe je ze configureert. Sommige modules zijn interactief: op hun webpagina staat welke toetsen actief zijn. Met de Tab-toets schakel je tussen modules over.

Zo zijn er modules om de koersen van cryptocurrency’s in het oog te houden, informatie over je Git-repository’s te tonen, de gebeurtenissen in je Google Agenda op te lijsten, de buildstatus van je projecten in Jenkins of Travis CI te tonen, je batterijstatus te bekijken, Spotify te besturen, een TODO-lijstje bij te houden, het processor- en geheugenverbruik te tonen of het weerbericht te bekijken.

Wil je bijvoorbeeld bovenaan het weerbericht zetten en het twee vakjes uit het rooster laten innemen met weersvoorspellingen voor vandaag en morgen, dan voeg je de volgende code onder mods toe in het configuratiebestand:

    prettyweather:
      city: "Haarlem"
      enabled: true
      position:
        top: 0
        left: 0
        height: 1
        width: 2
      refreshInterval: 300
      unit: "c"
      view: 2
      language: "nl"

Link: https://github.com/wtfutil/wtf