Er zijn extensies, IP's en domeinen waar al dan niet tijdelijk de nodige spam vandaan komt. In dit artikel laten wij zien hoe je veel spam tegenhoudt, door de configuratie van Exim in Ubuntu of Debian aan te passen om gebruik te maken van blacklists. Je hebt hierbij keuze uit publieke blacklists, of handmatig een eigen blacklist te maken.
Bij de openbare blacklist controle wordt het IP-adres van de verzender gecontroleerd tegenover de blacklist. Bij de handmatige blacklist kan de blacklist op basis van IP-adres of domein worden ingesteld.
Staat een zender op de blacklist, dan worden die mails met de stappen in dit artikel tegengehouden en een bericht naar de zender verstuurt dat het bericht als spam is tegengehouden. Daarnaast laten we zien hoe je specifieke mailadressen whitelist zodat deze genegeerd worden in spamcontroles.
- Voor de stappen in deze tutorial is een VPS met Ubuntu of Debian met Exim en Dovecot nodig. In deze handleiding leggen wij uit hoe je Exim en Dovecot installeert.
- Wij gaan ervan uit dat je één groot configuratiebestand gebruikt voor Exim in plaats van een gespreide configuratie.
- Voer de commando's in dit artikel uit met sudo, of als root-user.
Publieke blacklists
Stap 1
Verbind met je VPS via SSH of de VPS-console in het TransIP-controlepaneel.
Stap 2
Open de configuratie van Exim. Wij gaan ervan uit dat je één enkel configuratiebestand gebruikt voor Exim:
nano /etc/exim4/exim4.conf.template
Stap 3
Zoek op 'CHECK_RCPT_IP_DNSBLS' (met ctrl shift _ gevolgd door v). Je komt dan uit op de volgende code:
# Check against classic DNS "black" lists (DNSBLs) which list
# sender IP addresses
.ifdef CHECK_RCPT_IP_DNSBLS
warn
dnslists = CHECK_RCPT_IP_DNSBLS
add_header = X-Warning: $sender_host_address is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
log_message = $sender_host_address is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
.endif
'warn' betekent dat mail niet wordt geblokkeerd maar enkel een waarschuwing wordt toegevoegd aan de mail headers. Verander 'warn' naar 'deny' om blacklisted mail te laten tegenhouden.
De variable CHECK_RCPT_IP_DNSBLS is nog niet gedefinieerd, dus de spam controle doet nog niets. Voeg boven in het configuratiebestand in het deel 'MAIN CONFIGURATION SETTINGS' de volgende code toe om CHECK_RCPT_IP_DNSBLS te definiëren:
# Defines a list of blacklists to check incoming mail against
CHECK_RCPT_IP_DNSBLS = zen.spamhaus.org, sbl.spamhaus.org, cbl.abuseat.org, bl.spamcop.net, b.barracudacentral.org, dsn.rfc-ignorant.org/$sender_address_domain
- Je bent vrij om te kiezen welke blacklists je wil gebruiken, wij raden minimaal zen.spamhaus.org aan.
- Niet iedere spamlijst werkt hetzelfde. Ignorant controleert het domein van de zender, de andere lijsten het IP-adres. Om deze reden heeft Ignorant de toevoeging $sender_address_domain.
Een gedetailleerde toelichting over het gebruik van blacklists vind je hier.
Sla hierna je wijzigingen op en sluit het bestand (ctrl + x > y > enter).
Stap 4
Herstart tot slot Exim om de wijzigingen te verwerken:
update-exim4.conf
systemctl restart exim4
Inkomende mail wordt nu automatisch gescand om te controleren of de verzender in een blacklist staat.
Handmatige blacklist
Exim is in Ubuntu standaard ingesteld om een handmatige blacklist te kunnen hanteren. Het enige dat je dan ook hoeft te doen is domeinen aan de blacklist toe te voegen.
Stap 1
Verbind met je VPS via SSH of de VPS-console in het TransIP-controlepaneel.
Stap 2
Open/maak het blacklist bestand:
nano /etc/exim4/local_sender_blacklist
Stap 3
Voeg in het bestand de domeinen toe die je wil blacklisten, waarbij je ieder domein op een aparte regel plaatst. Een gehele extensie blacklist je met een wildcard zoals in het voorbeeld hieronder.
example.com
example.nl
*.xxx
*.xyz
Sla je wijzigingen opnieuw op en sluit het bestand (ctrl + x > y > enter). Inkomende mail wordt nu automatisch gescand om te controleren of de verzender in je blacklist staat.
Optioneel: custom block bericht
In /etc/exim4/exim4.conf.template vind je als je zoekt op local_sender_blacklist de message = variabele, die bepaalt welk bericht gestuurd wordt naar de verzender als die op je custom blocklist staat. Je bent vrij deze naar wens aan te passen. Vergeet niet in dat geval na afloop de Exim-configuratie te herladen met update-exim4.conf en exim te herstarten met systemctl restart exim4.
Handmatige whitelist
Exim komt naast een handmatige blacklist ook out-of-the-box met een handmatige whitelist. Deze werkt relatief hetzelfde als een blacklist.
Stap 1
Er zijn twee opties; het whitelisten van een sender (e-mailadres) en het whitelisten van een host (i.e. een domein of extensie). De eerste optie heeft doorgaans de voorkeur: whitelisting negeert alle spamcontroles en het is zeker bij grote domeinen vaak onwenselijk om alle adressen binnen dat domein door te laten.
Je opent/maakt het whitelist bestand met het commando:
sender whitelisting
nano /etc/exim4/sender_local_deny_exceptions
host whitelisting
nano /etc/exim4/host_local_deny_exceptions
Stap 2
Voeg in het geopende bestand afhankelijk van je keuze de volgende inhoud toe:
sender_local_deny_exceptions:
Een lijst van e-mailadressen die je wil whitelisten, bijvoorbeeld:
demo@transip.nl
someone@example.com
etc
host_local_deny_exceptions:
Een lijst van domeinen die je wil whitelisten, bijvoorbeeld:
transip.nl
example.com
*.nl
etc
Sla tot slot je wijzigingen op en sluit het bestand (ctrl + x > y > enter). Een herstart van Exim is in principe niet nodig omdat (op moment van schrijven althans) Exim vooraf geconfigureerd is om deze vorm van whitelisting te ondersteunen.
Daarmee zijn wij aan het eind gekomen van deze handleiding over blacklist- en whitelistcontrole in Exim. Mocht je aan de hand van deze handleiding nog vragen hebben, aarzel dan niet om onze supportafdeling te benaderen. Je kunt hen bereiken via de knop 'Neem contact op' onderaan deze pagina.