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 CentOS 7 of CentOS Stream 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.
- Voor de stappen in dit artikel is een CentOS 7 of Stream VPS met Exim en Dovecot nodig. In deze handleiding leggen wij uit hoe je Exim en Dovecot opzet. Wij gaan er in deze handleiding vanuit dat je die handleiding hebt doorlopen.
- Voer de stappen 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:
nano /etc/exim/exim.conf
Stap 3
Zoek op 'blacklists' (met ctrl shift _ gevolgd door v). Je komt dan uit op de volgende code:
#############################################################################
# There are no default checks on DNS black lists because the domains that
# contain these lists are changing all the time. However, here are two
# examples of how you can get Exim to perform a DNS black list lookup at this
# point. The first one denies, whereas the second just warns. The third
# triggers greylisting for any host in the blacklist.
#
# deny message = rejected because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text
# dnslists = black.list.example
#
# warn dnslists = black.list.example
# add_header = X-Warning: $sender_host_address is in a black list at $dnslist_domain
# log_message = found in $dnslist_domain
#
# warn dnslists = black.list.example
# set acl_m_greylistreasons = Host found in $dnslist_domain\n$acl_m_greylistreasons
#
#############################################################################
Het voorbeeld legt de werking uit. Voeg onder het bovenstaande stuk de volgende code toe:
deny message = Sender is blacklisted at $dnslist_domain dnslists =
sbl.spamhaus.org : \dnsbl.sorbs.net : \ cbl.abuseat.org : \ bl.spamcop.net : \ b.barracudacentral.org : \ zen.spamhaus.org : \ dsn.rfc-ignorant.org/$sender_address_domain
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/access control lists vind je hier in Exim's documentatie.
Sla hierna je wijzigingen op en sluit het bestand (ctrl + x > y > enter).
Stap 4
Herstart tot slot Exim om de wijzigingen te verwerken:
systemctl restart exim
Inkomende mail wordt nu automatisch gescand om te controleren of de verzender in een blacklist staat.
Handmatige blacklist
Stap 1
Verbind met je VPS via SSH of de VPS-console in het TransIP-controlepaneel.
Stap 2
Open de configuratie van Exim:
nano /etc/exim/exim.conf
Stap 3
Zoek op 'domainlist' (met ctrl shift _ gevolgd door v). Je ziet hier al twee opties: een domainlist voor local_domains en een domainlist voor relay_to_domains. Voeg daar onder de volgende toe:
domainlist exim_blacklist = lsearch;/etc/exim_blacklist
Hiermee geef je aan dat de exim_blacklist bestaat uit de gegevens in het bestand /etc/exim_blacklist.
Stap 4
Scroll naar het 'ROUTERS CONFIGURATION'-deel en voeg onderstaande router toe voor de andere routers (bijvoorbeeld direct onder 'begin routers').
# Exim manual blacklist
manual_blacklist:
driver = redirect
domains = +exim_blacklist
allow_fail
data = :fail:Connection rejected: SPAM source $domain is manually blacklisted
Routers worden een voor een afgegaan om te kijken of de daarvoor ingestelde voorwaarde overeenkomt met de ingestelde voorwaarden. Om deze reden plaats je de blacklist-router bovenaan, zodat de blacklist-controle wordt uitgevoerd voor Exim iets anders met de mail kan doen.
Sla hierna je wijzigingen op en sluit het bestand (ctrl + x > y > enter).
Stap 5
Open het bestand waar de blacklist in staat (die je in stap 3 hebt ingesteld):
nano /etc/exim_blacklist
Stap 6
Voeg hierin 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).
Stap 7
Herstart tot slot Exim om de wijzigingen te verwerken:
systemctl restart exim
Inkomende mail wordt nu automatisch gescand om te controleren of de verzender in je eigen blacklist staat.
Daarmee zijn wij aan het eind gekomen van deze handleiding over blacklist controle 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.