Hoe stel je Postfix DKIM in 2026 in (OpenDKIM & Rspamd)

door

Laatst bijgewerkt:
13 leestijd: 13 minuten
Hoe stel je Postfix DKIM in 2026 in (OpenDKIM & Rspamd)

Belangrijkste Conclusies

  • Postfix heeft geen ingebouwde DKIM-ondertekenaar, dus voeg je een milter toe (OpenDKIM of Rspamd) die elk uitgaand bericht ondertekent voordat het de server verlaat.
  • OpenDKIM werkt nog steeds voor het ondertekenen van e-mails, maar er is de afgelopen jaren weinig activiteit geweest bij de ontwikkelaars. Kies deze optie voor eenvoudige installaties met één domein, waarbij je kunt controleren of de huidige distributie dit ondersteunt, en geef de voorkeur aan Rspamd voor e-mail met meerdere domeinen of voor productieomgevingen.
  • Gebruik minimaal 2048-bits RSA-sleutels; 1024-bits sleutels worden volgens RFC 8301 niet meer aanbevolen. Geef de voorkeur aan Ed25519 als zowel uw MTA/milter als uw DNS-provider dit ondersteunen.
  • De meeste fouten met de melding „no signature“ zijn te wijten aan een probleem met de socket of de machtigingen. Als uw Postfix smtpd in een chroot-omgeving uitvoert (wat vaak voorkomt bij sommige Debian/Ubuntu-pakketten), plaats de OpenDKIM-socket dan in de spool-map van Postfix en zorg ervoor dat de gebruiker „postfix“ er toegang toe heeft (bijvoorbeeld door „postfix“ toe te voegen aan de groep „opendkim“).
  • Het is niet voldoende dat DKIM-verificatie slaagt. DMARC vereist consistentie: je ondertekeningsdomein moet dus overeenkomen met de From:-header, en de sleutels moeten minstens één keer per jaar worden vernieuwd.

DKIM in Postfix is de cryptografische handtekening die je aan uitgaande e-mail toevoegt, zodat ontvangende servers kunnen controleren of het bericht daadwerkelijk afkomstig is van jouw domein en tijdens het verzenden niet is gewijzigd. 

Postfix doet dit niet vanzelf. Je voegt een ‘milter’ (een e-mailfilter) toe die elk bericht ondertekent zodra het je server verlaat.

Deze handleiding leidt je stap voor stap door het volledige installatieproces van Postfix DKIM in 2026: van het kiezen van je milter en het genereren van moderne sleutels tot het integreren ervan in Postfix en het rouleren van sleutels voordat ze een risico vormen.

OpenDKIM versus Rspamd: welke moet je in 2026 gebruiken?

Voordat je ook maar één bericht kunt ondertekenen, moet je de milter kiezen die het ondertekenen uitvoert. OpenDKIM en Rspamd zijn in 2026 de twee meest gangbare keuzes voor DKIM in combinatie met Postfix.

Beide zullen je uitgaande e-mail correct verifiëren. Ze verschillen echter in de mate waarin ze van je vragen om ze te laten draaien, en in de mate waarin je er in de toekomst op kunt vertrouwen.

CriteriaOpenDKIMRspamd
OnderhoudsstatusEr is weinig activiteit in de upstream; laatste stabiele release 2.10.3 (mei 2015); de 2.11.0-branch bevindt zich in de bètafase. Debian Testing heeft het gemarkeerd voor automatische verwijdering (juni 2026) vanwege een fout in de afhankelijkheid van libmemcached.Actief ontwikkeld, regelmatige releases
Wat het doetAlleen DKIM-ondertekening/verificatieDKIM-ondertekening plus volledige spamfiltering
Complexiteit van de installatieEenvoudig, met één doelMeer bewegende onderdelen aan de voorkant
Postfix-integratieMilter (aansluiting)Milter (proxy-socket)
WebinterfaceGeenIngebouwd dashboard

OpenDKIM ondertekent de e-mail op de juiste manier, en miljoenen servers zijn er op dit moment van afhankelijk. Er kleeft echter een onderhoudsrisico aan dat je goed moet afwegen voordat je erop gaat bouwen. 

De laatste stabiele upstream-release was 2.10.3 op 12 mei 2015. De 2.11.0-tak, waarin ondersteuning voor Ed25519 werd toegevoegd, is nooit uit de bètafase gekomen. OpenDKIM ondertekent e-mail nog steeds betrouwbaar en wordt nog steeds door de grote distributies meegeleverd, maar Debian testing heeft versie 2.11.0~beta2 gemarkeerd voor automatische verwijdering (momenteel gepland voor juni 2026) vanwege een transitief afhankelijkheidsprobleem met libmemcached, niet omdat de upstream-ontwikkelaars het project op zich hebben opgegeven. Controleer de huidige pakketstatus van uw distributie voordat u OpenDKIM inzet voor langdurig productiegebruik.

Je kunt het vandaag nog wel gebruiken, maar je bouwt voort op software waarvan de upstream al tien jaar geen stabiele release meer heeft uitgebracht, en dat is het risico op de lange termijn waarmee je rekening moet houden. 

Rspamd is het actief onderhouden alternatief. Het ondertekent DKIM en filtert spam vanuit één enkele milter, zodat je één dienst draait in plaats van twee als je ook bescherming tegen inkomende e-mail wilt. Postfix is de meest gangbare MTA in combinatie met Rspamd, en stacks zoals Mailcow vertrouwen erop voor DKIM-ondertekening in plaats van op OpenDKIM. 

Zo maak je een keuze:

  • Kies OpenDKIM als u één domein beheert en de zo eenvoudig mogelijke configuratie wilt met DKIM-ondertekening en verder niets.
  • Kies voor Rspamd als u meerdere domeinen beheert, productiemail verstuurt of gebruikmaakt van een stack zoals Mailcow of iRedMail.

Hoe dan ook, beide manieren worden hieronder behandeld. Ga direct door naar de methode die je hebt gekozen.

Aanbevolen artikel: Wat is DKIM?

Vereisten voordat u begint

Voordat je een sleutel genereert of een configuratiebestand bewerkt, moet je ervoor zorgen dat deze vier zaken al geregeld zijn 

  • Een werkende Postfix-installatie die al e-mail verstuurt: DKIM ondertekent de e-mail die uw server verstuurt, dus de server moet eerst foutloos werken. Als Postfix nog niet is ingesteld, zorg dan dat dit is gebeurd voordat u verdergaat.
  • DNS-toegang voor uw domein: Uw A- en MX-records zouden al gepubliceerd moeten zijn, en u moet een TXT-record kunnen toevoegen, aangezien uw publieke sleutel daar zal worden opgeslagen.
  • Root- of sudo-toegang op de mailserver: U gaat systeemconfiguratiebestanden bewerken en services opnieuw opstarten.
  • Een DNS-provider die lange TXT-records accepteert: Een sleutel van 2048 bits is langer dan de limiet van 255 tekens voor één TXT-string, dus sommige providers vragen u om deze over twee strings tussen aanhalingstekens te verdelen. Controleer of uw provider dit aankan voordat u de sleutel genereert.

Kies eerst de sleutelgrootte: 2048-bit RSA, of Ed25519 als zowel je MTA/milter als je DNS-provider dit ondersteunen, maar nooit 1024-bit. RFC 8301 verbiedt SHA-1 (rsa-sha1 MAG NIET worden gebruikt) en beveelt 2048-bit RSA aan als minimum op ‘SHOULD’-niveau, terwijl 1024-bit de protocolminimum blijft (er MOET minimaal 1024 bits worden gebruikt). Zwakke sleutels geven ontvangers een reden om uw e-mail te wantrouwen.

Hoe stel je Postfix DKIM in met OpenDKIM?

OpenDKIM is de meest directe manier om DKIM-ondertekening toe te voegen aan een Postfix-server met één domein: één daemon, één sleutel, geen extra onderdelen. Deze vijf stappen zorgen ervoor dat je van een server die onondertekende e-mail verstuurt, overgaat naar een server die elk uitgaand bericht ondertekent met een sleutel die ontvangers kunnen verifiëren. Elke stap bouwt voort op de vorige, dus volg ze in de juiste volgorde 

Stap 1: OpenDKIM installeren

Installeer twee pakketten: opendkim (de ondertekeningsdaemon zelf) en opendkim-tools (de hulpprogramma's die u gebruikt om sleutels te genereren).

Ubuntu 24.04 / Debian 12:

bash

sudo apt update

sudo apt install opendkim opendkim-tools

RHEL / Rocky 9 (OpenDKIM is beschikbaar in de EPEL-repository):

bash

sudo dnf install epel-release

sudo dnf install opendkim opendkim-tools

Schakel de service in zodat deze bij het opstarten wordt gestart:

bash

sudo systemctl inschakelen opendkim

Opmerking: Bij sommige distributies kunnen de naam van de service of de gebruiker/groep afwijken (bijv. opendkim versus opendkim-daemon, opendkim:opendkim versus opendkim:postfix). Raadpleeg de documentatie van je pakket of de systemd-unit als de commando’s niet overeenkomen.

Stap 2: Genereer je DKIM-sleutelpaar

Maak een map aan waarin de sleutels van het domein worden opgeslagen en genereer vervolgens een 2048-bits sleutelpaar:

bash

sudo mkdir -p /etc/opendkim/keys/example.com

sudo opendkim-genkey -b 2048 -d example.com -s selector2026 \

  -D /etc/opendkim/keys/example.com/

Wat elke vlag betekent:

Een vlagBetekenis
-b 2048Sleutellengte in bits – 2048-bits RSA
-d example.comHet domein waarvoor je tekent
-s selector2026De naam van de selector (zie opmerking hieronder)
-D /etc/opendkim/keys/example.com/Waar moeten de uitvoerbestanden worden opgeslagen?

Op de keuzeschakelaar: de -s waarde is het label dat uiteindelijk in je DNS-record terechtkomt. Gebruik een op het jaar gebaseerde naam zoals selector2026. Het kost nu niets en maakt de rotatie later moeiteloos; volgend jaar genereer je selector2027 en blijft het oude record tijdens de overgang actief.

Het commando genereert twee bestanden:

BestandWat het isRegel
selector2026.privéUw persoonlijke ondertekeningssleutelDeel het nooit; zorg ervoor dat het alleen door OpenDKIM kan worden gelezen
selector2026.txtDe openbare sleutel, opgemaakt voor DNSDit is wat je in stap 5 publiceert

Stel nu de eigenaarschap in. Verkeerde machtigingen zijn hier de meest voorkomende reden waarom OpenDKIM niet kan ondertekenen, dus sla deze stap niet over:

bash

sudo chown -R opendkim:opendkim /etc/opendkim/keys

sudo chmod 600 /etc/opendkim/keys/example.com/selector2026.private

Pas de gebruiker/groep aan als je distributie andere namen gebruikt (bijv. opendkim:postfix). Raadpleeg de documentatie van je pakket of de systemd-unit om dit te controleren.

Stap 3: OpenDKIM configureren

OpenDKIM haalt zijn belangrijkste instellingen uit /etc/opendkim.confen gebruikt vervolgens drie kleine opzoekbestanden om te bepalen wat er moet worden ondertekend en met welke sleutel. Stel eerst de kernrichtlijnen in:

Syslogja
UMask2
Moduss
Canonicalisatieontspannen/ontspannen
Aansluitinglocal:/var/spool/postfix/opendkim/opendkim.sock
PidFile/run/opendkim/opendkim.pid
Oversign-koptekstenVan
KeyTable/etc/opendkim/key.table
SigningTablerefile:/etc/opendkim/signing.table
Externe negeerlijst/etc/opendkim/trusted.hosts
InternalHosts/etc/opendkim/trusted.hosts

Wat de belangrijke richtlijnen bewerkstelligen:

RichtlijnWat het regelt
Modus sAlleen ondertekenen. Gebruik ‘sv’ als je ook wilt dat OpenDKIM inkomende e-mail verifieert.
Canonicalisatie versoepeld/versoepeldVerdraagt kleine wijzigingen in witruimte tijdens de overdracht, waardoor handtekeningen geldig blijven. Opmerking: canonieke verwerking heeft geen invloed op de DMARC-afstemming. De DMARC-afstemming hangt af van de vraag of het d=domein in de DKIM-handtekening overeenkomt met het domein in de From:-header, en niet van de instelling voor canonieke verwerking.
AansluitingHier luistert OpenDKIM naar Postfix. Dit pad moet overeenkomen met wat je later in Postfix instelt.
Oversign-kopteksten vanOndertekent de From-header, zodat een aanvaller er geen tweede aan kan toevoegen; een kleine maar effectieve maatregel tegen spoofing.
KeyTable / SigningTableDe twee opzoekbestanden die domeinen koppelen aan selectors en aan sleutels (zie hieronder).

Maak vervolgens de drie opzoekbestanden aan. Elk bestand heeft één taak:

BestandVacatureVoorbeeldregel
ondertekeningslijstKoppelt een afzender aan een selector*@example.com selector2026._domainkey.example.com
key.tableKoppelt die selector aan zijn privésleutel op de schijfselector2026._domainkey.example.com example.com:selector2026:/etc/opendkim/keys/example.com/selector2026.private
trusted.hostsGeeft een overzicht van hosts waarvan uitgaande e-mail moet worden ondertekend127.0.0.1 / localhost / ::1 / example.com

Stap 4: OpenDKIM koppelen aan Postfix

Dit is waar de meeste installaties misgaan, en de oorzaak ligt bijna altijd bij de socket. OpenDKIM maakt een socketbestand aan om met Postfix te communiceren. Als je Postfix smtpd in een chroot-omgeving draait – wat de standaardinstelling is in Debian/Ubuntu-pakketten, maar niet de standaardinstelling van de upstream-versie van Postfix of van RHEL/Rocky – zit het programma opgesloten in /var/spool/postfix en heeft het geen toegang tot een socket buiten die map. De twee maken nooit verbinding, en je e-mail wordt onondertekend verzonden.

De oplossing is om de aansluiting in spoolmap van Postfix te plaatsen en de postfix- toegang te verlenen. Volg deze stappen in de aangegeven volgorde:

1. Maak de map `socket` aan in de spool van Postfix:

bash

sudo mkdir -p /var/spool/postfix/opendkim

sudo chown opendkim:postfix /var/spool/postfix/opendkim

Pas de groep aan als je distributie in plaats daarvan opendkim:opendkim gebruikt.

2. Voeg de postfix gebruiker toe aan de opendkim groep zodat deze de socket kan lezen:

bash

sudo gpasswd -a postfix opendkim

3. Controleer het pad naar de runtime-socket overeenkomt met opendkim.conf. Stel dit op Ubuntu/Debian in via /etc/default/opendkim (of de systemd-override):

  SOCKET=”local:/var/spool/postfix/opendkim/opendkim.sock”

4. Stel Postfix in op de milter in /etc/postfix/main.cf:

milter_default_action = accept

   milter_protocol = 6

   smtpd_milters = local:opendkim/opendkim.sock

   non_smtpd_milters = $smtpd_milters

Wat die vier Postfix-richtlijnen betekenen:

RichtlijnDoel
milter_default_action = acceptAls de milter niet werkt, blijft de e-mail gewoon doorstroommen; een inactieve ondertekenaar zorgt er nooit voor dat je wachtrij stilletjes in het niets verdwijnt.
milter_protocol = 6De versie van het milter-protocol die OpenDKIM momenteel gebruikt.
smtpd_miltersPast de milter toe op e-mail die via SMTP wordt ontvangen (uw uitgaande berichten).
non_smtpd_miltersDit geldt voor e-mail die niet via SMTP is ontvangen, bijvoorbeeld lokaal gegenereerde e-mail.

Het pad naar de socket in main.cf is relatief, local:opendkim/opendkim.sock, en niet het volledige pad in het bestandssysteem, omdat Postfix dit vanuit zijn chroot-omgeving leest.

Start beide services opnieuw op om alle wijzigingen door te voeren:

bash

sudo systemctl restart opendkim

sudo systemctl restart postfix

Stap 5: Publiceer het DKIM DNS TXT-record

Open het bestand met de openbare sleutel dat je in stap 2 hebt gegenereerd:

bash

sudo cat /etc/opendkim/keys/example.com/selector2026.txt

Voer de inhoud ervan bij je DNS-provider in als een nieuw record:

VeldEen waarde
Naam van het recordselector2026._domainkey.example.com
TypeTXT
Een waardeAlles wat tussen de haakjes staat (de tekenreeks v=DKIM1; k=rsa; p=...)

Aangezien dit een sleutel van 2048 bits is, is de waarde langer dan de limiet van 255 tekens voor één TXT-string. De meeste DNS-providers splitsen deze automatisch op. Als uw provider dit weigert, verdeel de openbare sleutel dan over twee strings tussen aanhalingstekens binnen hetzelfde record als het .txt bestand je al laat zien waar de splitsing plaatsvindt.

Stel de TTL tijdens de installatie in op 300 seconden, zodat eventuele fouten gemakkelijk te corrigeren zijn. Zodra je hebt gecontroleerd of het ondertekenen werkt, verhoog je deze waarde naar 3600.

Stap 6: Controleer alles voordat je het verstuurt

Het duurt even voordat DNS-wijzigingen zijn doorgevoerd, en een 2048-bits sleutel die verkeerd is opgesplitst, ziet er in je zone-editor weliswaar goed uit, maar zal mislukken zodra een ontvanger deze leest. 

Rspamd is de betere keuze zodra je meer dan één domein hebt of e-mail in een productieomgeving beheert. Het ondertekent DKIM en filtert spam vanuit één milter, zodat je slechts één dienst hoeft te onderhouden in plaats van twee.

Aangezien het de sleutels automatisch per domein opzoekt, hoef je voor het toevoegen van een volgend domein bovendien slechts één regel aan te passen in plaats van een geheel nieuwe configuratie uit te voeren. Hieronder vind je het volledige stappenplan voor Postfix, in vijf stappen.

Stap 1: Rspamd installeren

De versie in de basisrepositories van je distributie is meestal verouderd, dus installeer vanuit de officiële stabiele repository van Rspamd.

bash

sudo apt install -y lsb-release wget gpg

sudo mkdir -p /etc/apt/keyrings

wget -O- https://rspamd.com/apt-stable/gpg.key | \

  gpg –dearmor | sudo tee /etc/apt/keyrings/rspamd.gpg > /dev/null

echo “deb [signed-by=/etc/apt/keyrings/rspamd.gpg] \

  http://rspamd.com/apt-stable/ $(lsb_release -cs) main” | \

  sudo tee /etc/apt/sources.list.d/rspamd.list

sudo apt update && sudo apt install rspamd

Zorg ervoor dat het bij het opstarten wordt gestart:

bash

sudo systemctl inschakelen rspamd

Kijk altijd op rspamd.com voor de meest recente installatie-instructies, aangezien de URL van de repository en de stappen voor de GPG-sleutel af en toe veranderen.

Stap 2: Genereer je DKIM-sleutel

Rspamd bevat een eigen sleutelgenerator, rspamadm dkim_keygen , zonder dat er een apart hulpprogrammapakket nodig is. Het schrijft de privésleutel naar een bestand en geeft de openbare sleutel (uw DNS-record) weer op het scherm, die u kunt opslaan in een .pub bestand.

bash

sudo mkdir -p /var/lib/rspamd/dkim

sudo rspamadm dkim_keygen -s selector2026 -b 2048 -d example.com \

  -k /var/lib/rspamd/dkim/example.com.selector2026.key | \

  sudo tee /var/lib/rspamd/dkim/example.com.selector2026.pub

sudo chown -R _rspamd:_rspamd /var/lib/rspamd/dkim

Pas de gebruiker/groep aan als je distributie rspamd:rspamd gebruikt in plaats van _rspamd:_rspamd. Controleer de systemd-unit van je pakket om dit te verifiëren.
De vlaggen komen overeen met die van OpenDKIM: -s selector, -b 2048 sleutellengte, -d domein, -k het uitvoerbestand van de privésleutel. U krijgt uiteindelijk twee bestanden:

BestandWat het is
voorbeeld.com.selector2026.keyDe privé-ondertekeningssleutel die Rspamd gebruikt. Zorg ervoor dat deze eigendom blijft van de gebruiker _rspamd
voorbeeld.com.selector2026.pubDe openbare sleutel, opgemaakt voor DNS; deze publiceer je in stap 5

Stap 3: DKIM-ondertekening inschakelen

Rspamd verwerkt DKIM via zijn dkim_signing module. Schakel deze in en geef aan waar je sleutels zich bevinden in /etc/rspamd/local.d/dkim_signing.conf

selector = “selector2026”;

path = “/var/lib/rspamd/dkim/$domain.$selector.key”;

allow_username_mismatch = true;

use_domain = “header”;

Wat elke instelling doet:

InstellingWat het regelt
selectorDe naam van de selector moet overeenkomen met de bestandsnaam van je sleutel en het DNS-record
padWaar Rspamd de privésleutel vindt; $domain en $selector worden automatisch ingevuld
allow_username_mismatchEr verschijnen meldingen, zelfs als de gebruikersnaam waarmee is ingelogd niet overeenkomt met het ‘Van’-domein
use_domain = "header"Haal het ondertekeningsdomein op uit de ‘From’-header van het bericht

Dat regel lijn is wat Rspamd zo krachtig maakt voor meerdere domeinen. Omdat het $domain en $selector op basis van de bestandsnaam, betekent het toevoegen van een ander domein dat de bijbehorende sleutel in dezelfde map wordt geplaatst, zonder een nieuw configuratieblok en zonder een tweede daemon.

Stap 4: Rspamd koppelen aan Postfix

Stel Postfix in op de milter van Rspamd in /etc/postfix/main.cf. De richtlijnen zijn identiek aan de OpenDKIM-configuratie, alleen de socket verandert:

milter_default_action = accept

milter_protocol = 6

smtpd_milters = inet:localhost:11332

non_smtpd_milters = $smtpd_milters

Rspamd luistert op zijn proxy-worker op TCP-poort 11332 . Aangezien het om een netwerksocket gaat, omzeil je het chroot-probleem met socketrechten waar OpenDKIM tegenaan loopt. De enige regel die tussen de twee milters verschilt:

MilterSocket-regel in main.cf
OpenDKIMsmtpd_milters = local:opendkim/opendkim.sock
Rspamdsmtpd_milters = inet:localhost:11332

Stap 5: Publiceer het DNS-record

Open de openbare sleutel en publiceer deze precies zoals beschreven in stap 5 van OpenDKIM, met dezelfde indeling voor de recordnaam, TXT , en de splitsingsregel van 255 tekens voor de 2048-bits sleutel:

bash

sudo cat /var/lib/rspamd/dkim/example.com.selector2026.pub

Schakel desgewenst het webdashboard in door een wachtwoord in te stellen in /etc/rspamd/local.d/worker-controller.inc 

Hiermee krijg je een realtime overzicht van ondertekenings- en spamactiviteiten. Start vervolgens beide diensten opnieuw op:

bash

sudo systemctl restart rspamd postfix

Controleer het gepubliceerde record met een DKIM-checker voordat je erop vertrouwt, net zoals je dat zou doen na de installatie van OpenDKIM.

Rspamd vervangt zowel OpenDKIM en SpamAssassin. Als u een afzonderlijk spamfilter gebruikte, kunt u dat hier uitschakelen, zodat u minder services hebt, minder configuratie-opties hoeft te beheren en zowel het ondertekenen als het filteren op één plek kunt beheren.

Postfix DKIM configureren voor meerdere domeinen

Het is gebruikelijk om meerdere domeinen vanaf één Postfix-server te beheren, maar DKIM doet hier geen concessies aan. Elk domein waarvan je e-mails verstuurt, heeft een eigen sleutelpaar en een eigen DNS-record nodig, omdat elk domein afzonderlijk wordt geauthenticeerd; er is dus geen gedeelde sleutel die voor alle domeinen geldt. Hoe je dit opschaalt, hangt af van de milter die je kiest.

Met OpenDKIM breid je de tabellen uit die je al hebt aangemaakt: Genereer een sleutel voor elk nieuw domein en voeg vervolgens voor elk domein één regel toe aan elk opzoekbestand.

In signing.table:

*@example.com selector2026._domainkey.example.com

*@example.net selector2026._domainkey.example.net

In key.table:

selector2026._domainkey.example.com example.com:selector2026:/etc/opendkim/keys/example.com/selector2026.private

selector2026._domainkey.example.net example.net:selector2026:/etc/opendkim/keys/example.net/selector2026.private

Elk nieuw domein betekent één extra sleutel en twee extra regels; handmatig, maar voorspelbaar.

Met Rspamd is het werk al voor je gedaan: Aangezien de instelling voor het instelling gebruikmaakt van het $domain gebruikt, vindt Rspamd de sleutel van elk domein automatisch op basis van de bestandsnaam. Verplaats example.net.selector2026.key in dezelfde map en het ondertekent dat domein ook zonder dat er een configuratiewijziging nodig is. Als je meer controle wilt, kun je nog steeds per domein blokken toevoegen in dkim_signing.conf.

Er zijn twee gewoontes die ervoor zorgen dat het ondertekenen van documenten in meerdere domeinen overzichtelijk blijft:

  1. Gebruik dezelfde selector voor alle domeinen, selector2026 overal, zodat de rotatie één proces blijft in plaats van meerdere. 
  2. Maak voor elk domein een apart DNS-record aan: als je dit bij één domein vergeet, wordt de e-mail van dat domein wel lokaal ondertekend, maar mislukt de verificatie bij de ontvanger.

Hoe u uw Postfix DKIM-configuratie kunt testen en controleren

Het ondertekenen van e-mail en controleren of deze correct is ondertekend, zijn twee verschillende zaken. Vanuit het perspectief van de afzender kan alles er prima uitzien, terwijl de ontvanger je handtekening stilletjes afwijst, en je zou daar pas achter komen als de e-mail niet meer aankomt. 

Deze vijf controles bevestigen dat DKIM daadwerkelijk werkt, waarbij je van je eigen logbestanden naar een echte ontvanger gaat. Volg de onderstaande volgorde:

Controle 1: Controleer eerst het e-maillogboek

Het e-maillogboek biedt de snelste bevestiging en is lokaal. Bekijk het logboek, verstuur een testbericht en let op een vermelding van de ondertekening:

bash

  sudo tail -f /var/log/mail.log

Op RHEL/Rocky is het bestand /var/log/maillog. Je zoekt naar een regel die aangeeft dat het bericht met je selector is ondertekend. Als die er staat, doet je milter zijn werk.

Controle 2: De sleutel controleren aan de hand van DNS (OpenDKIM)

De validatie bevestigt dat de privésleutel op de schijf overeenkomt met de openbare sleutel die je hebt gepubliceerd:

bash

  opendkim-testkey -d example.com -s selector2026 -vvv

toets OK betekent dat de twee helften overeenkomen. Al het andere wijst op een typefout in de DNS of een sleutelconflict, dat moet worden opgelost voordat je verder kunt gaan.

Controle 3: Een echte test versturen

Dit is de enige manier om te controleren of de ontvanger je handtekening accepteert. Stuur een e-mail naar een Gmail-account, open het bericht en kies ‘Origineel weergeven’. Zoek naar DKIM: ‘PASS’ met uw domein, wat betekent dat de ontvangende server bevestigt dat uw handtekening is geverifieerd.

Controle 4: Externe controleprogramma’s uitvoeren

Een DKIM-checker haalt je gepubliceerde record op en analyseert dit op dezelfde manier als een ontvangende server dat zou doen, om te controleren of de sleutel geldig en volledig is

Probeer de gratis DKIM-checker van PowerDMARCen stuur vervolgens een bericht naar mail-tester.com voor een uitgebreidere deliverability-score waarin DKIM wordt meegewogen naast SPF, DMARC en spamsignalen. 

Controle 5: Pas op voor de valkuil waarbij DKIM slaagt maar DMARC faalt

Je handtekening kan perfect worden geverifieerd en toch kan DMARC mislukken, omdat DMARC afstemming vereist: het domein in je DKIM d= -tag moet overeenkomen met het domein in de zichtbare ‘From:’-header. 

Aanmelden als mail.example.com terwijl je verzendt vanuit example.com en 'relaxed' uitlijning zal je redden, maar 'strict' niet. Als DMARC mislukt ondanks een geslaagde DKIM-controle, controleer dan of je ondertekeningstabel naar het juiste domein verwijst.

Controle 6: Controleer alle drie in één keer

Een geslaagde DKIM-controle bevestigt of een onderdeel van de authenticatie werkt, maar je afleverbaarheid en bescherming tegen spoofing zijn afhankelijk van DKIM, SPF en DMARC samenwerken. 

De gratis Domain Analyzer scant alle drie tegelijk en geeft een score van A tot F weer, zodat u in één keer te weten komt of uw domein daadwerkelijk van begin tot eind beschermd is of slechts gedeeltelijk beveiligd. 

Als je te maken krijgt met problemen zoals de valkuil ‘DKIM-passes-but-DMARC-fails’, dan is de gratis Email Header Analyzer zet de DKIM beoordeling en het afstemmingsresultaat naast elkaar, zodat je binnen enkele seconden precies kunt vaststellen waar de afwijking zit, in plaats van met samengeknepen ogen naar ruwe headers te turen. 

Rotatie van Postfix DKIM-sleutels

Een privésleutel die jarenlang onaangeroerd op een server staat, is een sleutel waarvan de kans op blootstelling steeds groter wordt. Mocht deze ooit uitlekken, dan kan een aanvaller e-mails onder uw domeinnaam ondertekenen totdat u dit ontdekt.

Door volgens een schema te rouleren, minstens één keer per jaar, blijft dat venster klein. De op het jaar gebaseerde selector zorgt ervoor dat de wisseling soepel verloopt.

Het rotatieproces:

  1. Genereer een nieuwe sleutel met een nieuwe selector – selector2027.
  2. Publiceer de nieuwe openbare sleutel als een nieuw DNS TXT-record en laat het oude record staan.
  3. Pas je configuratie aan om te ondertekenen met de nieuwe selector.
  4. Laad de milter opnieuw en wacht tot de DNS-TTL is doorgevoerd.
  5. Houd het oude record minimaal de vorige TTL plus 24–48 uur actief (meestal in totaal 48–72 uur), afhankelijk van je TTL en het volume aan post dat onderweg is. Post die al onderweg is en met de oude sleutel is ondertekend, moet nog steeds worden geverifieerd.
  6. Schakel de oude selector uit en verwijder het bijbehorende DNS-record.

De overlap tussen stap 5 en 6 is het deel dat je niet mag overhaasten. Als je het oude record te vroeg verwijdert, zal elk bericht dat nog tegen dat record wordt gecontroleerd, de verificatie niet doorstaan – precies het soort stille authenticatiefout dat DKIM juist moet voorkomen.

Noch OpenDKIM, noch Rspamd automatiseert het genereren van sleutels, het publiceren via DNS of de timing van de overlapping. Voor één domein is dat een herinnering die je één keer per jaar in je agenda hoeft in te stellen. Bij vijf of meer domeinen wordt het een terugkerende taak die je gemakkelijk over het hoofd ziet, en een rotatie die stilletjes nooit plaatsvindt, is een tekortkoming in de naleving die je pas opmerkt als iemand je vraagt om dit aan te tonen.

Veelvoorkomende DKIM-fouten in Postfix en hoe je ze kunt oplossen

DKIM-problemen in Postfix hebben vaak te maken met een aantal voorspelbare oorzaken, voornamelijk socket-rechten, sleutelpaden en domeinafstemming. In de onderstaande tabel worden de symptomen die je waarneemt gekoppeld aan de meest waarschijnlijke oorzaak en de oplossing, zodat je direct naar jouw specifieke geval kunt gaan. 

FoutWaarschijnlijke oorzaakFix
Geen DKIM-handtekening in de headersMilter niet aangesloten of verkeerde aansluitingControleer of het socketpad in opendkim.conf en main.cf overeenkomt; controleer of de Postfix-gebruiker lid is van de groep opendkim
Verbinding maken met de Milter-service... Verbinding geweigerdDe OpenDKIM-daemon draait nietsystemctl start opendkim; controleer of het socketbestand daadwerkelijk in de spool-map staat
opendkim: het ophalen van de sleutel is misluktOnjuiste pad in de sleuteltabel of onjuiste machtigingenControleer het .private-pad in key.table; voer het commando chown opendkim:opendkim uit op de sleutel
DKIM is geslaagd, maar DMARC is misluktAfwijking in uitlijningHet domein in de handtekening (d=) moet overeenkomen met het domein in de From:-header; pas een soepele afstemming toe
2048-bits sleutel afgewezen door DNSDe limiet van 255 tekens voor TXT-berichten van de providerVerdeel de openbare sleutel over twee tussen aanhalingstekens geplaatste tekenreeksen in hetzelfde TXT-record

Wanneer moet je overstappen van handmatige Postfix DKIM?

Voor één enkel domein is zelfbeheerde DKIM op Postfix een uitstekende keuze. Je stelt het één keer in en het doet zijn werk, maar naarmate je verzendvolume toeneemt, wordt het handmatige werk dat erachter schuilgaat eerder een bron van risico dan van controle. 

Een paar tekenen dat je dat punt hebt bereikt:

  • U meldt zich aan voor drie of meer domeinen.
  • E-mails worden verzonden vanuit verschillende bronnen: een e-mailserviceprovider (ESP), transactionele e-mails en uw app. Voor elk daarvan zijn aparte sleutels nodig.
  • Je hebt een deadline voor naleving en kunt het je niet veroorloven een rotatie over te slaan.
  • Eén persoon beschikt over alle kennis op het gebied van DKIM, en als die persoon zou vertrekken, zou die kennis verloren gaan.

Als u met deze uitdagingen te maken heeft, dan lost gehost DKIM-beheer vult die hiaten op door de handmatige stappen volledig te elimineren. Hieronder ziet u hoe handmatig DKIM-beheer verschilt van gehost DKIM-beheer:

OpdrachtHandleiding (OpenDKIM / Rspamd)Gehoste DKIM
SleutelwisselingMet de hand bij elke cyclus: genereren, publiceren, overlappen, buiten gebruik stellenAutomatisch, geen DNS-wijzigingen per cyclus
Meerdere domeinenAfzonderlijke sleutel, record en configuratie per domeinCentraal beheerd
Sleutelmaat2048-bit (of Ed25519)Tot 4096-bit
Beheer van selectiesHandmatig bijgehoudenAutomatisch gedetecteerd voor de belangrijkste ESP’s
DNS-onderhoudBij elke rotatie aangepastEén enkele CNAME, één keer gepubliceerd

Als u DKIM voor meerdere domeinen beheert of behoefte hebt aan een betrouwbare rotatie die voldoet aan de nalevingsvereisten, dan neemt de Hosted DKIM-oplossing van PowerDMARC u de handmatige rompslomp uit handen en elimineert daarmee ook het bijbehorende risico. 

Start je gratis proefperiode van 15 dagen

Veelgestelde Vragen

Wat is Postfix DKIM?

Postfix DKIM is het cryptografisch ondertekenen van uitgaande e-mail op een Postfix-server, zodat ontvangers kunnen controleren of de e-mail ongewijzigd afkomstig is van uw domein. Postfix beschikt niet over een ingebouwde ondertekeningsfunctie en stuurt elk bericht daarom door naar een milter, zoals OpenDKIM of Rspamd, die de handtekening toevoegt.

Wat is OpenDKIM?

OpenDKIM is een op zichzelf staande milter die DKIM-ondertekeningen aanbrengt en verifieert voor Postfix en andere MTA’s, en verder niets. Het is eenvoudig en wordt op grote schaal gebruikt, maar er is sinds 2021 geen stabiele release meer geweest; houd dus rekening met dat onderhoudsrisico bij installaties voor de lange termijn.

Wat is Rspamd?

Rspamd is een actief onderhouden spamfiltersysteem waarvan de DKIM-ondertekeningsmodule Postfix-e-mails kan ondertekenen. Omdat het zowel het filteren als het ondertekenen in één milter afhandelt, vervangt het zowel OpenDKIM als SpamAssassin, waardoor het in 2026 de betere keuze is voor servers met meerdere domeinen of productieservers.

Wat is Postfix?

Postfix is een veelgebruikte open-source mail transfer agent (MTA) die e-mail op Unix-achtige servers doorstuurt en aflevert. Het programma verstuurt en ontvangt e-mail, maar ondertekent zelf geen DKIM; daarvoor is een aparte milter nodig, zoals OpenDKIM of Rspamd.

Moet ik in 2026 OpenDKIM of Rspamd gebruiken in combinatie met Postfix?

Voor eenvoudige opstellingen met één domein werkt OpenDKIM nog steeds prima. Voor servers met meerdere domeinen of productieservers is Rspamd de betere keuze. Dit programma wordt actief onderhouden en combineert DKIM-ondertekening met spamfiltering in één milter.

Hoe kan ik controleren of mijn uitgaande e-mail met DKIM is ondertekend?

Controleer /var/log/mail.log op vermeldingen over ondertekening, voer opendkim-testkey, stuur een test-e-mail naar Gmail en controleer de ruwe headers op DKIM: PASS, of voer je domein in bij een gratis DKIM-checker.

CTA