Bots en andere kwaadwillenden sturen veel spam per e-mail. Hierbij proberen ze kwetsbaarheden op servers (e.g. je VPS) uit te buiten om spam te versturen vanaf een geïnfecteerde mailserver. Het is dan ook belangrijk om naast een goede algemene beveiliging van je VPS om op je mailserver anti-spam software te gebruiken.
In deze tutorial laten wij zien hoe je voor een mailserver met Postfix en Dovecot gebruik maakt van SpamAssassin als spam-beveiliging.
- Voor de stappen in deze handleiding is een VPS met Ubuntu, Debian, CentOS Stream, AlmaLinux of Rocky Linux met Postfix en Dovecot nodig. In deze handleiding leggen wij uit hoe je Postfix en Dovecot installeert en configureert. Wij gaan er voor deze handleiding vanuit dat je die handleiding hebt doorlopen.
- Voer de commando's in dit artikel uit met sudo, of als root-user.
Spamassassin in het kort
Spamassassin scant mail op elementen die het herkent als mogelijke kenmerken van spam, denk hierbij aan zaken als:
- Een kleine hoeveelheid tekst in verhouding tot het aantal afbeeldingen in een mail
- Een onderwerp van de mail dat uit hoofdletters bestaat
- Een ongeldig of afwezig DKIM-record (steeds meer partijen laten mail automatisch als spam tegenhouden als het geen DKIM heeft, zie ook deze handleiding)
- etc.
Wanneer Spamassassin dit soort kenmerken ziet, geeft het een score voor dat kenmerk. De score is hoger wanneer het specifieke kenmerk vaak in spam terug komt. Spamassassin telt alle scores op en als het een vooraf ingestelde waarde bereikt, wordt de mail als spam tegengehouden.
Spamassassin installeren en configureren
Stap 1
Verbind met je VPS via SSH of de VPS-console in het TransIP-controlepaneel.
Stap 2
Installeer SpamAssassin met:
Ubuntu & Debian:
apt -y install spamassassin
CentOS Stream, AlmaLinux & Rocky Linux:
dnf -y install spamassassin
Stap 3
Open vervolgens de master-configuratie van Postfix:
nano /etc/postfix/master.cf
Stap 4
Breid bovenaan het bestand de smtp-regel uit zodat die er uit ziet zoals hieronder:
smtp inet n - n - - smtpd -o content_filter=spamassassin
Scroll vervolgens helemaal naar onderen in het bestand en voeg de volgende code toe:
spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
Sla de wijzigingen op en sluit het bestand (ctrl + x > y > enter).
Stap 5
Standaard staat SpamAssassin ingesteld om bij een score van 5 mail als spam tegen te houden (zie 'Spamassassin in het kort'). Dit is een behoorlijk stricte controle die tot de nodige false positives kan leiden. We zien dit bijvoorbeeld vaker terug wanneer oudere mailsoftware gebruikt wordt om mails te versturen. Oude software bevat vaak fouten in de opmaak van de mails, waardoor die als spam kan worden aangemerkt.
We raden dan ook aan om een waarde van 7 tot 10 te gebruiken in plaats van 5. Je past dit aan in het volgende bestand:
nano /etc/mail/spamassassin/local.cf
Pas de waarde van de required_hits aan naar de gewenste waarde, bijvoorbeeld:
required_hits 8
Spamberichten krijgen de toevoeging [SPAM] achter het onderwerp. Je bent vrij dit aan te passen door het blokje rewrite_header Subject [SPAM] aan te passen.
Sla daarna je wijzigingen op en sluit het bestand (ctrl + x > y > enter).
Individuele Spamassassin-regels vind je in de bestanden in /usr/share/spamassassin. De inhoud van deze bestanden valt buiten de scope van deze handleiding.
Stap 6
Voeg vervolgens een gebruiker toe voor SpamAssassin zodat Postfix met SpamAssassin kan communiceren:
groupadd spamd
useradd -g spamd -s /bin/false -d /var/log/spamassassin spamd
chown spamd:spamd /var/log/spamassassin
Stap 7
Herstart Spamassassin, update de spam regels en herstart Postfix:
systemctl enable spamassassin
systemctl start spamassassin
sa-update
systemctl restart postfix
Stap 8 - optioneel
Je kunt automatisch de spamregels laten updaten via een cronjob, bijvoorbeeld door crontab te openen (met sudo of als root):
crontab -e
Voeg de volgende regel onderaan het bestand toe. Hiermee worden de spamregels iedere zondag om 0:00 geupdated:
0 0 * * 0 sa-update && systemctl restart spamassassin
Sla de wijzigingen op en sluit de crontab tot slot met :wq!
Daarmee zijn we aan het eind van deze tutorial gekomen. Er zijn echter nog aanvullende controles die je kunt uitvoeren om te kijken of mail spam is: blacklist-controle. Hoe je blacklist-controle inschakelt leggen wij in deze tutorial uit.
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.