Eigen mailserver opzetten met iRedMail

Wil je een eigen mailserver opzetten? Dankzij iRedMail hoeft het niet lastig te zijn: je zet hiermee razendsnel een veilige én functionele mailomgeving op waar je net zo makkelijk groepsfuncties aan toevoegt. Lees hier wat daarbij komt kijken.

Lees eerst: Wat heb je nodig voor een eigen mailserver?

Met de kennis uit bovenstaand artikel in het achterhoofd is het tijd om iRedMail te configureren. Voor de afhandeling van e-mailverkeer via de door jou gewenste domeinnaam moet je de dns-instellingen van dat domein aanpassen.

Als voorbeeld gebruiken we in deze masterclass de domeinnaam p2p.nl. Je kunt dit overal vervangen door je eigen domeinnaam. Als hostname voor de server kiezen we mail.p2p.nl. Het domein is geregistreerd bij TransIP waar we ook de dns-instellingen voor dat domein kunnen aanpassen.

Voor de mailserver maken we eerst een a-record voor mail.p2p.nl dat verwijst naar het ip-adres van de server, in ons geval is dat 178.79.181.61. Als je de server thuis hebt staan, gebruik je het (publieke) ip-adres van je internetverbinding.

Mail          A     178.79.181.51

Als tweede voegen we een mx-record (mail exchange record) voor het domein toe. Hierbij geef je een prioriteit aan (bijvoorbeeld 10) en het doel van het mx-record (het zojuist gemaakte a-record met de naam mail).

@          MX     10 mail

Wil je voor een ander domein dezelfde e-mailserver gebruiken? Dan vul je in het mx-record voor dat domein de volledige hostname van de mailserver in, zoals

10 mail.p2p.nl.

waarbij de extra punt op het einde belangrijk is!). Je kunt eventueel een tweede mailserver als back-up (de zogenoemde fallback) gebruiken door die een lagere prioriteit (zoals 20) te geven. Dat is vooral belangrijk als je de server thuis hebt staan. Vergeet tenslotte ook niet de a-records voor onder meer de website zelf (www), die natuurlijk ook elders mag zijn gehost. We laten ipv6-adressen hier buiten beschouwing, maar die kun je eventueel ook toevoegen.

Kale installatie Ubuntu

We beginnen zoals aangegeven met een kale installatie van Ubuntu. Dat is ook de gewenste basis voor iRedMail. Zorg dat je als root bent ingelogd via ssh (bijvoorbeeld met PuTTY) en dat het besturingssysteem up-to-date is. De hostname (mail.p2p.nl) moet correct zijn geconfigureerd. In het bestand /etc/hostname zet je de korte hostname mail, dat kan in één keer met

echo mail > /etc/hostname

Zorg ook dat in het bestand /etc/hosts de eerste regel (met het adres 127.0.0.1) als eerste de volledige hostname bevat (mail.p2p.nl) gevolgd door localhost, zoals in het voorbeeld hieronder. Je kunt het bestand met het commando

sudo nano /etc/hosts

bewerken.

127.0.0.1mail.p2p.nl localhost

Bij wijzigingen moet je de server herstarten (met het commando reboot). Controleer daarna dat de opdracht hostname de korte hostname (mail) geeft en dat de opdracht

hostname -f

de volledige hostname (mail.p2p.nl) laat zien.

iRedMail installeren

Ga naar de site van iRedMail om de nieuwste versie te downloaden. Ga dan via de opdrachtregel met

cd /root/

naar de root-folder en zet hier installatiebestand neer met

wget <link/>

waarbij je <link> vervangt door het adres van het installatiebestand. Pak vervolgens dit bestand uit en ga naar de zojuist aangemaakte folder met:

tar xjf iRedMail-x.y.z.tar.bz2cd iRedMail-x.y.z

Begin nu de installatie met

bash iRedMail.sh
Eigen mailserver opzetten

© PXimport

Er verschijnt een welkomstscherm. Kies Yes om de installatie te beginnen. Eerst wordt om een opslaglocatie voor de mailboxen gevraagd. Je kunt de standaardwaarde /var/vmail accepteren. Hierna wordt gevraagd of je Nginx of Apache als webserver wilt gebruiken. De webserver zal daarna automatisch worden geconfigureerd voor onder meer iRedAdmin en Roundecube.

We kiezen Nginx omdat die niet alleen sneller is, maar ook beter ondersteund lijkt te worden: de optie voor Apache verdwijnt in de volgende versie van iRedMail, al blijft het wel bruikbaar als je er nu voor kiest.

Opslag van e-mailaccounts

In de volgende stap kies je waar de e-mailaccounts bewaard moeten worden, zoals OpenLDAP, MySQL of MariaDB. Dit maakt functioneel niet uit. Het is wel handig een optie te kiezen waarmee je ervaring hebt. Voor veel gebruikers zal dat MySQL zijn. We geven hier de voorkeur aan MariaDB (dat vergelijkbaar is met MySQL). In distributies waarin MariaDB geen optie is, kun je veilig MySQL kiezen.

Er wordt vervolgens een wachtwoord voor de root-gebruiker voor MySQL gevraagd. Daarna kun je het eerste domein waarvoor je e-mail af wilt handelen toevoegen, in ons voorbeeld is dat p2p.nl. Daarna wordt om een wachtwoord voor de domeinbeheerder gevraagd (postmaster@p2p.nl). Met dat account kun je inloggen in de webmail en de configuratietool iRedAdmin.

Eigen mailserver opzetten

© PXimport

Optionele onderdelen

Je kunt ten slotte kiezen welke extra onderdelen geïnstalleerd moeten worden. Dat zijn achtereenvolgens Roundcube voor webmail, Awstats om statistieken voor web- en e-mailverkeer te genereren, iRedAdmin voor het configureren van je e-mailomgeving via een browser, Fail2ban om gebruikers te blokkeren als ze te vaak verkeerde inloggegevens opgeven en SOGo dat groupware toevoegt. Ze zijn, behalve SOGo, allemaal standaard aangevinkt.

We vinken SOGo hier ook aan. Dit voegt ondersteuning toe voor (gedeelde) agenda’s (CalDAV) en contacten (CardDAV) en, belangrijker nog, Exchange ActiveSync. Daardoor kun je gemakkelijker e-mail, agenda, contacten en taken synchroniseren met Outlook én met diverse mobiele apparaten, zoals Android, iPhone en iPad. Tevens biedt SOGo een Outlook-omgeving in de browser aan, als alternatief naast het op e-mail toegespitste Roundcube. SOGo zou je kunnen weglaten als je bijvoorbeeld al ownCloud gebruikt voor agenda en contacten.

Eigen mailserver opzetten

© PXimport

Definitieve installatie

Als laatste krijg je een overzicht van je keuzes en kun je de installatie definitief doorzetten, zodat alle componenten worden geïnstalleerd en daarna geconfigureerd. Er volgen nog een paar vragen waarvoor je het standaard antwoord kunt accepteren, zoals het toevoegen van de standaard firewallregels van iRedMail en herstarten van de firewall.

Na een succesvolle installatie krijg je een overzicht van de internetadressen te zien voor browsertoegang tot geïnstalleerde onderdelen, zoals Roundcube, SOGo en de configuratietool iRedAdmin. Ook zie je de locatie van het bestand iRedMail.tips waarin je zeer gedetailleerde informatie en tips vindt voor jouw installatie. Om de installatie af te ronden, moet je de server herstarten met

reboot 0

Hierna zijn alle services gestart en kun je beginnen met bijvoorbeeld het toevoegen van gebruikers. De postmaster (postmaster@p2p.nl) is bij de installatie reeds toegevoegd. Op dat adres ontvang je onder meer statusrapporten. Je kunt hiervan ook al direct gebruik maken, bijvoorbeeld door in te loggen in Roundcube.

Aanmaken van gebruikers

We beginnen bij iRedAdmin, de configuratietool waarmee je al je e-maildomeinen en accounts kunt beheren. In ons voorbeeld is die te vinden op https://mail.p2p.nl/iredadmin. Je logt in als postmaster (postmaster@p2p.nl) met het gekozen wachtwoord.

We starten met het toevoegen van het e-mailadres gertjan@p2p.nl. Hiervoor ga je naar Add / User. Voer het gewenste e-mailadres en wachtwoord in. Bij Mailbox Quota kies je bijvoorbeeld 5000 MB, wat voor de meeste gebruikers voldoende zou moeten zijn. Nadat je de gebruiker hebt aangemaakt, kun je met dat e-mailadres en het gekozen wachtwoord inloggen bij Roundcube via https://mail.p2p.nl/mail.

Hoewel je nu volop gebruik kunt maken van het e-mailadres is de installatie nog niet optimaal. Daardoor worden sommige berichten mogelijk niet afgeleverd of verdwijnen ze in een spambak. Je kunt de status van je mailserver gemakkelijk controleren op deze website. Hier wordt een e-mailadres genoemd waarnaar je, bijvoorbeeld vanaf Roundcube, een bericht kunt sturen. Druk vervolgens op de knop om de score te bekijken.

Dns-aanpassingen

De meeste aanpassingen maken we via de dns-instellingen van het domein. Voor de eerste, het toevoegen van reverse-dns, ook wel ptr-record (pointer) genoemd, moet je meestal bij je hostingprovider zijn. Zo’n record zorgt dat een ip-adres is te herleiden naar de hostname van de mailserver. Het doet dus het omgekeerde van een dns a-record. Als je geen ptr-record hebt ingesteld, wordt de kans iets groter dat een spamfilter jouw berichten als spam markeert.

Bij Linode kunnen we reverse-dns via de Linode Manager instellen. In ons voorbeeld doen we dit voor de hostname mail.p2p.nl. Er kan per ip-adres maar één reverse-dns-record bestaan. Wil je meerdere domeinen gebruiken met jouw mailserver? Dan geeft het in de praktijk niet als reverse-dns naar een ander domein verwijst (wat onvermijdelijk is).

Als tweede aanpassing gaan we een spf-record (Sender Policy Frame) toevoegen aan de dns. Die wordt door bijvoorbeeld Google en Microsoft gebruikt om te controleren of de verzendende mailserver wel berichten mag versturen voor dat domein. Hiervoor voeg je een txt-record toe met als inhoud bijvoorbeeld:

v=spf1 mx a -all

Hiermee geef je aan dat alle voor dit domein geconfigureerde mx-systemen en ook alle a-records e-mail mogen versturen voor dit domein.

Dkim-handtekening

Als laatste aanpassing gaan we voor een dkim-handtekening zorgen. Dat is een extra header in e-mailberichten met een unieke sleutel waarmee gecontroleerd kan worden waar een bericht oorspronkelijk vandaan komt. Die unieke sleutel voeg je als txt-record aan de dns-instellingen toe. Om de waarde van die sleutel te achterhalen, ga je naar de opdrachtregel van de server en geef je het commando

amavisd-new showkeys

Je krijgt nu de volgende uitvoer te zien:

dkim._domainkey.p2p.nl. 3600 TXT ("v=DKIM1; p=" "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDeDOq04effTnewgZi9+yhDcgDC""6F1HUoASFlTv5gIBfU3d4C4/EJHWcvgrcGjJEe502hte/ry895Zihgg0SGy7N6Rf""YOcMtViOzm3N34nLCTZ3/BMxGWINnvY9JTPVQmqly8bOEw5r2yvePCJYOn9hiVS3"

 "zn94Lv1fRFbbtmfRowIDAQAB")

De zogenoemde selector is dkim en voeg je in de vorm dkim._domainkey toe als naam voor je txt-record in de dns. Voor de unieke waarde van dit record heb je het gedeelte tussen haakjes nodig, waarbij je alle karakters achter elkaar in één regel zet en alle quotes verwijdert. Wat je overhoudt ziet er (deels) als volgt uit:

v=DKIM1; p= MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDeD...

In de afbeelding (zie ##links/rechts/onder/boven##) zie je de volledige dns-instellingen die we hebben gemaakt. Let erop dat het tot wel 24 uur kan duren voordat wijzigingen in de dns-instellingen overal zijn doorgevoerd. Heb je deze laatste aanpassing gemaakt én is die doorgevoerd, dan kun je met de opdracht

amavisd-new testkeys

controleren of ze correct zijn, dit geeft dan een pass als resultaat. Je kunt ook hier de handtekening testen met de selector (dkim) en domeinnaam (p2p.nl). Optioneel kun je je domein ook nog via Google Postmaster Tools verifiëren. Je krijgt dan (wederom) een txt-record dat je aan de dns-instellingen kunt toevoegen.

Media has no description

© PXimport

SOGo en Android

We hebben bij de installatie ook voor SOGo gekozen. Alle via iRedAdmin aangemaakte accounts zijn daardoor ook direct beschikbaar binnen SOGo. Je kunt inloggen via https://mail.p2p.nl/SOGo. Binnen deze zeer nette Outlook-achtige omgeving kun je je e-mail inzien, maar ook agenda, taken en contactpersonen bijhouden.

Om te beginnen is het verstandig om via Voorkeuren / Algemeen bij Huidige tijdzone de waarde Europe/Amsterdam in te vullen zodat afspraaktijden kloppen. Je zult verder waarschijnlijk gemakkelijk je weg in de verzorgde en bovendien Nederlandstalige gebruikersinterface vinden. Dankzij de Exchange ActiveSync-ondersteuning kunnen we het account eenvoudig toevoegen op een Android-smartphone, zodat we e-mail, agenda, contacten en taken daarmee kunnen synchroniseren. Hiervoor gebruiken we de optie Account toevoegen in de Gmail-app. Kies als type server voor Exchange. Voer het e-mailadres in gevolgd door het wachtwoord. Voer de servernaam (mail.p2p.nl) in en kies bij beveiligingstype voor SSL/TLS (alle certificaten accepteren).

De synchronisatie-instellingen kun je naar keuze nog aanpassen. Standaard zullen naast e-mail ook agenda en contacten worden gesynchroniseerd. Je kunt dat controleren met bijvoorbeeld de agenda-app die afspraken laat zien, al zul je mogelijk alleen de weergave van het bewuste account nog actief moeten maken.

Eigen mailserver opzetten

© PXimport

Configuratie aanpassen

Hoewel iRedAdmin erg praktisch is voor het maken van e-mailaccounts, zul je merken dat de mogelijkheden verder erg beperkt zijn. De uitgebreidere Pro-versie voegt veel toe, maar is ook prijzig (vanaf zo’n 250 dollar per jaar). Gelukkig geeft de standaardinstallatie al een goed geconfigureerd systeem. Kleine aanpassingen kun je waar nodig zelf maken, veelal door configuratiebestanden via de opdrachtregel aan te passen. Als voorbeeld nemen we de grootte van e-mailbijlagen. Via de opdrachtregel kun je met de opdracht postconf alle configuratieparameters van Postfix inzien.

De waarde bij message_size_limit bepaalt de maximale grootte van e-mailberichten. Standaard is dat ongeveer 15 MB. Met de volgende opdracht kun je de waarde verhogen naar 100 MB:

postconf -e message_size_limit=104857600postconf -e mailbox_size_limit=104857600

Overigens is Dovecot verantwoordelijk voor de grootte van mailboxen, de enige reden om de parameter

mailbox_size_limit

hier te verhogen is omdat Postfix dat vereist. Herstart Postfix vervolgens met de opdracht

/etc/init.d/postfix restart

Je kunt met je e-mailsoftware zoals Outlook direct grote bijlagen versturen. Wil je dit ook via webmail kunnen doen, dan moet je ook een kleine aanpassing voor php en Roundcube maken.

Verdere stappen

Standaard wordt een self-signed certificaat gegenereerd voor https-toegang. Daardoor geven de meeste browsers een veiligheidswaarschuwing als je bijvoorbeeld Roundcube of iRedAdmin bezoekt. In Firefox kun je hiervoor een uitzondering toevoegen. Maar het is netter om een echt certificaat te installeren, zoals een gratis exemplaar van Let’s Encrypt.

Onder meer in de documentatie van iRedMail vind je tips hoe je dat voor elkaar krijgt. Je vindt daar nog veel meer handige tips om je installatie te finetunen.

Deel dit artikel
Voeg toe aan favorieten