Android

Instalați și integrați rspamd

How to Stop Spam With Postfix Linux Email Server

How to Stop Spam With Postfix Linux Email Server

Cuprins:

Anonim

Aceasta este a treia parte din Configurarea și configurarea noastră a unui server de poștă. În acest tutorial vom parcurge instalarea și configurarea sistemului de filtrare a spamului Rspamd și integrarea acestuia în serverul nostru de poștă, creând înregistrări DNS DKIM și DMARC.

Poate vă întrebați de ce alegem să mergem cu Rspamd și nu cu Spamassassin. Rspamd este mai activ menținut și scris în C și este mult mai rapid decât Spamassassin, care este scris în Perl. Un alt motiv este că Rspamd vine cu un modul de semnare DKIM, astfel încât nu va trebui să folosim un alt software pentru a semna e-mailurile noastre de ieșire.

Cerințe preliminare

Înainte de a continua cu acest tutorial, asigurați-vă că sunteți autentificat ca utilizator cu privilegii sudo.

Instalați Redis

Redis va fi utilizat ca sistem de stocare și de cache de către Rspamd, pentru a-l instala doar rula:

sudo apt install redis-server

Instalați Neconsolidat

Unbound este o rezolvare DNS de validare, recursivă și caching DNS foarte sigură.

Scopul principal al instalării acestui serviciu este reducerea numărului de solicitări DNS externe. Acest pas este opțional și poate fi omis.

sudo apt update sudo apt install unbound

Setările implicite Neconsolidate ar trebui să fie suficiente pentru majoritatea serverelor.

Pentru a seta nelegat ca rezoluție DNS principală a serverului, executați următoarele comenzi:

sudo echo "nameserver 127.0.0.1" >> /etc/resolvconf/resolv.conf.d/head sudo resolvconf -u Dacă nu utilizați resolvconf atunci trebuie să editați fișierul /etc/resolv.conf manual.

Instalați Rspamd

Vom instala cea mai recentă versiune stabilă a Rspamd din depozitul său oficial.

Începeți să instalați pachetele necesare:

sudo apt install software-properties-common lsb-release sudo apt install lsb-release wget

Adăugați cheia GPG a depozitului la cheia de surse apt, folosind următoarea comandă wget:

wget -O- https://rspamd.com/apt-stable/gpg.key | sudo apt-key add -

Activați depozitul Rspamd rulând:

echo "deb http://rspamd.com/apt-stable/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/rspamd.list

Odată ce depozitul este activat, actualizați indexul pachetului și instalați Rspamd folosind următoarele comenzi:

sudo apt update sudo apt install rspamd

Configurați Rspamd

În loc să modificăm fișierele de configurare stoc, vom crea noi fișiere în directorul /etc/rspamd/local.d/local.d/ care va suprascrie setarea implicită.

În mod implicit, normal worker al Rspamd, muncitorul care scanează mesajele de e-mail ascultă toate interfețele din portul 11333. Creați următorul fișier pentru a configura lucrătorul normal Rspamd pentru a asculta doar interfața localhost:

/etc/rspamd/local.d/worker-normal.inc

bind_socket = "127.0.0.1:11333";

proxy worker ascultă portul 11332 și acceptă protocolul milter. Pentru ca Postfix să comunice cu Rspamd, trebuie să activăm modul de milter:

/etc/rspamd/local.d/worker-proxy.inc

bind_socket = "127.0.0.1:11332"; milter = yes; timeout = 120s; upstream "local" { default = yes; self_scan = yes; }

În continuare, trebuie să stabilim o parolă pentru serverul de lucru al controller worker care oferă acces la interfața web Rspamd. Pentru a genera o parolă criptată rulați:

rspamadm pw --encrypt -p P4ssvv0rD

Produsul ar trebui să arate așa:

$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb Nu uitați să schimbați parola ( P4ssvv0rD ) la ceva mai sigur.

Copiați parola din terminalul dvs. și lipiți-o în fișierul de configurare:

/etc/rspamd/local.d/worker-controller.inc

password = "$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb";

Mai târziu vom configura Nginx ca un proxy invers pentru serverul web al lucrătorului controlorului, astfel încât să putem accesa interfața web Rspamd.

Setați Redis ca un backend pentru statisticile Rspamd adăugând următoarele linii în fișierul classifier-bayes.conf :

/etc/rspamd/local.d/classifier-bayes.conf

servers = "127.0.0.1"; backend = "redis";

Deschideți fișierul milter_headers.conf și setați anteturile milterului:

/etc/rspamd/local.d/milter_headers.conf

use =;

Puteți găsi mai multe informații despre anteturile milterului aici.

În cele din urmă, reporniți serviciul Rspamd pentru ca modificările să intre în vigoare:

sudo systemctl restart rspamd

Configurați Nginx

În prima parte a acestei serii, am creat un bloc server Nginx pentru instanța PostfixAdmin.

Deschideți fișierul de configurare Nginx și adăugați următoarea directivă de locație, cea evidențiată cu galben:

/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; }…

Reîncărcați serviciul Nginx pentru ca modificările să aibă efect:

sudo systemctl reload nginx

Îndreptați-vă către https://mail.linuxize.com/rspamd/ , introduceți parola pe care ați generat-o anterior folosind comanda rspamadm pw și vi se va prezenta cu interfața web Rspamd.

Configurați Postfix

Trebuie să configurăm Postfix pentru a folosi soluția Rspamd.

Rulați următoarea comandă pentru a actualiza fișierul principal de configurare Postfix:

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"

Reporniți serviciul Postfix pentru ca modificările să aibă efect:

sudo systemctl restart postfix

Configurați Dovecot

Am instalat și configurat deja Dovecot în a doua parte a acestei serii și acum vom instala modulul de filtrare a sieve și vom integra Dovecot cu Rspamd.

Începeți să instalați modulul de filtrare Dovecot:

sudo apt install dovecot-sieve dovecot-managesieved

După instalarea pachetelor, deschideți următoarele fișiere și editați liniile evidențiate cu galben.

/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…. }

Salvați și închideți fișierele.

Creați un director pentru scripturile de sită:

mkdir -p /var/mail/vmail/sieve/global

Creați un filtru de sită globală pentru a muta e-mailurile marcate ca spam în directorul Spam :

/var/mail/vmail/sieve/global/spam-global.sieve

require; if anyof(header:contains "YES", header:contains "Yes", header:contains "*** SPAM ***") { fileinto:create "Spam"; stop; }

Următoarele două scripturi de setare vor fi declanșate de fiecare dată când mutați un e-mail în sau din directorul Spam :

/var/mail/vmail/sieve/global/report-spam.sieve

require; pipe:copy "rspamc"; /var/mail/vmail/sieve/global/report-ham.sieve

require; pipe:copy "rspamc";

Reporniți serviciul Dovecot pentru ca modificările să aibă efect:

sudo systemctl restart dovecot

Compilați scripturi de setare și setați permisiunile corecte:

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/

Creați tastele DKIM

MailKeys Identified Mail (DKIM) este o metodă de autentificare prin e-mail care adaugă o semnătură criptografică la anteturile mesajelor de ieșire. Acesta permite destinatarului să verifice dacă un e-mail care pretinde că provine dintr-un domeniu specific a fost într-adevăr autorizat de proprietarul domeniului respectiv. Scopul principal este acela de a preveni mesajele de e-mail falsificate.

Putem avea diferite chei DKIM pentru toate domeniile noastre și chiar mai multe chei pentru un singur domeniu, dar pentru simplitatea acestui articol vom folosi o singură cheie DKIM care poate fi folosită ulterior pentru toate domeniile noi.

Creați un nou director care să stocheze cheia DKIM și să genereze un nou pachet de chei DKIM folosind utilitarul rspamadm :

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

În exemplul de mai sus folosim mail ca selector DKIM.

Acum ar trebui să aveți două fișiere noi în directorul /var/lib/rspamd/dkim/ , care este fișierul nostru cu cheie privată și mail.pub un fișier care conține cheia publică DKIM. Vom actualiza înregistrările zonei DNS ulterior.

Setați proprietatea și permisiunile corecte:

sudo chown -R _rspamd: /var/lib/rspamd/dkim sudo chmod 440 /var/lib/rspamd/dkim/*

Acum trebuie să spunem Rspamd unde să căutăm cheia DKIM, numele selectorului și ultima linie vor permite semnarea DKIM pentru adresele expeditorului alias. Pentru aceasta, creați un nou fișier cu următorul conținut:

/etc/rspamd/local.d/dkim_signing.conf

selector = "mail"; path = "/var/lib/rspamd/dkim/$selector.key"; allow_username_mismatch = true;

Rspamd acceptă, de asemenea, semnarea pentru semnături ARC (Authenticated Received Chain). Puteți găsi mai multe informații despre specificația ARC aici.

Rspamd utilizează modulul DKIM pentru tratarea semnăturilor ARC, astfel încât să putem copia pur și simplu configurația anterioară:

sudo cp /etc/rspamd/local.d/dkim_signing.conf /etc/rspamd/local.d/arc.conf

Reporniți serviciul Rspamd pentru ca modificările să aibă efect:

sudo systemctl restart rspamd

Setări DNS

Am creat deja o pereche de chei DKIM și acum trebuie să ne actualizăm zona DNS. Cheia publică DKIM este stocată în fișierul mail.pub . Conținutul fișierului ar trebui să arate astfel:

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

De asemenea, vom crea o autentificare de mesaje bazată pe domeniu ( DMARC ), care este concepută pentru a spune serverului de primire dacă acceptă sau nu un e-mail de la un anumit expeditor. Practic, vă va proteja domeniul împotriva spargerii directe a domeniului și vă va îmbunătăți reputația domeniului.

vom implementa următoarea politică DMARC:

_dmarc IN TXT "v=DMARC1; p=none; adkim=r; aspf=r;"

Să descompunem înregistrarea DMARC de mai sus:

  • v=DMARC1 - Acesta este identificatorul DMARC p=none - Acest lucru îi spune receptorului ce să facă cu mesajele care nu reușesc DMARC. În cazul nostru nu este setat pe nimic, ceea ce înseamnă că nu luăm nicio măsură dacă un mesaj eșuează DMARC. Puteți utiliza, de asemenea, „respinge” sau quarantine adkim=r și aspf=r - DKIM și aliniere SPF , r pentru Relaxed și s pentru Strict, în cazul nostru utilizăm Relaxed Alignment atât pentru DKIM cât și pentru SPF.

La fel ca înainte, dacă executați propriul server Bind DNS, trebuie doar să copiați și să lipiți înregistrarea în fișierul dvs. de zonă de domeniu, iar dacă utilizați un alt furnizor DNS, trebuie să creați o înregistrare TXT cu _dmarc ca nume și v=DMARC1; p=none; adkim=r; aspf=r; v=DMARC1; p=none; adkim=r; aspf=r; ca valoare / conținut.

Poate dura un timp până la propagarea modificărilor DNS. Puteți verifica dacă înregistrările s-au propagat folosind comanda dig:

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;"

Puteți, de asemenea, să inspectați politica DMARC actuală a domeniului dvs. sau să vă creați propria politică DMARC aici.

Concluzie

Asta e pentru această parte a tutorialului. În următoarea parte a acestei serii, vom continua cu instalarea și configurarea RoundCube.

server de poștă postfix dovecot dns rspamd

Această postare este o parte din Configurarea și configurarea unei serii de server de e-mail.

Alte postări din această serie:

• Configurați un server de poștă cu PostfixAdmin • Instalați și configurați Postfix și Dovecot • Instalați și integrați Rspamd • Instalați și configurați Webmailul Roundcube