Hvordan legge til antivirus og spambeskyttelse til Postfix Mail Server med ClamAV og SpamAssassin - Del 3


I de to foregående artiklene i denne Postfix-serien lærte du hvordan du setter opp og administrerer e-postserverdatabasen gjennom phpMyAdmin, og hvordan du konfigurerer Postfix og Dovecot til å håndtere innkommende og utgående post. I tillegg forklarte vi hvordan du setter opp en e-postklient, for eksempel Thunderbird, for de virtuelle kontoene vi opprettet tidligere.

  1. Konfigurer Postfix Mail Server og Dovecot med MariaDB – Del 1
  2. Hvordan konfigurere Postfix og Dovecot med virtuelle domenebrukere – del 2
  3. Installer og konfigurer RoundCube Webmail Client med virtuelle brukere i Postfix – Del 4
  4. Bruk Sagator, en antivirus-/antispam-gateway for å beskytte e-postserveren din – del 5

Siden ingen e-postserveroppsett kan fullføres uten å ta forholdsregler mot virus og spam, skal vi dekke dette emnet i denne artikkelen.

Vær oppmerksom på at selv når *nix-lignende operativsystemer vanligvis anses for å være virusfrie, er sjansen stor for at klienter som bruker andre operativsystemer også vil koble seg til e-postserveren din.

Av den grunn må du gi dem tillit til at du har tatt nødvendige tiltak for å beskytte dem i den grad det er mulig mot slike trusler.

Konfigurerer SpamAssassin for Postfix

I prosessen med å motta e-post vil spamassassin stå mellom omverdenen og e-posttjenestene som kjører på selve serveren din. Hvis den finner, i henhold til definisjonsreglene og konfigurasjonen, at en innkommende melding er spam, vil den omskrive emnelinjen for å tydelig identifisere den som sådan. La oss se hvordan.

Hovedkonfigurasjonsfilen er /etc/mail/spamassassin/local.cf, og vi bør sørge for at følgende alternativer er tilgjengelige (legg dem til hvis de ikke er til stede eller fjern kommentarer om nødvendig):

report_safe 0
required_score 8.0
rewrite_header Subject [SPAM]

  1. Når report_safe er satt til 0 (anbefalt verdi), endres innkommende spam kun ved å endre e-posthodene i henhold til rewrite_header. Hvis den er satt til 1, vil meldingen bli slettet.
  2. For å angi aggressiviteten til spamfilteret, må required_score følges av et heltall eller desimaltall. Jo lavere tall, jo mer følsomt blir filteret. Det anbefales å sette required_score til en verdi et sted mellom 8.0 og 10.0 for et stort system som betjener mange (~100s) e-postkontoer.

Når du har lagret disse endringene, aktiver og start spamfiltertjenesten, og oppdater deretter spamreglene:

# systemctl enable spamassassin
# systemctl start spamassassin
# sa-update

For flere konfigurasjonsalternativer kan det være lurt å se i dokumentasjonen ved å kjøre perldoc Mail::SpamAssassin::Conf på kommandolinjen.

Integrering av Postfix og SpamAssassin

For å effektivt integrere Postfix og spamassassin, må vi opprette en dedikert bruker og gruppe for å kjøre spamfilterdemonen:

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

Deretter legger du til følgende linje nederst i /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}

Og indiker (øverst) at spamassassin vil fungere som content_filter:

-o content_filter=spamassassin

Til slutt, start Postfix på nytt for å bruke endringer:

# systemctl restart postfix

For å verifisere at SpamAssassin fungerer som den skal og oppdager innkommende spam, leveres en test kjent som GTUBE (Generisk Test for Unsolicited Bulk Email).

For å utføre denne testen, send en e-post fra et domene utenfor nettverket ditt (som Yahoo!, Hotmail eller Gmail) til en konto som ligger på e-postserveren din. Still inn emnelinjen til hva du vil, og ta med følgende tekst i meldingsteksten:

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

For eksempel, sending av teksten ovenfor i en meldingstekst fra Gmail-kontoen min gir følgende resultat:

Og viser den tilsvarende merknaden i loggene:

# journalctl | grep spam

Som du kan se på bildet ovenfor, fikk denne e-postmeldingen en spam-score på 1002,3. I tillegg kan du teste spamassassin rett fra kommandolinjen:

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

Kommandoen ovenfor vil produsere noen virkelig detaljerte utdata som bør inkludere følgende:

Hvis disse testene ikke er vellykkede, kan det være lurt å se integrasjonsveiledningen for spamassassin.

Starter ClamAV og oppdater virusdefinisjoner

For å begynne, må vi redigere /etc/clamd.d/scan.conf. Fjern kommentaren til følgende linje:

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

og kommentere eller slette linjen:

Example

Aktiver og start deretter clamav-skanner-demonen:

# systemctl enable [email 
# systemctl start [email 

og ikke glem å sette antivirus_can_scan_system SELinux boolean til 1:

# setsebool -P antivirus_can_scan_system 1

På dette tidspunktet er det verdt og godt å sjekke tjenestens status:

Som du kan se på bildet ovenfor, er virussignaturene våre eldre enn 7 dager. For å oppdatere dem vil vi bruke et verktøy kalt freshclam som ble installert som en del av clamav-update-pakken.

Den enkleste måten å oppdatere virusdefinisjonene på er gjennom en cron-jobb som utføres så ofte som ønsket (en gang om dagen, for eksempel kl. 01.00 servertid som angitt i følgende eksempel anses som nok):

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

Du kan også oppdatere virusdefinisjonene manuelt, men før må du også fjerne eller kommentere følgende linje i /etc/freshclam.conf.

Example

Nå skal du kunne kjøre:

# freshclam

som vil oppdatere virusdefinisjonene etter ønske:

Tester ClamAV for virus i e-poster

For å bekrefte at ClamAV fungerer som det skal, la oss laste ned et testvirus (som vi kan hente fra http://www.eicar.org/download/eicar.com) til Maildir til [email  (som ligger i /home/ vmail/linuxnewz.com/tecmint/Maildir) for å simulere en infisert fil mottatt som et e-postvedlegg:

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

Og skann deretter katalogen /home/vmail/linuxnewz.com rekursivt:

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

Nå kan du gjerne sette opp denne skanningen til å kjøre gjennom en cronjob. Opprett en fil med navnet /etc/cron.daily/dailyclamscan, sett inn følgende linjer:

#!/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

og gi utførelsestillatelser:

# chmod +x /etc/cron.daily/dailyclamscan

Ovennevnte cronjob vil skanne e-postserverkatalogen rekursivt og legge igjen en logg over operasjonen i /var/log/clamav/dailyclamscan.log (sørg for at /var/log/clamav-katalogen eksisterer).

La oss se hva som skjer når vi sender eicar.com-filen fra [email :

Sammendrag

Hvis du fulgte trinnene som er beskrevet i denne opplæringen og i de to foregående artiklene i denne serien, har du nå en fungerende Postfix-e-postserver med spam- og antivirusbeskyttelse.

ANSVARSFRASKRIVELSE: Vær oppmerksom på at serversikkerhet er et stort emne og ikke kan dekkes tilstrekkelig i en kort serie som denne.

Av den grunn oppfordrer jeg deg til å bli kjent med verktøyene som brukes i denne serien og man-sidene deres. Selv om jeg har gjort mitt beste for å dekke de essensielle konseptene knyttet til dette emnet, ikke anta at du etter å ha gått gjennom denne serien er fullt kvalifisert til å sette opp og vedlikeholde en e-postserver i et produksjonsmiljø.

Denne serien er ment som et utgangspunkt og ikke som en uttømmende guide til administrasjon av e-postserver i Linux.

Du vil sannsynligvis tenke på andre ideer som kan berike denne serien. I så fall, send oss gjerne en melding ved å bruke kommentarskjemaet nedenfor. Spørsmål og andre forslag er også verdsatt – vi ser frem til å høre fra deg!