Skip to main content
HOW-TO: ongewenste e-mail blokkeren met Rspamd en DirectAdmin

Deze handleiding beschrijft hoe je ongewenste e-mails structureel blokkeert met Rspamd Multimap en, waar handig, met de standaard DirectAdmin/Exim blokkadelijsten.
De voorkeur gaat uit naar Rspamd wanneer je wilt filteren op headers zoals Reply-To, From of specifieke afzendernamen. Dat is vooral handig bij facturatieplatforms, mailplatforms en andere externe verzendsystemen waarbij het technische verzenddomein niet hetzelfde is als de partij die je wilt blokkeren.

Wat wordt hier behandeld?
  • Blokkeren op basis van SMTP envelope-from domein (MAIL FROM).
  • Blokkeren op basis van From-header domein (zichtbare afzender).
  • Blokkeren op basis van Reply-To domein.
  • Blokkeren op basis van tekst in de From-header, zoals een bedrijfsnaam.
  • DirectAdmin blokkadelijsten als eenvoudige aanvulling.
  • Testen met rspamadm, rspamc, journalctl en Exim logs.
Waarom niet zomaar hele verzendplatforms blokkeren?

Veel bedrijven versturen facturen, herinneringen en systeemmails via externe platformen zoals Moneybird, Amazon SES, Mailgun, Sendgrid of vergelijkbare diensten. Als je zo'n heel platform blokkeert, mis je mogelijk ook legitieme e-mails van andere partijen.

Advies:
Blokkeer niet direct algemene verzenddomeinen zoals deliver.moneybird.com of bounce.deliver.moneybird.com als je alleen één specifieke partij wilt weren. Filter dan liever op Reply-To, From-header of afzendernaam.
Optioneel: DirectAdmin blokkadelijsten (Exim)

DirectAdmin kan eenvoudige blokkades toepassen via Exim-lijsten. Dit is handig voor standaard domeinen, losse afzenderadressen of IP-adressen. Voor slimme headerfilters blijft Rspamd beter geschikt.

Let op:
De DirectAdmin lijsten werken meestal goed voor eenvoudige blokkades. Voor situaties waarbij een mail via een extern platform wordt verstuurd, maar de Reply-To naar een andere partij wijst, is Rspamd Multimap de betere oplossing.

Bestanden die je vaak tegenkomt:

/etc/virtual/blacklist_domains
/etc/virtual/blacklist_senders
/etc/virtual/bad_sender_hosts
/etc/virtual/bad_sender_hosts_ip

Voorbeeldinhoud van /etc/virtual/blacklist_domains:

advancedigitalweb.com
aeroclub-gravenchon.fr
af-grupa.com
amwarnerinsurance.com
auralink-9.com
autoinkoopdirect.com
bedrijfswagenfleet.com
bedrijfswagenverkoop.com
bedrijfswagenzone.com
caroptions.nl
chescoperta.it
comercializadoraig.com
edmbusinessgoods.com
elix-2025.com
energreen.com
es-race.boats
firebaseapp.com
fusionnetworks3491.com
graspstaging.com
hificond.club
ideologic.org
inkoopautohub.com
inkoopautoworks.com
ladirection.cloud
lucentra-2.com
mailcloudlead.com
matrixconsulting2485.com
nayven73.com
nex-bridge3.com
nuvolanote-5.com
oceanoinformato.it
optiwave-3.com
pourtoutenfin.cloud
project-nestle.com
promotrades.nl
reachspark21.com
shjy-kj.com
slimster.nl
student.swc.ac.uk
sunnicer.help
tilburgkoeling.com
titaniumtech9517.com
topautobedrijf.com
torquepost5.com
treinatec.com
uniquemax.net
velkimasteragent.com
wedofollows.com
worldsevey2.com
zephyr-mail7.com
zjmisgnucctesenuy.com
zndnedicom.com
zorven21.com

Voorbeeldinhoud van /etc/virtual/blacklist_senders:

abnarnro.omgeving@kpnplanet.nl
administratie@hetnet.nl
akleskw@hificond.club
alaina.brooks@eindhoventransmissie.com
alison.fisher@almerecarrosserie.com
alsofsq@es-race.boats
anjalisharma729090@gmail.com
aopincuoqgtwaqiknascesn@s.hrufhs.org
arya.developers.2017@gmail.com
ava@worldsevey2.com
belasting@live.nl
billy18065080@outlook.com
carderello364@gmail.com
crystalcarephysio@gmail.com
daniel@samonlinemarketing.nl
dapierre25@gmail.com
denhelder@anicura.nl
fi9l7@outlook.com
info-caroptions@deliver.moneybird.com
info@caroptions.nl
info@email.qredits.nl
info@project-nestle.com
info@shjy-kj.com
info@t-mobilethuis.nl
info@weareblox.com
infodido@xs4all.nl
infos@ladirection.cloud
infos@pourtoutenfin.cloud
klantenservice@hetnieuwewozbureau.nl
krutikasharma1@outlook.com
leo.webmanagemet25@outlook.com
LodhiSingh.web@hotmail.com
lukas.seo05@outlook.com
martin@mailer.verkeersboete.nl
marketing@greenmax.eu
matthew66773237@outlook.com
mz@shjy-kj.com
noreply@alphavilleanapolis.com.br
noreply@comercializadoraig.com
noreply@wftelecompi.com.br
office@chatdesk.nl
ombilbk@maxis-hostel.homes
patrickprosee@techneanederland.nl
paypal01@entreepl.com
postmaster@anicuragroup.com
prod@auralink-9.com
prod@elix-2025.com
prod@fusionnetworks3491.com
prod@lucentra-2.com
prod@mailcloudlead.com
prod@matrixconsulting2485.com
prod@nex-bridge3.com
prod@nuvolanote-5.com
prod@optiwave-3.com
prod@reachspark21.com
prod@titaniumtech9517.com
prod@torquepost5.com
prod@zorven21.com
rashisharma64@hotmail.com
rijksdienst.ondernemend@kpnmail.nl
rijksdienst.ondernemend@planet.nl
rvo@kpnmail.nl
rvo@xs4all.nl
ryumaster8@gmail.com
sales@accountor.nl
server.infodesk@skynet.nl
service@shjy-kj.com
sophia.nl@campaignanchor.pt
support@ideologic.org
thrtfbgrter@shjy-kj.com
vutienduc26122002@gmail.com
welkomstbonus@wedofollows.com
rijksdienst.ondernemend@home.nl

Voorbeeldinhoud van /etc/virtual/bad_sender_hosts_ip:

217.154.245.212

/etc/virtual/bad_sender_hosts is in dit voorbeeld leeg. Laat dit bestand bestaan, maar vul het alleen als je bewust op hostnaam wilt blokkeren.

Stap 1 - TLD-regex map aanmaken

Maak een regex-bestand aan met de TLD's die je wilt blokkeren. Dit werkt op basis van domeinextensies.

nano /etc/rspamd/local.d/maps/bad_tlds.re

\.(ru|cn|su|kp|xyz|top|icu|work|gr|es|se|tr|watch|company|onl|id|store|jp|pro|fr|it)$

Voeg extra extensies toe door ze te scheiden met een |. Gebruik dit met beleid, want sommige TLD's kunnen ook legitieme mail bevatten.

Stap 2 - Reply-To domeinen blokkeren

Gebruik deze methode als een partij via een extern verzendplatform mailt, maar de Reply-To naar het te blokkeren domein verwijst. Omdat de Multimap-regel hieronder filter = "email:domain" gebruikt, moet de map alleen op het domein matchen en dus niet op het volledige e-mailadres.

Veelgemaakte fout:
Gebruik hier niet @caroptions\.nl$. Door filter = "email:domain" ziet Rspamd alleen caroptions.nl. De juiste regel is daarom /caroptions\.nl$/i.
nano /etc/rspamd/local.d/maps/bad_replyto_domains.re

/caroptions\.nl$/i
Stap 3 - From-header tekst of afzendernaam blokkeren

Soms is blokkeren op domein niet genoeg. Bij externe verzenders kan de technische afzender bijvoorbeeld van een platform zijn, terwijl de From-header nog wel duidelijk de bedrijfsnaam bevat. Daarvoor kun je een aparte regex-map gebruiken.

nano /etc/rspamd/local.d/maps/bad_from_headers.re

/CarOptions\s+B\.V\./i
/info-caroptions@deliver\.moneybird\.com/i

Deze aanpak blokkeert niet heel Moneybird, maar alleen berichten waarbij de From-header of afzendernaam overeenkomt met de opgegeven regels.

Stap 4 - Multimap-regels configureren

Open of maak het multimap-configuratiebestand aan:

nano /etc/rspamd/local.d/multimap.conf

Voorbeeldconfiguratie:

# /etc/rspamd/local.d/multimap.conf
#
# Doel:
# - Reject op basis van SMTP envelope-from domein (MAIL FROM) - 5.7.1
# - Reject op basis van From-header domein (zichtbare afzender) - 5.7.0
# - Reject op basis van Reply-To domein - 5.7.2
# - Reject op basis van tekst in de From-header / afzendernaam - 5.7.3

# Reject op basis van SMTP envelope-from domein (MAIL FROM)
BAD_TLD_ENVFROM {
  type = "from";
  extract_from = "smtp";
  filter = "email:domain";
  map = "regexp;/etc/rspamd/local.d/maps/bad_tlds.re";

  prefilter = true;
  action = "reject";
  message = "550 5.7.1 Rejected: sender domain %d is blocked due to abuse. If this is incorrect, contact https://lodewijk.frl/contact";
}

# Reject op basis van From-header domein (zichtbare afzender)
BAD_TLD_FROMHDR {
  type = "from";
  extract_from = "mime";
  filter = "email:domain";
  map = "regexp;/etc/rspamd/local.d/maps/bad_tlds.re";

  prefilter = true;
  action = "reject";
  message = "550 5.7.0 Rejected: sender domain %d violates local policy. If this is incorrect, contact https://lodewijk.frl/contact";
}

# Reject op basis van Reply-To domein, bijvoorbeeld bij externe facturatie- of mailsystemen
BAD_REPLYTO_CAROPTIONS {
  type = "header";
  header = "Reply-To";
  filter = "email:domain";
  map = "regexp;/etc/rspamd/local.d/maps/bad_replyto_domains.re";

  prefilter = true;
  action = "reject";
  message = "550 5.7.2 Rejected: sender blocked due to repeated unwanted correspondence. If this is incorrect, contact https://lodewijk.frl/contact";
}

# Reject op basis van From-header tekst / afzendernaam
BAD_FROMHDR_CAROPTIONS_NAME {
  type = "header";
  header = "From";
  map = "regexp;/etc/rspamd/local.d/maps/bad_from_headers.re";

  prefilter = true;
  action = "reject";
  message = "550 5.7.3 Rejected: sender identity is blocked due to repeated unwanted correspondence. If this is incorrect, contact https://lodewijk.frl/contact";
}
Waarom verschillende 5.7.x codes?
Zo zie je in logs en bij tests direct welke regel de reject veroorzaakte. 5.7.1 = envelope-from, 5.7.0 = From-header domein, 5.7.2 = Reply-To, 5.7.3 = From-header tekst of afzendernaam.
Stap 5 - Configuratie testen en herstarten

Test eerst de configuratie. Herstart daarna Rspamd en Exim zodat de nieuwe regels actief worden.

rspamadm configtest
systemctl restart rspamd
systemctl restart exim

Controleer daarna of de Multimap-regels geladen zijn:

rspamadm configdump multimap | grep -A15 -i CAROPTIONS
Stap 6 - Testmail scannen met rspamc

Met een lokale testmail kun je controleren of de regels matchen zonder te wachten op een echte e-mail.

cat > /tmp/test-caroptions.eml <<'EOF'
From: CarOptions B.V. <info-caroptions@deliver.moneybird.com>
Reply-To: CarOptions B.V. <info@caroptions.nl>
To: info@lodewijk.frl
Subject: Test CarOptions blokkade

Test.
EOF

rspamc -h 127.0.0.1:11333 < /tmp/test-caroptions.eml

Een geslaagde test laat bijvoorbeeld dit zien:

Action: reject
Symbol: BAD_FROMHDR_CAROPTIONS_NAME
Symbol: BAD_REPLYTO_CAROPTIONS
Message - smtp_message: 550 5.7.2 Rejected: sender blocked due to repeated unwanted correspondence.
Let op bij rspamc:
Als rspamc zonder hostmelding Connection refused geeft, controleer dan waar Rspamd luistert met ss -ltnp | grep rspamd. In deze setup luistert de normale worker op 127.0.0.1:11333, daarom wordt rspamc -h 127.0.0.1:11333 gebruikt.
Stap 7 - Logs controleren

Gebruik de logs om te zien of een bericht daadwerkelijk geweigerd wordt.

journalctl -u rspamd -f
tail -f /var/log/exim/mainlog

In Exim zie je bij een echte SMTP-blokkade meestal dat de mail na DATA wordt geweigerd. In Rspamd zie je het symbool dat de reject veroorzaakt, bijvoorbeeld BAD_REPLYTO_CAROPTIONS of BAD_FROMHDR_CAROPTIONS_NAME.

Resultaat:
E-mails waarvan het afzenderdomein eindigt op een geblokkeerde TLD, waarvan het Reply-To domein geblokkeerd is, of waarvan de From-header overeenkomt met een geblokkeerde afzendernaam, worden geweigerd met een duidelijke 550-melding. Tegelijk blijven algemene verzendplatforms zoals Moneybird bruikbaar voor andere partijen.
Praktische tip:
Gebruik blokkades zorgvuldig. Bij zakelijke conflicten, herhaalde ongewenste correspondentie of misbruik van externe verzendplatforms is gericht filteren vaak beter dan brede blokkades op gedeelde platforms of complete IP-ranges.