Sådan tilføjes antivirus- og spambeskyttelse til Postfix Mail Server med ClamAV og SpamAssassin - Del 3


I de to foregående artikler i denne Postfix-serie lærte du, hvordan du opsætter og administrerer e-mailserverdatabasen via phpMyAdmin, og hvordan du konfigurerer Postfix og Dovecot til at håndtere indgående og udgående mail. Derudover forklarede vi, hvordan man opretter en mailklient, såsom Thunderbird, til de virtuelle konti, vi oprettede tidligere.

  1. Opsæt Postfix Mail Server og Dovecot med MariaDB - Del 1
  2. Sådan konfigureres Postfix og Dovecot med brugere af virtuelle domæner - Del 2
  3. Installer og konfigurer RoundCube Webmail Client med virtuelle brugere i Postfix - del 4
  4. Brug Sagator, en antivirus/antispam-gateway til at beskytte din mailserver - del 5

Da ingen opsætning af e-mail-server kan være komplet uden at tage forholdsregler mod vira og spam, vil vi dække dette emne i den aktuelle artikel.

Husk, at selv når * nix-lignende operativsystemer normalt betragtes som virafrie, er det sandsynligt, at klienter, der bruger andre operativsystemer, også opretter forbindelse til din e-mail-server.

Af den grund skal du give dem tillid til, at du har truffet de nødvendige foranstaltninger for at beskytte dem i videst muligt omfang mod sådanne trusler.

Konfiguration af SpamAssassin til Postfix

I processen med at modtage e-mail vil spamassassin stå mellem omverdenen og de e-mail-tjenester, der kører på selve din server. Hvis det ifølge dens definitionsregler og konfiguration finder ud af, at en indgående besked er spam, vil den omskrive emnelinjen for klart at identificere den som sådan. Lad os se hvordan.

Hovedkonfigurationsfilen er /etc/mail/spamassassin/local.cf , og vi skal sørge for, at følgende indstillinger er tilgængelige (tilføj dem, hvis de ikke er til stede, eller hvis det er nødvendigt at kommentere):

report_safe 0
required_score 8.0
rewrite_header Subject [SPAM]

  1. Når report_safe er indstillet til 0 (anbefalet værdi), ændres indgående spam kun ved at ændre e-mail-overskrifterne pr. rewrite_header. Hvis den er indstillet til 1, slettes beskeden.
  2. For at indstille spamfilterets aggressivitet skal required_score efterfølges af et heltal eller decimal. Jo mindre antallet er, jo mere følsomt bliver filteret. Det anbefales at indstille required_score til en værdi et sted mellem 8.0 og 10.0 til et stort system, der betjener mange (~ 100s) e-mail-konti.

Når du har gemt disse ændringer, skal du aktivere og starte spamfiltertjenesten og derefter opdatere spamreglerne:

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

For flere konfigurationsindstillinger, kan du henvise til dokumentationen ved at køre perldoc Mail :: SpamAssassin :: Conf på kommandolinjen.

Integrering af Postfix og SpamAssassin

For effektivt at integrere Postfix og spamassassin bliver vi nødt til at oprette en dedikeret bruger og gruppe til at køre spamfilter-dæmonen:

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

Dernæst tilføj følgende linje i bunden af /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 angiv (øverst), at spamassassin fungerer som content_filter:

-o content_filter=spamassassin

Endelig genstart Postfix for at anvende ændringer:

# systemctl restart postfix

For at kontrollere, at SpamAssassin fungerer korrekt og detekterer indgående spam, leveres en test kendt som GTUBE (Generic Test for Uonsolic Bulk Email).

For at udføre denne test skal du sende en e-mail fra et domæne uden for dit netværk (såsom Yahoo !, Hotmail eller Gmail) til en konto, der findes på din e-mail-server. Indstil emnelinjen til det, du vil have, og medtag følgende tekst i meddelelsens brødtekst:

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

For eksempel giver afsendelse af ovenstående tekst i en meddelelsestekst fra min Gmail-konto følgende resultat:

Og viser den tilsvarende meddelelse i logfilerne:

# journalctl | grep spam

Som du kan se på billedet ovenfor, fik denne e-mail-besked en spam-score på 1002,3. Derudover kan du teste spamassassin lige fra kommandolinjen:

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

Ovenstående kommando vil producere noget virkelig detaljeret output, der skal omfatte følgende:

Hvis disse tests ikke lykkes, kan du henvise til guide til integrering af spamassassin.

Start af ClamAV og opdater virusdefinitioner

For at begynde med bliver vi nødt til at redigere /etc/clamd.d/scan.conf . Fjern kommentar til følgende linje:

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

og kommenter eller slet linjen:

Example

Aktiver og start derefter clamav scannerdemon:

# systemctl enable [email 
# systemctl start [email 

og glem ikke at indstille antivirus_can_scan_system SELinux boolean til 1:

# setsebool -P antivirus_can_scan_system 1

På dette tidspunkt er det værd og godt at kontrollere tjenestens status:

Som du kan se på billedet ovenfor, er vores virussignaturer ældre end 7 dage. For at opdatere dem bruger vi et værktøj kaldet freshclam, der blev installeret som en del af clamav-opdateringspakken.

Den nemmeste måde at opdatere virusdefinitionerne er gennem et cron-job, der udføres så ofte som ønsket (f.eks. En gang om dagen kl. 1 servertid som angivet i følgende eksempel betragtes som tilstrækkelig):

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

Du kan også opdatere virusdefinitionerne manuelt, men inden du også skal fjerne eller kommentere følgende linje i /etc/freshclam.conf .

Example

Nu skal du kunne køre:

# freshclam

som opdaterer virusdefinitionerne som ønsket:

Test af ClamAV for virus i e-mails

For at bekræfte, at ClamAV fungerer korrekt, lad os downloade en testvirus (som vi kan få fra http://www.eicar.org/download/eicar.com) til Maildir fra [email (som er placeret i/home/vmail/linuxnewz.com/tecmint/Maildir) for at simulere en inficeret fil modtaget som en vedhæftet fil:

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

Og scan derefter /home/vmail/linuxnewz.com kataloget rekursivt:

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

Nu er du velkommen til at oprette denne scanning til at løbe gennem en cronjob. Opret en fil med navnet /etc/cron.daily/dailyclamscan , indsæt 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 give udfør tilladelser:

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

Ovenstående cronjob scanner mailserverkataloget rekursivt og efterlader en log over dets funktion i /var/log/clamav/dailyclamscan.log (sørg for, at kataloget/var/log/clamav findes).

Lad os se, hvad der sker, når vi sender eicar.com-filen fra [email :

Resumé

Hvis du fulgte trinnene beskrevet i denne vejledning og i de to foregående artikler i denne serie, har du nu en fungerende Postfix-mailserver med spam- og antivirusbeskyttelse.

ANSVARSFRASKRIVELSE: Bemærk, at serversikkerhed er et stort emne og ikke kan dækkes tilstrækkeligt i en kort serie som denne.

Af den grund opfordrer jeg dig til at blive fortrolig med de værktøjer, der bruges i denne serie og deres mandsider. Selvom jeg har gjort mit bedste for at dække de væsentlige begreber, der er knyttet til dette emne, skal du ikke antage, at du efter at have gennemgået denne serie er fuldt kvalificeret til at oprette og vedligeholde en e-mail-server i et produktionsmiljø.

Denne serie er beregnet som et udgangspunkt og ikke som en udtømmende guide til mailserveradministration i Linux.

Du vil sandsynligvis tænke på andre ideer, der kan berige denne serie. I så fald er du velkommen til at sende os en note ved hjælp af nedenstående kommentarformular. Spørgsmål og andre forslag værdsættes også - vi ser frem til at høre fra dig!