Geen Gmail of Apple mail, maar je eigen MailPlus server

banner_notebook_mailplus@2x
Webmail lijkt fantastisch

Gmail of andere gratis webmail toepassingen zijn fantastisch. 10GB of zelfs meer aan opslagruimte; 100% beschikbaarheid van mail, waar je ook ter wereld bent. Je weet ook dat je er iets voor moet laten, namelijk je biedt in het geval van Gmail aan Google de mogelijkheid om jouw emails – jouw data – te gebruiken, deze door te verkopen aan data vendors of advertenties aan je te richten gebaseerd op je laatste berichten.

Je eigen mail server is zo gek nog niet

Waarom zou je niet zelf je eigen mail server beheren in plaats van de ‘gratis’ service van de big tech aanbieders zoals Google of Apple? Met je eigen mail server weet je waar je data staan, namelijk thuis of in je eigen kantoor. Je weet wie er mee speelt, namelijk jijzelf en jij bepaalt wat er met je mails en data gebeurt. Niemand anders. Bovendien is het leuk om te weten dat jouw mail alleen langs jouw ogen gaat en – mits goed geconfigureerd – niet langs die van andere bedrijven zoals Google.

Het nadeel van een eigen mailserver is daarentegen dat Google een extreem grote mate van bedrijfszekerheid biedt. Valt een server uit in een datacentrum, dan neemt een ander datacentrum het over. Ook is Google ongeëvenaard snel en is hun spam filter zeer goed. Over dat laatste gesproken; dit kun je zelf met het MailPlus Server pakket van Synology op de NAS instellen zodanig dat spam tot het verleden behoort.

Privacy en cyber security

Zoals gezegd is privacy een belangrijke reden om voor je eigen mailserver te gaan. Immers, Google is verplicht om aan dataverzoeken van de autoriteiten mee te werken en stuurt, zonder dat jij het moet weten, de informatie naar de inlichtingendienst. Gebruik je je eigen mail server dan zullen ze thuis bij je langs moeten komen. Niet dat je dit moet doen om illegale zaken uit te voeren – daarvoor is dit bericht niet bedoeld – maar wel om zelf zeggenschap te houden over wie wat met jouw data – jij dus – doet.

Er is nog een reden om te kiezen voor een mail server en dus niet voor web gebaseerde mail service zoals gmail. Hackers breken in op email accounts door te ‘phishen’ waarbij zij links naar nep login websites toesturen met het doel om het wachtwoord te ontfutselen. Anders dan gmail, gebruiken traditionele mail servers het web niet en maken deze gebruik van andere protocollen en poorten voor gegevensoverdracht. Dit geldt niet alleen voor de mailserver die draait op het domein dat door je webhosting-provider geleverd wordt, maar ook voor de mailserver van de NAS.

Bovendien als je eenmaal een NAS apparaat thuis hebt, dan staat de hardware er ‘voor niks’ en levert het opereren van een mailserver nauwelijks extra kosten op. De mailserver applicatie van Synology is geïntegreerd met Calendar (voor agendabeheer), Note Station of Office (de eenvoudige MS Office versie van Synology zelf). Dat maakt het handig om mail en agendabeheer in één hand te houden. Het MailPlus Server pakket van Synology biedt vijf licenties zodat je vijf email adressen kunt beheren. Het pakket is overigens niet geheel gratis. Er komen namelijk kosten bij voor de aanschaf van de domeinnaam, meestal iets van € 1,00 in het eerste jaar en daarna circa € 10 in het volgende jaar.

Installeren van de mailserver
  1. Log in op de NAS
  2. Installeer het pakket MailPlus Server vanuit het Package Center; niet het verouderde legacy pakket Mail Server
  3. Bij het tabblad Email-Bezorging stel je SMTP-verificatie in. De domeinnaam is gelijk aan de naam die aan je IP adres is verbonden. De hostnaam (FQDN) is gelijk aan je domeinnaam voorafgegaan door mail (mail.domeinnaam.nl). Voor de maximumgrootte kun je 10MB aanhouden; meer kan ook maar andere providers pakken hogere bestandsgroottes vaak niet. Klik hier voor een programmaatje in python om te checken of de domeinnaam voldoet aan de FQDN.
  4. Voor verzending van de mails door MailPlus Server zelf, moet je wel een DNS server instellen. Hiervan maken we in deze instructie voor nu geen gebruik. We gaan hier uit van verzending via de internet service provider (ISP), met behulp van de zogenaamde relay service. Voer het smtp adres in van je ISP, alsook je gebruikersnaam en wachtwoord.
  5. Geef bij het tabblad Levering aan dat je SMTP inschakelt en alleen op beveiligde wijze (SMTP-LTS). Verder kun je IMAP-TLS aanvinken en IMAP uitgevinkt laten.
  6. Geef bij het tabblad domein aan welke gebruikers een email adres krijgen. Let erop dit zijn er maximaal vijf.
  7. Vergeet niet de DNS instellingen bij de webhoster van je domeinnaam aan te passen. Maak een MX record aan met label (of naam of prefix) @ (dat betekent alles wat voor je domeinnaam komt en te maken heeft met mail). De waarde is 10 gevolgd door een spatie en je domeinnaam. Maak een CNAME record aan met als label mail en waarde je_domeinnaam.
  8. Het tabblad Beveiliging bevat de meeste configuratie instellingen.
    • Spam filter beveiliging aanvinken.
    • Antispam instellingen bewerken en spam-assassin regels toevoegen. Op internet zijn er diverse regels te downloaden. Bijvoorbeeld bogus-virus-warnings, mime-validate, 70-zmi-german. Je kunt ook zelf regels toevoegen.
    • Antivirus engine instellen. Clam-AV is een gratis antivirus provider die prima werkt. Je kunt gerust alles aanvinken tot en met Google safebrowsing database.
    • SPF record instellen: zet SPF aan in menu beveiliging/verificatie. Voeg record toe aan DNS (yourhosting): TXT met waarde “v=spf1 a mx ip4:je_ipadres ip6:je_ipadres -all“. Bij het ipv6 adres hoef je alleen de range op te geven. Deze kun je bepalen via deze site of via je internet provider. Onder veld ‘naam’ @ invoegen. Met SPF weet de ontvanger dat de mail ook echt van het adres afkomstig is waarvan die zegt dat het deze is. Immers, het IP adres correspondeert met de afzender. Het is dus tevens van belang om het IP adres te wijzigen wanneer je wisselt van internet aanbieder en een ander IP adres krijgt toegewezen. Doe je dat niet, dan is de kans groot dat de door jou verzonden emails aangemerkt worden als spam of überhaupt niet aankomen. Het achtervoegsel ‘-all’ geeft aan dat emails waarvan de oorsprong niet correspondeert met het opgegeven IP adres moeten worden verwijderd. Wanneer je niet wilt dat emails worden verwijderd, maar als spam aangemerkt worden, dan kun je het achtervoegsel ‘~all’ gebruiken. Noot: met de introductie van DKIM en DMARC is het beter om ~all als soft fail prefix te gebruiken in plaats van -all als hard prefix. Zie bijgaand artikel.
    • DKIM aanzetten en dan onder tabblad domein, je domeinnaam bewerken en geavanceerd aanklikken. DKIM selectorvoorvoegsel aanmaken (bv “ds218-bpe” –> je kunt de syntaxis zelf bedenken). Hiermee genereer je een openbare sleutel. En deze plak je in een TXT veld op de DNS server bij je webhosting service provider. Dit doe je door de waarde in te voegen: v=DKIM1;k=rsa;p=de_openbare_sleutel en meteen hierna de openbare sleutel geplakt…. Label (of prefix/naam) “ds218-bpe._domainkey”
    • DMARC: eveneens stel je dit in onder menu beveiliging/verificatie. In de DNS server een TXT veld opvoeren met “_dmarc” als label (‘naam’ of ‘prefix’) opvoeren. De waarde is “v=DMARC1; p=none; pct=100” als waarde in het begin opvoeren. Vervolgens kan p=none gewijzigd worden in p=quarantine met bijvoorbeeld pct=5 een laag percentage i.c. 5%. Uiteindelijk stel je het beleid scherp in door policy “reject” op te voeren. Voorbeeld “v=DMARC1; p=reject; rua=mailto:abc@domeinnaam.nl; ruf=mailto:abc@domeinnaam.nl; ri=86400”.
Beveilig verzenden en ontvangen van mail via MTA-STS protocol

Met DKIM/SPF/DMARC ga je phishing, spam, virussen en andere malware tegen doordat je de afzender, de verzender en de inhoud van een bericht valideert. Daarvoor worden diverse nieuwe records in de DNS-informatie opgenomen. Met DKIM/SPF/DMARC is het mailbericht beveiligd en weet de ontvanger dat de mail van de juiste afzender afkomstig is. Maar nog steeds verloopt de mail zelf via het (in principe) onbeveiligde SMT protocol. Hoewel ondertekening met DNSSEC voor deze toepassing niet strikt noodzakelijk is, is dat wel een belangrijke toevoeging. Met het MTA-STS en DANE protocol is het mogelijk om de verbinding zelf te beveiligen en te voorkomen dat op de verbinding ingebroken wordt. Beide protocollen werken op een andere manier maar gaan uit van certificaten en https.

    • MTA-STS. Dit is niet een instelling die via de NAS opgevoerd moet worden, maar via de web interface van de NAS. Zie ook verdere nuttige informatie over MTA-STS op frankysweb (https://www.frankysweb.de/mta-sts-strict-transport-security/).
      • Stel een mta-sts policy op. Dit is een txt bestand en kun je aanmaken via kladblok. Kies eerst voor mode: testing en als dit goed functioneert, dan mode: enforce. Een voorbeeld van een policy ziet er zo uit:

version: STSv1
mode: testing
mx: mail.domeinnaam.nl
max_age: 86400

      • Stel de webserver in met behulp van een virtuele host (via webstation in NAS) zodanig dat deze wijst naar de map web/mta-sts. Een verdere instructie hierover, zie het bericht over je eigen website hosten. Je kunt de map mta-sts aanmaken met de bestandsverkenner File Station. In de map mta-sts maak je vervolgens de map “.well-known” aan met daarin het bestand mta-sts.txt. Het van buiten oproepbare pad moet luiden: https://mta-sts.adagia.eu/.well-known/mta-sts.txt (check dit door in te tikken in de browser). Het pad mag niet anders heten anders weten andere mailservers niet hoe ze de configuratie van jouw mail server kunnen lezen. Via deze https verbinding kan met het domein van de (mail) server zelf contact worden gelegd zonder dat andere DNS servers hoeven te worden geraadpleegd. De verbinding tussen de mail ontvangers vindt nu dus echt tussen de domeinen zelf plaats.
      • Maak een CNAME record aan met daarin het label “mta-sts” die verwijst naar je domein naam.
      • Maak ook twee TXT records aan in de DNS server van je webhoster:
        • Naam “_mta-sts”; waarde “v=STSv1; id=202001031637”. Het ID nummer mag je zelf bepalen maar moet je wel steeds aanpassen wanneer je de configuratie policy aanpast.
        • Naam “_smtp._tls”; waarde “v=TLSRPTv1; rua=mailto:mailadres@domeinnnaam.nl”.
      • Vervolgens test je via diverse test-sites of de instellingen correct zijn. Het testen van SPF, DKIM en DMARC kun je via mxtoolbox doen. Het testen van de MTA-STS instellingen kan via socketlabs. Andere test sites zijn bijvoorbeeld luxsci en hardenize.
      • Wanneer de instellingen succesvol opereren, kun je na verloop van tijd de mta-sts policy definitief maken. Een voorbeeld ziet er als volgt uit:

version: STSv1
mode: enforce
mx: mail.domeinnaam.nl
max_age: 2592000

    • De instellingen voor inhoudscan en gegevensbeveiliging kun je nog verder instellen maar zijn m.i. niet noodzakelijk.

Een uitgebreide beschrijving van de installatie van MailPlus Server is te vinden op de site van pfbarrett.

Update DANE protocol (3 december 2022)

Met de upgrade van DSM besturingssysteem naar versie 7.1 en hoger, heeft Synology het MailPlus server pakket opgewaardeerd. Het tabblad ‘Beveiliging’ is uitgebreid met het DANE protocol. De configuratie vindt plaats onder het kopje DANE onder DMARC. De site van zorgeloos online geeft volgende informatie over DANE.

Wat is Dane?

DANE, kort voor DNS-based Authentication of Named Entities, is een protocol voor het veilig publiceren van publieke sleutels en certificaten. Daarbij bouwt deze standaard verder op de cryptografisch beveiligde DNS-infrastructuur die met DNSSEC wordt aangelegd. Voor DANE is het DNS-protocol uitgebreid met het TLSA record. Dat kan worden gebruikt om sleutelinformatie — bijvoorbeeld een hash code, een digitaal uittreksel — aan een adres/protocol/poort-combinatie te koppelen. Op die manier kan van elke versleutelde internet-service de authenticiteit van het server-certificaat via DNS worden geverifieerd. Komt de hash code van het server-certificaat niet overeen met de hash code in het TLSA record, dan weet de client dat de verbinding — ondanks de versleuteling — niet te vertrouwen is.

Hoe beveiligt DANE het mailtransport?

DANE voor mail is een zogenaamd opportunistisch protocol. Dat wil zeggen dat een client die zelf DNSSEC, DANE en STARTTLS ondersteunt zijn verbindingen met een server die STARTTLS-ondersteuning en TLSA records aanbiedt moet versleutelen. Maar ontbreekt een van deze onderdelen, dan vindt noodgedwongen een fallback naar TLS zonder DANE of zelfs een volledig onbeveiligd transport plaats. Voor mail is het afleveren van berichten immers altijd belangrijker geweest dan de beveiliging van het transport.

Wel impliceert de aanwezigheid van een TLSA record dat de mail server TLS ondersteunt, waarmee een downgrade-aanval op de STARTTLS capability van de server wordt voorkomen. De Postfix mail server (na Exim de meest gebruikte MTA) kan zo geconfigureerd worden dat deze DANE-authenticatie doet alvorens mail af te leveren bij een MX gateway. Dat betekent dat het aanmaken van een TLSA record voor de MX gateway op poort 25 direct een concrete verbetering van de veiligheid oplevert.

De onderstaande figuur (bron: internet.nl) laat zien hoe de verbinding wordt opgezet met gebruikmaking van de DNS server. In essentie weet de verzendende mail server dat de ontvangende mail server is wie hij is omdat de DNS server de sha256 vingerafdruk van de ontvangende mail server communiceert aan de verzendende mail server. Daarmee kan de verzendende mail server controleren dat de vingerafdruk van de ontvangende mail server correct is. Op de github-website van internet.nl staat het goed uitgelegd. In praktijk werkt DANE prima samen met MTA-STS. Testen op internet.nl of hardenize.com tonen uitstekende resultaten.

how dane works
Figuur 1 Werking van DANE protocol
Instelling van DANE op de NAS

In de figuur is te lezen dat de vingerafdruk van de domeinnaam (end-entity certificate) anders is dan de vingerafdruk van het root certificate. Bij het opmaken van het TLSA record luistert de configuratie heel nauw.

  • Download het certificaat van de mailserver. Exporteer in het configuratiescherm het certificaat dat voor de mail server gebruikt wordt. Onder het dropdown menu van de knop actie bevindt zich de export functie.
printscreen configuration certificates synology nas
Figuur 2 Configuratiescherm Certificaten
  • Pak het certificaat uit en open in kladblok – of een andere editor – het cert.pem. De tekst plak je vervolgens op in het veld ‘Enter/paste PEM format X.509 certificate here:’ op deze webpagina om de hash waarde van het bestand te bepalen. Neem de keuzes voor usage field, selector field en matching-type field over zoals hieronder aangegeven. Geef tenslotte het poortnummer aan waarop de mail server beschikbaar is alsook het protocol (TCP) en de domeinnaam waarop de mail server beschikbaar is. Zie ook het voorbeeld hieronder.
printscreen website duque computing hash value certificate
Figuur 3 Voorbeeld berekening hash waarde van certificaat
  • Maak een TLSA record aan in de DNS service provider en voeg de waarde toe die op de website van huque.com gegenereerd is op basis van de instelling in de voorgaande stap. Doe dit als volgt: geef in het TLSA record als naam op: _[poortnummer]._[protocol]. Geef als waarde op de betreffende keuzes voor het usage field, selector field en matching-type field gevolgd door de gegenereerde hash waarde.
printscreen yourhosting DANE TLSA
Figuur aanmaken TLSA record op de DNS server
  • Je kunt de hash waarde ook genereren via de command line van linux. Open een terminal en voer volgende code in:

openssl x509 -in cert.pem -pubkey -noout | openssl rsa -pubin -outform der | sha256sum

printscreen command line linux openssl sha256 generate
Figuur genereren van de code met openssl sha256
  • Hieronder zie je een voorbeeld van het testen van de opgegeven waarde door een tegencheck op het TLSA record op de DNS server.
printscreen command line linux openssl sha256
Figuur terminal opdrachten en output
  • Wanneer je hebt gevraagd om mail rapporten te ontvangen voor het gebruik van sts protocol en tlsa protocol, dan zul je regelmatig meldingen ontvangen over ontvangst van de verstuurde  en met DANE gesigneerde emails. Hierin staat het TLSA record vermeld dat je op de DNS server hebt aangegeven.
Overgang van Gmail naar je eigen mailserver

Je kunt het beste geleidelijk de overstap naar je eigen mailserver maken. Terwijl je een forward instelt van je webbased email account (bv gmail) naar je eigen mail account, kun je voor een periode van bijvoorbeeld 6 maanden kijken hoe MailPlus Server functioneert. Daarnaast geef deze overgangsperiode de mogelijkheid om je contacten te verwittigen dat je je email adres gaat wijzigen. Je kunt bijvoorbeeld een standaardboodschap achterlaten in gmail. Vervolgens kun je na verloop van tijd je gmail account verwijderen.

Spamassassin

SpamAssassin is een open source computerprogramma dat wordt gebruikt voor het herkennen en onderscheppen van spam e-mail. Klik om een .cf-bestand dat SpamAssassin-regels bevat te importeren/exporteren. SpamAssassin-regels zijn open-sourceregels die zich richten op doelspecifieke spamtypes. Het geeft een score aan de mail in hoeverre de mail spam is of niet. Hoe lager de score, hoe geloofwaardiger de mail. Je kunt een drempelwaarde instellen boven welke score de mail moet worden aangemerkt als spam.

spamassassin menu

Het is veilig om de spam-mail zelf in een bijlage in te kapselen zodat deze mail niet gelezen of uitgevoerd kan worden, tenzij de gebruiker bewust een keuze maakt om de mogelijke spam-mail te openen.

Je kunt spam/non-spam filters instellen die gebaseerd zijn op de adressen van afzenders en ontvangers. Je kunt ook met trefwoorden aan de slag om mails die een van de trefwoorden bevatten, als spam aan te merken.

Het instellen van spamassassin vergt wat trial-and-error. Het filter staat niet meteen goed afgesteld. Sommige mails belanden in de spam-map maar zijn OK, de zogenaamde false positives. Voor andere mails is het omgekeerd: deze herkent het filter nog niet als spam, maar die zijn het wel (false negatives).

Zoals gezegd, hanteert Spamassassin een algoritme dat punten geeft aan de ‘spam-kwaliteit’. Hoe hoger de score, hoe groter de kans dat het om spam-mail gaat. De spam-score is af te lezen in de headers van de email. Ga hiervoor naar de headers van de email (bij MS Outlook onder menu Bestand / Eigenschappen; bij Thunderbird onder de menu optie Meer / Bronbestand). Je leest dan de score af bij X-Synology-Spam-Status.

Hieronder een voorbeeld van informatie uit de header bij een willekeurig LinkedIn mailtje. De score is -8,7 wat duidt op een juiste email. De regels van de Dutch Spamassassin Rules (DSR) zijn gericht op de Nederlandse mail-omgeving. Het is dan ook geen toeval dat de DSR aan LinkedIn een hoge kwaliteit toekent gezien het veelvuldige gebruik van LinkedIn in Nederland (“DSR_LINKEDIN_PFROM5xx” met score 5).
X-Synology-Spam-Status: score=-8.7093994001033, required 2, autolearn=ham, DSR_LINKEDIN_PFROM5xx 5, MX_INVALID 0.5, WL_MAILSPIKE_H2 0, ZERO_FONT 0.3, R_SPF_ALLOW -0.2, TO_DN_ALL 0, DKIM_TRACE 0, RCVD_IN_DNSWL_MED -2.3, HTML_MESSAGE 0.001, RCVD_IN_BONDEDSENDER 0, DMARC_POLICY_ALLOW -0.5, FORGED_SENDER 0.3, RCVD_COUNT_ZERO 0, MIME_TRACE 0, IP_SCORE -1.8003994001033, __NOT_SPOOFED 0, ASN 0, FROM_NEQ_ENVFROM 0, NO_RECEIVED -0.001, __LIST_PARTIAL 0, R_DKIM_ALLOW -0.2, FROM_HAS_DN 0, TO_MATCH_ENVRCPT_ALL 0, HTML_SHORT_LINK_IMG_1 0.001, MIME_GOOD -0.1, RCVD_IN_HABEAS 0, HAS_LIST_UNSUB -0.01, RCPT_COUNT_ONE 0, MANY_INVISIBLE_PARTS 0.3, HTML_MISSING_CTYPE 0, WHITELIST_DMARC -7, RWL_MAILSPIKE_POSSIBLE 0, WHITELIST_SPF_DKIM -3, __NOT_A_PERSON 0

Reverse DNS instellen

Reverse DNS (rDNS) is de methode om een IP-adres om te zetten in een domeinnaam, in tegenstelling tot het omzetten van een domeinnaam in een bijbehorend IP-adres zoals je zou doen bij een traditionele DNS-zoekopdracht. Omgekeerde (=reverse) DNS-lookups worden uitgevoerd door mailservers om er zeker van te zijn dat de andere mailserver waarmee ze te maken hebben, is wie ze zeggen te zijn.Kortom, dit DNS pointer record (PTR) biedt de domeinnaam aan die aan een IP-adres is gekoppeld. Een DNS PTR-record is dus precies het tegenovergestelde van het ‘A’-record (zie blog over webhosting), dat het IP-adres bevat dat aan een domeinnaam is gekoppeld. Dit PTR record vertelt andere mailservers dat het IP-adres van uw mailserver gezaghebbend is voor het verzenden en ontvangen van e-mail voor uw domein.

PTR-record wordt derhalve gebruikt om reverse DNS-lookups uit te voeren. Deze PTR records worden geconfigureerd binnen de domeinen Adres en Routeringsparametergebied (in-addr.arpa). Als er geen PTR-record is ingesteld, is een omgekeerde DNS-lookup niet succesvol. Dit betekent dat de betreffende verzendende mail server niet afdoende kan worden geauthenticeerd door de ontvangende mail server met het risico dat de mail wordt geweigerd of een verhoogde spam-score krijgt. Lees verder in dit artikel over het nut van reverse DNS lookup.Je hebt een A-record voor de MTA en een bijpassende MX-record. Voeg ook een PTR toe.Herhaal dit voor elke MTA die je wilt gebruiken.

Je kunt reverse DNS niet instellen via de DNS provider maar bij je internet provider. Deze is namelijk degene die kan bevestigen dat het IP adres correspondeert met de host naam van de mail server. Meld de host naam van de mail server aan bij je internet provider (uiteraard in FQDN format) en vermeld dezelfde host naam in de SMTP banner. In de figuur hieronder is ter illustratie aangegeven hoe de instelling voor mijn mail server is opgevoerd in het configuratiescherm van het Synology Mailplus Server package van de NAS.

schermafbeelding 2023 09 29 000433
Instelling host naam en SMTP banner van mail server

Op mxtoolbox.com kun je de instellingen van de mail server testen. Zie onderstaande figuur.

mail Instellingen testen op mxtoolbox
mail instellingen testen op mxtoolbox

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *