BitNotice #108 - Rspamd: Server-SPAM-Filter mit Postfix
Innholdsfortegnelse:
- Forutsetninger
- Installer Redis
- Installer ubundet
- Installer Rspamd
- Konfigurer Rspamd
- Konfigurer Nginx
- Konfigurer Postfix
- Konfigurer Dovecot
- Lag DKIM-nøkler
- DNS-innstillinger
- Konklusjon
Dette er den tredje delen av vår Konfigurering og konfigurering av en postserver. I denne opplæringen vil vi gå gjennom installasjonen og konfigurasjonen av Rspamd spamfiltreringssystem og dets integrering i vår postserver, og lage DKIM og DMARC DNS-poster.
Du kan spørre hvorfor velger vi å gå med Rspamd og ikke med Spamassassin. Rspamd er mer aktivt vedlikeholdt og skrevet i C, og det er mye raskere enn Spamassassin som er skrevet i Perl. En annen grunn er at Rspamd kommer med en DKIM-signeringsmodul, slik at vi ikke trenger å bruke en annen programvare for å signere utgående e-postmeldinger.
Forutsetninger
Før du fortsetter med denne opplæringen, må du sørge for at du er logget inn som en bruker med sudo-rettigheter.
Installer Redis
Redis vil bli brukt som et lagrings- og cache-system av Rspamd, for å installere det bare å kjøre:
Installer ubundet
Unbound er en veldig sikker validering, rekursiv og hurtigbufrende DNS-resolver.
Hovedhensikten med å installere denne tjenesten er å redusere antall eksterne DNS-forespørsler. Dette trinnet er valgfritt og kan hoppes over.
sudo apt update
sudo apt install unbound
Standard Ubundne innstillinger skal være tilstrekkelig for de fleste servere.
Kjør følgende kommandoer for å stille ubundet som din primære DNS-resolver.
sudo echo "nameserver 127.0.0.1" >> /etc/resolvconf/resolv.conf.d/head
sudo resolvconf -u
Hvis du ikke bruker
resolvconf
må du redigere filen
/etc/resolv.conf
manuelt.
Installer Rspamd
Vi vil installere den siste stabile versjonen av Rspamd fra det offisielle depotet.
Start med å installere nødvendige pakker:
sudo apt install software-properties-common lsb-release
sudo apt install lsb-release wget
Legg repository GPG-nøkkel til nøkkelring av apt kilder ved hjelp av følgende wget-kommando:
wget -O- https://rspamd.com/apt-stable/gpg.key | sudo apt-key add -
Aktiver Rspamd-depotet ved å kjøre:
echo "deb http://rspamd.com/apt-stable/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/rspamd.list
Når depotet er aktivert, må du oppdatere pakkeindeksen og installere Rspamd ved hjelp av følgende kommandoer:
sudo apt update
sudo apt install rspamd
Konfigurer Rspamd
I stedet for å endre
/etc/rspamd/local.d/local.d/
vil vi opprette nye filer i katalogen
/etc/rspamd/local.d/local.d/
som vil overskrive standardinnstillingen.
Som standard Rspamds
normal worker
arbeideren som skanner e-postmeldinger lytter på alle grensesnitt på port 11333. Lag følgende fil for å konfigurere Rspamd normalarbeider til å kun lytte til localhost-grensesnitt:
bind_socket = "127.0.0.1:11333";
proxy worker
lytter på port 11332 og støtter milter-protokoll. For at Postfix skal kommunisere med Rspamd, må vi aktivere vekslingsmodus:
bind_socket = "127.0.0.1:11332"; milter = yes; timeout = 120s; upstream "local" { default = yes; self_scan = yes; }
Deretter må vi sette opp et passord for
controller worker
server som gir tilgang til Rspamd-webgrensesnittet. Slik genererer du et kryptert passordkjøring:
rspamadm pw --encrypt -p P4ssvv0rD
Utgangen skal se slik ut:
$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb
Ikke glem å endre passordet (
P4ssvv0rD
) til noe sikrere.
Kopier passordet fra terminalen din og lim det inn i konfigurasjonsfilen:
/etc/rspamd/local.d/worker-controller.inc
password = "$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb";
Senere konfigurerer vi Nginx som en omvendt proxy til kontrollerarbeiderens webserver slik at vi får tilgang til Rspamd webgrensesnitt.
Angi Redis som en backend for Rspamd-statistikk ved å legge til følgende linjer i filen
classifier-bayes.conf
:
servers = "127.0.0.1"; backend = "redis";
Åpne filen
milter_headers.conf
, og angi
milter_headers.conf
:
use =;
Du kan finne mer informasjon om milteroverskriftene her.
Endelig start Rspamd-tjenesten på nytt for at endringene skal tre i kraft:
Konfigurer Nginx
I den første delen av denne serien opprettet vi en Nginx-serverblokk for PostfixAdmin-forekomsten.
Åpne Nginx-konfigurasjonsfilen og legg til følgende stedsdirektiv, den som er uthevet i gult:
/etc/nginx/sites-enabled/mail.linuxize.com.conf
… location /rspamd { proxy_pass http://127.0.0.1:11334/; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }…
Last inn Nginx-tjenesten på nytt for at endringer skal tre i kraft:
sudo systemctl reload nginx
Gå over til
https://mail.linuxize.com/rspamd/
, skriv inn passordet du tidligere genererte ved å bruke
rspamadm pw
kommandoen, og du vil bli presentert for Rspamd-webgrensesnittet.
Konfigurer Postfix
Vi må konfigurere Postfix for å bruke Rspamd milter.
Kjør følgende kommando for å oppdatere Postfix hovedkonfigurasjonsfil:
sudo postconf -e "milter_protocol = 6"
sudo postconf -e "milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}"
sudo postconf -e "milter_default_action = accept"
sudo postconf -e "smtpd_milters = inet:127.0.0.1:11332"
sudo postconf -e "non_smtpd_milters = inet:127.0.0.1:11332"
Start Postfix-tjenesten på nytt for at endringene skal tre i kraft:
sudo systemctl restart postfix
Konfigurer Dovecot
Vi har allerede installert og konfigurert Dovecot i den andre delen av denne serien, og nå vil vi installere silfiltreringsmodulen og integrere Dovecot med Rspamd.
Begynn med å installere Dovecot-filtreringsmodulen:
sudo apt install dovecot-sieve dovecot-managesieved
Når pakkene er installert, åpner du følgende filer og redigerer linjene som er uthevet i gult.
/etc/dovecot/conf.d/20-lmtp.conf
… protocol lmtp { postmaster_address = [email protected] mail_plugins = $mail_plugins sieve }…
/etc/dovecot/conf.d/20-imap.conf
… protocol imap {… mail_plugins = $mail_plugins imap_quota imap_sieve… }…
/etc/dovecot/conf.d/20-managesieve.conf
… service managesieve-login { inet_listener sieve { port = 4190 }… }… service managesieve { process_limit = 1024 }…
/etc/dovecot/conf.d/90-sieve.conf
plugin {… # sieve = file:~/sieve;active=~/.dovecot.sieve sieve_plugins = sieve_imapsieve sieve_extprograms sieve_before = /var/mail/vmail/sieve/global/spam-global.sieve sieve = file:/var/mail/vmail/sieve/%d/%n/scripts;active=/var/mail/vmail/sieve/%d/%n/active-script.sieve imapsieve_mailbox1_name = Spam imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_before = file:/var/mail/vmail/sieve/global/report-spam.sieve imapsieve_mailbox2_name = * imapsieve_mailbox2_from = Spam imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_before = file:/var/mail/vmail/sieve/global/report-ham.sieve sieve_pipe_bin_dir = /usr/bin sieve_global_extensions = +vnd.dovecot.pipe…. }
Lagre og lukk filene.
Lag en katalog for silskriptene:
mkdir -p /var/mail/vmail/sieve/global
Lag et globalt siktfilter for å flytte e-postmeldinger som er merket som søppelpost, til
Spam
katalogen:
require; if anyof(header:contains "YES", header:contains "Yes", header:contains "*** SPAM ***") { fileinto:create "Spam"; stop; }
Følgende to silskripter vil bli utløst når du flytter en e-post inn eller ut av
Spam
katalogen:
require; pipe:copy "rspamc";
/var/mail/vmail/sieve/global/report-ham.sieve
require; pipe:copy "rspamc";
Start Dovecot-tjenesten på nytt for at endringene skal tre i kraft:
sudo systemctl restart dovecot
Sett sammen silskript og angi riktige tillatelser:
sievec /var/mail/vmail/sieve/global/spam-global.sieve
sievec /var/mail/vmail/sieve/global/report-spam.sieve
sievec /var/mail/vmail/sieve/global/report-ham.sieve
sudo chown -R vmail: /var/mail/vmail/sieve/
Lag DKIM-nøkler
DomainKeys Identified Mail (DKIM) er en e-postgodkjenningsmetode som legger til en kryptografisk signatur til utgående meldingsoverskrifter. Den lar mottakeren bekrefte at en e-postmelding som hevder at stammer fra et spesifikt domene, faktisk ble autorisert av eieren av det domenet. Hovedhensikten med dette er å forhindre forfalskede e-postmeldinger.
Vi kan ha forskjellige DKIM-nøkler for alle domenene våre og til og med flere nøkler for et enkelt domene, men for enkelhetens skyld vil vi bruke en enkelt DKIM-nøkkel som senere kan brukes for alle nye domener.
Opprett en ny katalog for å lagre DKIM-nøkkelen og generer en ny DKIM-tastatur med
rspamadm
verktøyet:
sudo mkdir /var/lib/rspamd/dkim/
rspamadm dkim_keygen -b 2048 -s mail -k /var/lib/rspamd/dkim/mail.key | sudo tee -a /var/lib/rspamd/dkim/mail.pub
rspamadm dkim_keygen -b 2048 -s mail -k /var/lib/rspamd/dkim/mail.key | sudo tee -a /var/lib/rspamd/dkim/mail.pub
I eksemplet over bruker vi
mail
som DKIM-velger.
Du skal nå ha to nye filer i
/var/lib/rspamd/dkim/
katalogen,
mail.key
som er vår private nøkkelfil og
mail.pub
en fil som inneholder DKIM offentlig nøkkel. Vi vil oppdatere våre DNS-sone-poster senere.
Angi riktig eierforhold og tillatelser:
sudo chown -R _rspamd: /var/lib/rspamd/dkim
sudo chmod 440 /var/lib/rspamd/dkim/*
Nå må vi fortelle Rspamd hvor vi skal lete etter DKIM-tasten, velgerens navn og den siste linjen vil aktivere DKIM-signering for alias avsenderadresser. Slik lager du en ny fil med følgende innhold:
/etc/rspamd/local.d/dkim_signing.conf
selector = "mail"; path = "/var/lib/rspamd/dkim/$selector.key"; allow_username_mismatch = true;
Rspamd støtter også signering av signaturer på Authenticated Receiver Chain (ARC). Du finner mer informasjon om ARC-spesifikasjonen her.
Rspamd bruker DKIM-modulen for å håndtere ARC-signaturer, slik at vi bare kan kopiere den forrige konfigurasjonen:
sudo cp /etc/rspamd/local.d/dkim_signing.conf /etc/rspamd/local.d/arc.conf
Start Rspamd-tjenesten på nytt for at endringene skal tre i kraft:
DNS-innstillinger
Vi har allerede opprettet et DKIM-nøkkelpar, og nå må vi oppdatere DNS-sonen vår. DKIM offentlig nøkkel er lagret i
mail.pub
filen. Innholdet i filen skal se slik ut:
cat /var/lib/rspamd/dkim/mail.pub
mail._domainkey IN TXT ("v=DKIM1; k=rsa; " "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGaVuUZBmi4ZTg0O4yl" "nVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB");
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGaVuUZBmi4ZTg0O4ylnVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB
Vi vil også opprette en
DMARC
meldingsautentisering (
DMARC
) som er designet for å fortelle den mottakende serveren om ikke å godta en e-post fra en bestemt avsender. I utgangspunktet vil det beskytte domenet ditt mot direkte spoofing av domener og forbedre ditt omdømme for domenet.
vi vil implementere følgende DMARC-policy:
_dmarc IN TXT "v=DMARC1; p=none; adkim=r; aspf=r;"
La oss bryte ned ovennevnte DMARC-post:
-
v=DMARC1
- Dette er DMARC-identifikatorenp=none
- Dette forteller mottakeren hva han skal gjøre med meldinger som mislykkes i DMARC. I vårt tilfelle er den satt til ingen, noe som betyr ikke gjøre noen tiltak hvis en melding mislykkes DMARC. Du kan også bruke 'avvis' ellerquarantine
adkim=r
ogaspf=r
-DKIM
ogSPF
justering,r
for Relaxed ogs
for Strict, i vårt tilfelle bruker vi Relaxed Alignment for både DKIM og SPF.
Samme som før hvis du kjører din egen Bind DNS-server, trenger du bare å kopiere og lime inn posten i
_dmarc
, og hvis du bruker en annen DNS-leverandør, må du opprette en TXT-post med
_dmarc
som navn og
v=DMARC1; p=none; adkim=r; aspf=r;
v=DMARC1; p=none; adkim=r; aspf=r;
som en verdi / innhold.
Det kan ta litt tid før DNS-endringene forplanter seg. Du kan sjekke om postene har forplantet seg ved hjelp av dig-kommandoen:
dig mail._domainkey.linuxize.com TXT +short
"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGa" "VuUZBmi4ZTg0O4ylnVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFdepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB"
dig _dmarc.linuxize.com TXT +short
"v=DMARC1; p=none; adkim=r; aspf=r;"
Du kan også inspisere domenets gjeldende DMARC-policy eller lage din egen DMARC-policy her.
Konklusjon
Det er det for denne delen av opplæringen. I neste del av denne serien fortsetter vi med RoundCube installasjon og konfigurasjon.
postserver postfix dovecot dns rspamdDette innlegget er en del av Konfigurering og konfigurering av en postserver-serie.
Andre innlegg i denne serien:
• Konfigurer en postserver med PostfixAdmin • Installer og konfigurer Postfix og Dovecot • Installer og integrer Rspamd • Installer og konfigurer Roundcube WebmailIntegrer Plus for YouTube: Forbedre YouTube-seeropplevelsen

Embed Plus For YouTube legger du til ekstra spillerfunksjoner som bør være i YouTube som standard. Med DVD-lignende kontroller, søte spotmarkering og overvåkning av andre nettsteder for kommentarer, er dette en utvidelse som alle Chrome-bruker YouTube-fans bør prøve.
Integrer stavekontroll i hver Windows-app med tinyspell

Lær hvordan du integrerer stavekontroll i alle Windows-applikasjoner med tinySpell.
Integrer dropbox med yahoo-post for å sende store vedlegg

Slik integrerer du Dropbox med Yahoo Mail for å sende store filer som e-postvedlegg.