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.
| Criteria | OpenDKIM | Rspamd |
|---|---|---|
| Onderhoudsstatus | Er 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 doet | Alleen DKIM-ondertekening/verificatie | DKIM-ondertekening plus volledige spamfiltering |
| Complexiteit van de installatie | Eenvoudig, met één doel | Meer bewegende onderdelen aan de voorkant |
| Postfix-integratie | Milter (aansluiting) | Milter (proxy-socket) |
| Webinterface | Geen | Ingebouwd 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 vlag | Betekenis |
|---|---|
| -b 2048 | Sleutellengte in bits – 2048-bits RSA |
| -d example.com | Het domein waarvoor je tekent |
| -s selector2026 | De 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:
| Bestand | Wat het is | Regel |
|---|---|---|
| selector2026.privé | Uw persoonlijke ondertekeningssleutel | Deel het nooit; zorg ervoor dat het alleen door OpenDKIM kan worden gelezen |
| selector2026.txt | De openbare sleutel, opgemaakt voor DNS | Dit 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:
| Syslog | ja |
|---|---|
| UMask | 2 |
| Modus | s |
| Canonicalisatie | ontspannen/ontspannen |
| Aansluiting | local:/var/spool/postfix/opendkim/opendkim.sock |
| PidFile | /run/opendkim/opendkim.pid |
| Oversign-kopteksten | Van |
| KeyTable | /etc/opendkim/key.table |
| SigningTable | refile:/etc/opendkim/signing.table |
| Externe negeerlijst | /etc/opendkim/trusted.hosts |
| InternalHosts | /etc/opendkim/trusted.hosts |
Wat de belangrijke richtlijnen bewerkstelligen:
| Richtlijn | Wat het regelt |
|---|---|
| Modus s | Alleen ondertekenen. Gebruik ‘sv’ als je ook wilt dat OpenDKIM inkomende e-mail verifieert. |
| Canonicalisatie versoepeld/versoepeld | Verdraagt 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. |
| Aansluiting | Hier luistert OpenDKIM naar Postfix. Dit pad moet overeenkomen met wat je later in Postfix instelt. |
| Oversign-kopteksten van | Ondertekent de From-header, zodat een aanvaller er geen tweede aan kan toevoegen; een kleine maar effectieve maatregel tegen spoofing. |
| KeyTable / SigningTable | De twee opzoekbestanden die domeinen koppelen aan selectors en aan sleutels (zie hieronder). |
Maak vervolgens de drie opzoekbestanden aan. Elk bestand heeft één taak:
| Bestand | Vacature | Voorbeeldregel |
|---|---|---|
| ondertekeningslijst | Koppelt een afzender aan een selector | *@example.com selector2026._domainkey.example.com |
| key.table | Koppelt die selector aan zijn privésleutel op de schijf | selector2026._domainkey.example.com example.com:selector2026:/etc/opendkim/keys/example.com/selector2026.private |
| trusted.hosts | Geeft een overzicht van hosts waarvan uitgaande e-mail moet worden ondertekend | 127.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:
| Richtlijn | Doel |
|---|---|
| milter_default_action = accept | Als 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 = 6 | De versie van het milter-protocol die OpenDKIM momenteel gebruikt. |
| smtpd_milters | Past de milter toe op e-mail die via SMTP wordt ontvangen (uw uitgaande berichten). |
| non_smtpd_milters | Dit 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:
| Veld | Een waarde |
|---|---|
| Naam van het record | selector2026._domainkey.example.com |
| Type | TXT |
| Een waarde | Alles 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.
Postfix DKIM instellen met Rspamd (2026 aanbevolen voor meerdere domeinen)
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:
| Bestand | Wat het is |
|---|---|
| voorbeeld.com.selector2026.key | De privé-ondertekeningssleutel die Rspamd gebruikt. Zorg ervoor dat deze eigendom blijft van de gebruiker _rspamd |
| voorbeeld.com.selector2026.pub | De 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:
| Instelling | Wat het regelt |
|---|---|
| selector | De naam van de selector moet overeenkomen met de bestandsnaam van je sleutel en het DNS-record |
| pad | Waar Rspamd de privésleutel vindt; $domain en $selector worden automatisch ingevuld |
| allow_username_mismatch | Er 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:
| Milter | Socket-regel in main.cf |
|---|---|
| OpenDKIM | smtpd_milters = local:opendkim/opendkim.sock |
| Rspamd | smtpd_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:
- Gebruik dezelfde selector voor alle domeinen, selector2026 overal, zodat de rotatie één proces blijft in plaats van meerdere.
- 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:
- Genereer een nieuwe sleutel met een nieuwe selector – selector2027.
- Publiceer de nieuwe openbare sleutel als een nieuw DNS TXT-record en laat het oude record staan.
- Pas je configuratie aan om te ondertekenen met de nieuwe selector.
- Laad de milter opnieuw en wacht tot de DNS-TTL is doorgevoerd.
- 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.
- 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.
| Fout | Waarschijnlijke oorzaak | Fix |
|---|---|---|
| Geen DKIM-handtekening in de headers | Milter niet aangesloten of verkeerde aansluiting | Controleer 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 geweigerd | De OpenDKIM-daemon draait niet | systemctl start opendkim; controleer of het socketbestand daadwerkelijk in de spool-map staat |
| opendkim: het ophalen van de sleutel is mislukt | Onjuiste pad in de sleuteltabel of onjuiste machtigingen | Controleer het .private-pad in key.table; voer het commando chown opendkim:opendkim uit op de sleutel |
| DKIM is geslaagd, maar DMARC is mislukt | Afwijking in uitlijning | Het domein in de handtekening (d=) moet overeenkomen met het domein in de From:-header; pas een soepele afstemming toe |
| 2048-bits sleutel afgewezen door DNS | De limiet van 255 tekens voor TXT-berichten van de provider | Verdeel 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:
| Opdracht | Handleiding (OpenDKIM / Rspamd) | Gehoste DKIM |
|---|---|---|
| Sleutelwisseling | Met de hand bij elke cyclus: genereren, publiceren, overlappen, buiten gebruik stellen | Automatisch, geen DNS-wijzigingen per cyclus |
| Meerdere domeinen | Afzonderlijke sleutel, record en configuratie per domein | Centraal beheerd |
| Sleutelmaat | 2048-bit (of Ed25519) | Tot 4096-bit |
| Beheer van selecties | Handmatig bijgehouden | Automatisch gedetecteerd voor de belangrijkste ESP’s |
| DNS-onderhoud | Bij elke rotatie aangepast | Eé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.
- Hoe stel je Postfix DKIM in 2026 in (OpenDKIM & Rspamd) - 19 juni 2026



