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.
- Konfigurer Postfix Mail Server og Dovecot med MariaDB – Del 1
- Hvordan konfigurere Postfix og Dovecot med virtuelle domenebrukere – del 2
- Installer og konfigurer RoundCube Webmail Client med virtuelle brukere i Postfix – Del 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]
- 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.
- 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!