Zoeken op website

Antivirus- en spambescherming toevoegen aan Postfix Mail Server met ClamAV en SpamAssassin - Deel 3


In de vorige twee artikelen van deze Postfix serie heb je geleerd hoe je de e-mailserverdatabase kunt opzetten en beheren via phpMyAdmin, en hoe je Postfix en Dovecot kunt configureren om inkomende en uitgaande e-mail te verwerken. Daarnaast hebben we uitgelegd hoe je een mailclient, zoals Thunderbird, instelt voor de virtuele accounts die we eerder hebben aangemaakt.

  1. Postfix Mail Server en Dovecot instellen met MariaDB – Deel 1
  2. Hoe Postfix en Dovecot te configureren met virtuele domeingebruikers – Deel 2
  3. Installeer en configureer RoundCube Webmail Client met virtuele gebruikers in Postfix – Deel 4
  4. Gebruik Sagator, een antivirus-/antispam-gateway om uw mailserver te beschermen – Deel 5

Omdat het instellen van een e-mailserver niet compleet kan zijn zonder voorzorgsmaatregelen tegen virussen en spam te nemen, gaan we dit onderwerp in dit artikel behandelen.

Houd er rekening mee dat zelfs wanneer *nix-achtige besturingssystemen doorgaans als virusvrij worden beschouwd, de kans groot is dat clients die andere besturingssystemen gebruiken ook verbinding zullen maken met uw e-mailserver.

Om die reden moet u hen het vertrouwen geven dat u de nodige maatregelen hebt genomen om hen voor zover mogelijk tegen dergelijke bedreigingen te beschermen.

SpamAssassin configureren voor Postfix

Tijdens het ontvangen van e-mail staat spamassassin tussen de buitenwereld en de e-maildiensten die op uw server zelf draaien. Als het, volgens de definitieregels en configuratie, constateert dat een binnenkomend bericht spam is, zal het de onderwerpregel herschrijven om het duidelijk als zodanig te identificeren. Laten we eens kijken hoe.

Het belangrijkste configuratiebestand is /etc/mail/spamassassin/local.cf, en we moeten ervoor zorgen dat de volgende opties beschikbaar zijn (voeg ze toe als ze niet aanwezig zijn of verwijder de opmerkingen indien nodig):

report_safe 0
required_score 8.0
rewrite_header Subject [SPAM]
  1. Wanneer report_safe is ingesteld op 0 (aanbevolen waarde), wordt inkomende spam alleen gewijzigd door de e-mailheaders aan te passen volgens rewrite_header. Als dit is ingesteld op 1, wordt het bericht verwijderd.
  2. Om de agressiviteit van het spamfilter in te stellen, moet required_score worden gevolgd door een geheel getal of decimaal getal. Hoe lager het getal, hoe gevoeliger het filter wordt. Het instellen van required_score op een waarde ergens tussen 8,0 en 10,0 wordt aanbevolen voor een groot systeem dat veel (~100s) bedient Emailaccounts.

Nadat u deze wijzigingen heeft opgeslagen, schakelt u de spamfilterservice in en start u deze, en werkt u vervolgens de spamregels bij:

systemctl enable spamassassin
systemctl start spamassassin
sa-update

Voor meer configuratieopties kunt u de documentatie raadplegen door perldoc Mail::SpamAssassin::Conf uit te voeren op de opdrachtregel.

Integratie van Postfix en SpamAssassin

Om Postfix en spamassassin efficiënt te integreren, moeten we een speciale gebruiker en groep aanmaken om de spamfilter-daemon uit te voeren:

useradd spamd -s /bin/false -d /var/log/spamassassin

Voeg vervolgens de volgende regel toe onderaan /etc/postfix/master.cf:

spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}

En geef (bovenaan) aan dat spamassassin zal dienen als content_filter:

-o content_filter=spamassassin

Start ten slotte Postfix opnieuw op om de wijzigingen toe te passen:

systemctl restart postfix

Om te verifiëren dat SpamAssassin correct werkt en inkomende spam detecteert, wordt een test aangeboden die bekend staat als GTUBE (Generieke test voor ongevraagde bulk-e-mail).

Om deze test uit te voeren, stuurt u een e-mail van een domein buiten uw netwerk (zoals Yahoo!, Hotmail of Gmail) naar een account op uw e-mailserver. Stel de onderwerpregel in op wat u maar wilt en neem de volgende tekst op in de berichttekst:

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

Het verzenden van de bovenstaande tekst in een berichttekst vanuit mijn Gmail-account levert bijvoorbeeld het volgende resultaat op:

En toont de bijbehorende melding in de logboeken:

journalctl | grep spam

Zoals u in de afbeelding hierboven kunt zien, heeft dit e-mailbericht een spamscore van 1002,3 gekregen. Bovendien kunt u spamassassin rechtstreeks vanaf de opdrachtregel testen:

spamassassin -D < /usr/share/doc/spamassassin-3.4.0/sample-spam.txt

De bovenstaande opdracht zal een zeer uitgebreide uitvoer opleveren die het volgende zou moeten bevatten:

Als deze tests niet succesvol zijn, kunt u de spamassassin-integratiegids raadplegen.

ClamAV starten en virusdefinities bijwerken

Om te beginnen moeten we /etc/clamd.d/scan.conf bewerken. Verwijder het commentaar op de volgende regel:

LocalSocket /var/run/clamd.scan/clamd.sock

en commentaar geven of de regel verwijderen:

Example

Schakel vervolgens de clamav-scannerdaemon in en start deze:

systemctl enable [email 
systemctl start [email 

en vergeet niet om de antivirus_can_scan_system SELinux boolean in te stellen op 1:

setsebool -P antivirus_can_scan_system 1

Op dit punt is het de moeite waard om de status van de service te controleren:

Zoals u in de afbeelding hierboven kunt zien, zijn onze viruskenmerken ouder dan 7 dagen. Om ze bij te werken gebruiken we een tool genaamd freshclam die is geïnstalleerd als onderdeel van het clamav-update pakket.

De eenvoudigste manier om de virusdefinities bij te werken is via een cron-taak die zo vaak wordt uitgevoerd als gewenst (eenmaal per dag bijvoorbeeld om 1 uur servertijd, zoals aangegeven in het volgende voorbeeld, wordt als voldoende beschouwd):

00 01 * * * root /usr/share/clamav/freshclam-sleep

U kunt de virusdefinities ook handmatig bijwerken, maar eerst moet u eerst de volgende regel in /etc/freshclam.conf verwijderen of van commentaar voorzien.

Example

Nu zou je het volgende moeten kunnen uitvoeren:

freshclam

waarmee de virusdefinities naar wens worden bijgewerkt:

ClamAV testen op virussen in e-mails

Om te controleren of ClamAV correct werkt, downloaden we een testvirus (dat we kunnen ophalen van http://www.eicar.org/download/eicar.com) naar de maildir van [email  ( die zich bevindt in /home/vmail/linuxnewz.com/tecmint/Maildir) om een geïnfecteerd bestand te simuleren dat is ontvangen als e-mailbijlage:

cd /home/vmail/linuxnewz.com/tecmint/Maildir
wget http://www.eicar.org/download/eicar.com

En scan vervolgens de map /home/vmail/linuxnewz.com recursief:

clamscan --infected --remove --recursive /home/vmail/linuxnewz.com

U kunt deze scan nu zo instellen dat deze een cronjob uitvoert. Maak een bestand met de naam /etc/cron.daily/dailyclamscan en voeg de volgende regels in:

#!/bin/bash
SCAN_DIR="/home/vmail/linuxnewz.com"
LOG_FILE="/var/log/clamav/dailyclamscan.log"
touch $LOG_FILE
/usr/bin/clamscan --infected --remove --recursive $SCAN_DIR >> $LOG_FILE

en geef uitvoeringsrechten:

chmod +x /etc/cron.daily/dailyclamscan

De bovenstaande cronjob scant de map van de mailserver recursief en laat een logboek van de werking ervan achter in /var/log/clamav/dailyclamscan.log (zorg ervoor dat /var/log/clamav map bestaat).

Laten we eens kijken wat er gebeurt als we het bestand eicar.com van [email  naar [email  sturen:

Samenvatting

Als u de stappen in deze zelfstudie en in de vorige twee artikelen van deze serie hebt gevolgd, beschikt u nu over een werkende Postfix-e-mailserver met spam- en antivirusbescherming.

DISCLAIMER: houd er rekening mee dat serverbeveiliging een uitgebreid onderwerp is en niet voldoende kan worden behandeld in een korte serie als deze.

Om die reden moedig ik u ten zeerste aan om vertrouwd te raken met de tools die in deze serie worden gebruikt en hun manpagina's. Hoewel ik mijn best heb gedaan om de essentiële concepten die verband houden met dit onderwerp te behandelen, mag u er niet van uitgaan dat u na het doornemen van deze serie volledig gekwalificeerd bent om een e-mailserver in een productieomgeving op te zetten en te onderhouden.

Deze serie is bedoeld als startpunt en niet als een uitputtende gids voor mailserverbeheer in Linux.

Je zult waarschijnlijk nog andere ideeën bedenken die deze serie kunnen verrijken. Als dat zo is, kunt u ons een bericht sturen via het onderstaande opmerkingenformulier. Vragen en andere suggesties worden ook op prijs gesteld – we horen graag van u!