Zo richt je een mailserver in met Raspberry Pi

De Raspberry Pi biedt een basis voor veel nuttige en ook leerzame projecten. Zo kan je hem gebruiken voor domotica of er een mediacenter op inrichten. Bovendien kan er ook een mailserver op de Raspberry Pi worden geïnstalleerd. Als je op de kleine computer een Raspberry Pi e-mailserver inricht, leer je niet alleen de structuur en werking van de noodzakelijke programma’s kennen, maar krijg je ook meer controle over je berichten.

Maar geen licht zonder schaduw en dat geldt ook voor de privé-mailserver. Vooral problemen met het versturen van berichten behoren tot de nadelen van een eigen e-mailserver. Wij geven je helderheid over de gebruiksmogelijkheden, zetten de voor- en nadelen van zo’n server op een rij en laten in onze tutorial zien hoe je de Raspberry Pi als mailserver inricht.


Problemen met de IP-adressen van een eigen Raspberry Pi-mailserver

Voor je met de inrichting van de Raspberry Pi-mailserver begint, moet je je het volgende realiseren: een zelfstandig opgezette e-mailserver is normaal gesproken geen gelijkwaardige vervanging voor een mailserver van een commerciële e-mailprovider. Dat komt vooral door het feit dat de meeste internettoegangen geen statisch IP-adres gebruiken. Om een mailserver te kunnen laten werken, moet hij natuurlijk aangesloten zijn op het internet. Een professionele e-mailserver maakt hiervoor gebruik van een internetverbinding die minstens één statisch (vast) IP-adres heeft. Dit onveranderlijke adres voor internettoegang garandeert dat de server permanent adresseerbaar en bereikbaar is.

De meeste internetaansluitingen beschikken echter alleen over een dynamisch IP-adres – het adres wordt dus steeds veranderd (meestal uiterlijk na 24 uur). Dit beperkt de mogelijkheden van het versturen van berichten via de eigen mailserver enorm: de ontvangende e-mailserver beschouwt berichten die via een internetverbinding met een dynamisch IP-adres zijn verstuurd vaak als spamberichten. Dit komt onder andere omdat spammers vaak gebruikmaken van dynamische IP-adressen om hun hinderlijke berichten te versturen. Het steeds wisselende adres voorkomt dat spammers kunnen worden gelokaliseerd. Bovendien komen e-mails die direct vanaf een computer en zijn dynamische IP-adres zijn verstuurd vaak niet van de computer zelf, maar van malware die in het systeem is geïnfiltreerd.

Veel spamfilters van e-mailservers beschouwen hierdoor wisselende IP-adressen in het algemeen als onbetrouwbaar. Daarom is een internetaansluiting met een dynamisch IP-adres voor het versturen van berichten via een mailserver slechts tot op zekere hoogte geschikt.

Ook de e-mailserver op Raspberry Pi die in deze tutorial wordt gepresenteerd, is in dit opzicht geen volwaardige mailserver. Hij kan met enkele veranderingen en/of maandelijkse extra kosten wel worden geüpgraded tot een conventioneel werkende e-mailserver.


Voor- en nadelen: wanneer is een eigen Raspberry Pi-mailserver rendabel?

De problemen met een dynamisch IP-adres vormen het grootste nadeel van het inrichten van een eigen mailserver. Het is daarom niet raadzaam om zo’n server te gebruiken als dagelijkse e-mailserver; de meeste van jouw berichten zouden in de spambox van de ontvanger belanden. Maar ook wanneer hij niet je huidige e-mailservice vervangt, kan een eigen mailserver op Raspberry Pi de moeite waard zijn.

Als je geïnteresseerd bent om meer over de configuratie en het beheer van een mailserver te weten te komen, is het zeker de moeite waard om een eigen e-mailserver op te zetten. Hiervoor bestaat er nauwelijks een betere en goedkopere leeromgeving dan de Raspberry Pi. Met een eigen mailserver kan je ook in een intern netwerk (bijvoorbeeld binnen een bedrijf of organisatie) de absolute data-integriteit over je mails behouden. Een mailserver in een lokaal netwerk garandeert dat de uitgewisselde informatie alleen wordt opgeslagen op de harde schijven van de afzender, de ontvanger en je mailserver.

In een tijd waarin privacybescherming een hot item is, biedt een eigen interne mailserver een veilige mogelijkheid om je berichten op te slaan. Zo hebben alleen de netwerkbeheerders toegang tot het volledige e-mailarchief – en niet de e-mailprovider via wiens mailserver berichten worden verstuurd. Hieronder vind je een uitgebreide lijst van de voor- en nadelen van een eigen Raspberry Pi-mailserver.


Raspberry Pi mailserver: Voordelen

Voordelen

  • Binnen een intern netwerk heb alleen jij toegang tot het volledige e-mailarchief. De berichten bevinden zich alleen op jouw server, zodat anderen jouw toestemming nodig hebben om je e-mails te lezen.
  • Ook buiten een intern netwerk is het mogelijk om te voorkomen dat anderen jouw e-mails lezen: hiervoor moeten afzender en ontvanger een eigen mailserver hebben. Mits de ontvanger van jouw mails ook over een eigen, zelfbeheerde e-mailserver zonder verbinding met een e-mailprovider beschikt, worden alle uitgewisselde data uitsluitend op de beide privé-mailservers opgeslagen.
  • Het versleutelen van e-mails is raadzaam om je data te beschermen, uiteraard ook bij het mailverkeer tussen twee privé-mailservers. Met het oog op de gegevensbeveiliging biedt een zelfgehoste mailserver een extra voordeel: als het mailverkeer via de server van een of meerdere e-mailproviders loopt, kan de provider nog altijd de headerdata meelezen, zelfs wanneer de afzender en ontvanger een PGP-versleuteling gebruiken. Dit komt omdat deze data bij PGP altijd open zijn. Door aan beide zijden een eigen mailserver te gebruiken kunnen jij en je communicatiepartner een dergelijk lek in de databescherming vermijden; de uitwisseling van je berichten blijft privé en onbevoegden kunnen niet meelezen.
  • Je controleert alleen zelf het mailsysteem en kan dus de instellingen van de mailserver-software op Raspberry Pi (of andere mailserver-computer) individueel aanpassen. Bovendien zijn er nauwelijks beperkingen wat betreft de grootte van de bestandsbijlagen of het algemene opslaggeheugen van je e-mailaccounts (mits je over voldoende opslagruimte beschikt die je met de mailserver-computer kan verbinden).
  • Je kan je data synchroniseren (zoals e-mails via IMAP, contacten via CardDAV of kalenders via CalDAV), zodat alle apparaten die verbonden zijn met de mailserver toegang hebben tot dezelfde datasets.
  • Voor domeinen die met de Raspberry Pi-mailserver zijn verbonden, kan je net zoveel verschillende e-mailadressen aanmaken als je maar wilt.
  • Je ontvangt geen reclamemails van e-mailproviders.

Raspberry Pi mailserver: Nadelen

Nadelen

  • Een eigen server betekent ook altijd dat er meer energie moet worden gestoken in de beveiliging. Daarop vormt een mailserver geen uitzondering; die is immers permanent online en kan worden aangevallen. Je zult de software en vooral de beveiligingsprogramma’s daarom regelmatig moeten updaten en controleren om te voorkomen dat hackers zich toegang verschaffen tot jouw server (en hem misbruiken voor het versturen van spam). Bij het beheer van een openbaar toegankelijke e-mailserver dien je daarom ook op de hoogte te zijn van veiligheidsstandaards en je kennis steeds up-to-date te houden.
  • Zoals reeds genoemd, worden uitgaande e-mails bij een internetverbinding met een dynamisch IP-adres zeer waarschijnlijk door de mailservers van de ontvangers als spam aangemerkt en zullen dus in de spambox belanden. Dit kan op twee manieren worden voorkomen:
    • 1. Je maakt voor het versturen van e-mails gebruik van een andere (commerciële) mailserver waarbij je al een e-mailadres hebt. Wanneer je je eigen Raspberry Pi-mailserver al hebt ingericht, kun je een e-mailprogramma gebruiken dat eraan verbonden is, zodat niet jouw eigen server, maar die van je e-mailprovider verantwoordelijk is voor het versturen van berichten.

      Nadeel: Deze methode gaat ten koste van je data-integriteit. De service van een e-mailprovider komt immers tussenbeide, waardoor de uitgaande berichten ook op hun server worden opgeslagen en daar kunnen worden gelezen.
    • 2. Je vraagt een statisch IP-adres aan voor jouw internettoegang. Hiermee lijkt je privé-mailserver op Raspberry Pi al heel erg op professionele e-mailservers, hoewel het niet ondenkbaar is dat jouw statische adres eerst een reputatie moet opbouwen bij de andere servers. Veel mailservers zijn in eerste instantie sceptisch over nieuwe e-mailservers waar zij berichten van ontvangen: je zal eerst moeten bewijzen dat jouw server niet wordt gebruikt voor het versturen van spam.

      Om een volwaardige eigen e-mailserver te kunnen beheren, heb je niet alleen een statisch IP-adres voor je internettoegang nodig, maar ook:
      • een Mail Exchange Resource Record (afgekort MX-record) voor het gebruikte domein. Het gaat hierbij om een invoer in het Domain Name System (DNS) dat jouw mailserver identificeert als zelfstandige server voor de ontvangst van e-mails op een bepaald domein.
      • een PTR Resource Record (PTR-record of Pointer Record) waarmee via ‘reverse lookup’ in het DNS een IP-adres aan de bijbehorende naam wordt gekoppeld.

      Het hebben van een internettoegang met een statisch IP-adres is zeker niet altijd eenvoudig en brengt vaak beduidend hogere kosten voor de internetaansluiting met zich mee.
  • De spamfilters van privé-mailservers zijn minder effectief dan die van gevestigde e-mailproviders, omdat hun filtersoftware door de massa aan verwerkte mails beter ontwikkeld is en spam beter kan identificeren en uitsorteren. In ieder geval kan je met de juiste programma’s ook de spambescherming van je eigen mailserver op Raspberry Pi verbeteren.

Vereisten voor een eigen Raspberry Pi-mailserver

Natuurlijk heb je op zijn minst een e-mailadres nodig waarover je vrij kan beschikken. Hiervoor registreer je een domein. Omdat wij ervan uitgaan dat je (zoals gebruikelijk is) beschikt over een dynamisch IP-adres, leggen wij hieronder uit hoe je een mailserver op je Raspberry Pi installeert met zo’n IP-adres.

Voor een Raspberry Pi e-mailserver heb je naast de kleine computer nog het volgende nodig:

  • het Raspbian besturingssysteem
  • een (micro-)SD-kaart (van minstens 4 GB – meer is beter)
  • een permanente internetverbinding (het best via een netwerkkabel, anders via WLAN)
  • een permanente voeding voor de Raspberry Pi (via micro-USB-adapter)
  • voor toegang op afstand tot de terminal van de Raspberry Pi: een computer met SSH-Clientsoftware (zoals PuTTY of OpenSSH) die met de Raspberry Pi is verbonden (geef hiervoor eenvoudig het IP-adres van de Raspberry Pi in de SSH-Client aan)

    of

    een monitor en invoerapparaat voor het bedienen van de terminal, als je geen SSH-Client wilt gebruiken.

Je kan ook een ander opslagmedium (zoals een USB-stick of een externe harde schijf) gebruiken als je meer opslagruimte op je Raspberry Pi-mailserver wilt hebben.

Om te zorgen dat een mailserver onafgebroken online is, moet hij altijd onder hetzelfde adres op internet toegankelijk zijn. Hiervoor dient een statisch IP-adres voor je internetverbinding, maar dat is vaak niet beschikbaar. Je kan ook gebruikmaken van diensten die (vaak gratis) dynamische DNS (DDNS) aanbieden. Met DDNS geeft je jouw mailserver een domeinnaam. Met behulp van een programma wordt deze domeinnaam dan altijd gekoppeld aan het actuele IP-adres van je internetverbinding en fungeert zo als permanent mailserveradres. In verschillende netwerkrouters is zo’n functie al geïntegreerd (bijv. in een Fritz!Box-router); hoe je een DDNS instelt, kan je lezen op de site van de fabrikant.


Raspberry Pi e-mailserver inrichten

Voor je daadwerkelijk begint met het inrichten van de mailserver, leg je eerst een statisch privé-IP-adres binnen je netwerk vast voor de Raspberry Pi. Een mailserver wordt net als een website aangestuurd via een IP-adres op het netwerk. Om altijd voor alle andere e-mailservers bereikbaar te zijn, moet de server altijd hetzelfde adres hebben. Dit vaste IP-adres binnen een lokaal netwerk moet niet worden verward met het eerder besproken statische IP-adres van een internettoegang.


Raspberry Pi mailserver: Statisch privé-IP-adres vaststellen

Statisch privé-IP-adres vaststellen

In je lokale netwerk heeft de Raspberry Pi-mailserver een statisch privé-IP-adres om op elk moment alle uit- en ingaande e-mails te kunnen beheren. Omdat de Raspberry Pi echter in je lokale netwerk gewoonlijk alleen een dynamisch IP-adres toegewezen heeft gekregen, geef je de Raspberry Pi nu een statisch IP-adres.

Om het lokale IP-adres van de Raspberry Pi te veranderen, moet je eerst het huidige (dynamische) IP-adres weten. Je kan het IP-adres zien door bijvoorbeeld op de desktop van het besturingssysteem Raspbian met de muis over het internetsymbool te navigeren. In onze tutorial gebruiken wij 192.168.0.3 als het oorspronkelijke dynamische IP-adres van de Raspberry Pi.

Klik met de rechtermuisknop op het internetsymbool, selecteer de wifi-instellingen en klik in het nu verschijnende venster bij het vervolgkeuzemenu op ‘eth0’. Voer de eerste drie (door punten van elkaar gescheiden) getallenreeksen van het IP-adres in het hiervoor bedoelde veld in – in ons voorbeeld 192.168.0. Vul in het overgebleven laatste veld een getal in dat nog niet aan een ander apparaat in je netwerk is gegeven (in het algemeen zijn alle getallen boven de 100 gereserveerd voor statische IP-adressen). In onze tutorial gebruiken wij hier het IP-adres 192.168.0.101. Nadat je het statische privé-IP-adres hebt ingesteld, start je de Raspberry Pi opnieuw op.


Raspberry Pi mailserver: Citadel/UX

Citadel/UX als mailserver op de Raspberry Pi installeren

In de volgende stap stel je de mailserver op de Raspberry Pi in. Wij gebruiken hiervoor de Groupware Citadel/UX die SMTP als mailserver ondersteunt en een IMAP- en POP3-server bevat. Citadel biedt naast een webmail-gebruikersinterface ook een kalender, adresboek en takenlijst.

Voer de instellingen uit in de terminal en update alle reeds geïnstalleerde pakketten met de volgende commandoregels:

sudo apt-get update

sudo apt-get upgrade

Citadel is zo ingesteld dat IPv4 en IPv6 worden gebruikt als transferprotocols. Zodra het programma signaleert dan IPv6 niet beschikbaar is, wordt het installatieproces afgebroken. Activeer daarom dat protocol met het commando:

sudo modprobe ipv6

en installeer daarna Citadel met de volgende commandoregel:

sudo apt-get install citadel-suite

In het volgende scherm stel je in dat de server op alle adressen wacht op aanvragen door het standaardadres 0.0.0.0 te accepteren. Verdere opdrachtprompts volgen waarmee je kan instellen dat je gebruikmaakt van een interne database voor het beheer van het wachtwoord van Citadel. Vervolgens leg je de admin-gebruikersnaam vast (hier kan je gewoon het voorgestelde ‘admin’ overnemen) en het bijbehorende wachtwoord.

Nu moet je beslissen of je Citadel met de interne (in de groupware meegeleverde) webserver Webcit wilt gebruiken of een al geïnstalleerde Apache-webserver aan Citadel wilt koppelen. De laatste is een verstandige optie als je onze tutorial voor het inrichten van een Apache-webserver op de Raspberry Pi hebt voltooid. Wij leggen hier uit hoe een interne webserver wordt ingesteld en gaan ervan uit dat je kiest voor het gebruik van de algemeen geadviseerde poorten voor een mailserver (stel poortdoorgifte in voor HTTP-Port 80 en HTTPS-Port 443). Tot slot selecteer je de taal waarin de Webcit-webserver moet werken.


Raspberry Pi mailserver: Citadel-mailserver inrichten

Citadel-mailserver inrichten

Start nu Citadel in de terminal met dit commando:

sudo service citadel start

Voer in je webbrowser het statische privé-IP-adres van je Raspberry Pi in (in ons voorbeeld 192.168.0.101), waarna de Citadel-mailserver opent. Je kan nog niet inloggen in het programma, omdat je eerst moet instellen dat Citadel niet IPv6, maar IPv4 moet gebruiken.

Hiervoor ga je opnieuw in de terminal, roep je met het commando

sudo /usr/lib/citadel-server/setup

nogmaals de Citadel-setup op en log je in als admin. Je blijft de gebruikersnaam ‘citadel’ gebruiken en voert het adres 0.0.0.0 wederom in. De rest van de setup-instellingen kunnen onveranderd worden overgenomen. Start tot slot Citadel opnieuw op, zodat alle veranderingen worden opgeslagen.


Raspberry Pi mailserver: Citadel-mailserver met de Raspberry Pi verbinden

Citadel-mailserver met de Raspberry Pi verbinden

Wanneer je een volgende keer Citadel in de browser via het IP-adres van de Raspberry Pi opent, zou je je nu ook met je admin-gebruikersnaam en het bijbehorende wachtwoord moeten kunnen aanmelden. Kies in het menu eerst in het linkerveld ‘Administration’ en klik bij ‘Edit system settings’ op ‘Global configuration’. In deze tutorial stellen we alleen het Simple Mail Transfer Protocol (SMTP) in dat je nodig hebt om berichten te versturen. Voor het ontvangen en ophalen van berichten dien je op dezelfde wijze ook IMAP of POP3 nog te configureren.

Selecteer ‘SMTP’. Hier zie je drie poorten die de Citadel-mailserver gebruikt. Om deze te kunnen gebruiken, moet je eerst zorgen dat ze ook zijn vrijgegeven door je router. Noteer de drie poortnummers en configureer vervolgens je router.

Wanneer je het adres niet weet, voer je in de Windows-opdrachtprompt het commando ‘ipconfig’ in en roep je het adres op dat onder ‘Standaardgateway’ staat; meestal is dit 192.168.0.1 of 192.168.178.1. Log nu in op de configuratiepagina van de router. Als je in het verleden nog niet je gebruikersnaam en wachtwoord hebt gepersonaliseerd, vind je op RouterPasswords.com veel modellen en hun standaardinstellingen. Zodra je in de configuratie-instellingen van de router bent, ga je naar het menu voor de poortdoorgifte (‘port forwarding’). Hier voer je het IP-adres van de Raspberry Pi in, inclusief de nummers van de drie poorten. Je moet ook nog port 80 creëren voor je webmail-interface. Nu zijn alle basisfuncties in Citadel geconfigureerd en kan het programma dienstdoen als mailserver op je Raspberry Pi.


Raspberry Pi mailserver: Domeinnaam verbinden

Domeinnaam verbinden met het IP-adres van de Raspberry Pi-mailserver

Om de Raspberry Pi-mailserver permanent online toegankelijk te maken via een adres moet je je aanmelden bij een DDNS-service, daar een domeinnaam registreren en deze verbinden met Citadel. De domeinnaam moet je registreren als ‘DNS Host (A)’ met je huidige IP-adres, dat je van jouw provider toegewezen hebt gekregen. Dit IP-adres kan je bijvoorbeeld vinden op www.whatsmyip.org of bij vergelijkbare online services.

Wanneer je de geregistreerde domeinnaam hebt ingevoerd in je browser, opent de pagina van je Citadel-mailserver. Nu hoef je alleen nog in het menu onder ‘Administration’ ‘Domain names and Internet mail configuration’ op te roepen. Hier vul je onder ‘Aliases for this machine’ de domeinnamen in en voeg je deze toe. Ga tot slot via ‘Administration’ in het menu naar ‘Edit system preferences’. Hier verwijder je eerst de ‘node name’ en voer je in plaats daarvan onder ‘Fully qualified domain name’ jouw domeinnaam in. Wanneer je nu de instellingen hebt opgeslagen, klik je nogmaals op ‘Administration’ en kies je daar de herstart van de Citadel-mailserver.

Nu is het zover: jouw eigen mailserver op Raspberry Pi is klaar voor gebruik en kan via de geïnstalleerde webmailer worden gebruikt. Je kan hem natuurlijk ook met een ander e-mailprogramma gebruiken (Thunderbird, Outlook, enz.) en Citadel met andere functies uitbreiden.


In een notendop: waarvoor dient een eigen Raspberry Pi-mailserver?

Wanneer je de Raspberry Pi als mailserver gebruikt in combinatie met een internetaansluiting met een statisch IP-adres kom je zo dicht mogelijk in de buurt van een professionele e-mailserver. In dat geval is het raadzaam om niet alleen de hierboven genoemde noodzakelijke instellingen (PTR- en MX-record) uit te voeren, maar ook een SPF resource record (SPF-record) en DKIM (DomainKeys) te installeren. Dit verkleint de kans dat uitgaande mails van jouw Raspberry Pi e-mailserver door andere mailservers als spam worden beoordeeld. Maar zoals vermeld, moet een mailserver altijd eerst een reputatie opbouwen, zodat de berichten die via hem zijn verstuurd minder vaak als spam worden aangezien en dit is moeilijk te bereiken met een privé-mailserver, die relatief weinig wordt gebruikt.

Als je internettoegang alleen een dynamisch IP-adres heeft, kan je de mailserver op de Raspberry Pi via DDNS tenminste met de basisfuncties inrichten – zelfs als je mails waarschijnlijk vaak in de spambox van de ontvanger belanden. Daarom is het belangrijk om regelmatige ontvangers van je berichten te laten weten dat ze de spamfilter zo configureren dat jouw mails niet in de spambox terechtkomen. Dit is meestal alleen de moeite waard als er een overzichtelijke groep door jouw Raspberry Pi-mailserver moet worden bereikt (bijvoorbeeld binnen een bedrijf, werkgroep, enz.). De inrichting van een interne mailserver loont echter vooral de moeite wanneer alle deelnemers verbonden zijn via hetzelfde lokale netwerk.

Een van de grote voordelen van een eigen mailserver zonder verbinding met een e-mailprovider is de absolute data-integriteit. Wanneer je er niet zoveel belang aan hecht om een eigen e-mailserver te kunnen opzetten en beheren, zijn de inspanningen en de kosten van het toezicht en het updaten van de server nauwelijks de moeite waard. In dat geval kan je voor je e-mailverkeer beter gebruikmaken van een grotere mailprovider. Anderszins hebben vooral mensen die geïnteresseerd zijn in de techniek en ervan willen leren profijt van een privé-mailserver om zo met de Raspberry Pi de techniek achter een e-mailserver te leren begrijpen.