Android

Installeer en integreer rspamd

Rspamd integration into FreeBSD.org mail infrastructure

Rspamd integration into FreeBSD.org mail infrastructure

Inhoudsopgave:

Anonim

Dit is het derde deel van onze e-mailserver instellen en configureren. In deze tutorial zullen we de installatie en configuratie van het Rspamd-spamfiltersysteem en de integratie ervan in onze mailserver doorlopen en DKIM- en DMARC DNS-records maken.

Je vraagt ​​je misschien af ​​waarom we ervoor kiezen om met Rspamd te gaan en niet met Spamassassin. Rspamd wordt actiever onderhouden en geschreven in C en het is veel sneller dan Spamassassin die in Perl is geschreven. Een andere reden is dat Rspamd wordt geleverd met een DKIM-ondertekeningsmodule, zodat we geen andere software hoeven te gebruiken om onze uitgaande e-mails te ondertekenen.

voorwaarden

Zorg ervoor dat u bent aangemeld als een gebruiker met sudo-rechten voordat u doorgaat met deze zelfstudie.

Installeer Redis

Redis zal door Rspamd worden gebruikt als een opslag- en caching-systeem, om het te installeren, voer het gewoon uit:

sudo apt install redis-server

Niet geconsolideerd installeren

Niet geconsolideerd is een zeer veilige validerende, recursieve en caching DNS-resolver.

Het belangrijkste doel van het installeren van deze service is het aantal externe DNS-aanvragen te verminderen. Deze stap is optioneel en kan worden overgeslagen.

sudo apt update sudo apt install unbound

De standaard niet-gebonden instellingen moeten voldoende zijn voor de meeste servers.

Voer de volgende opdrachten uit om ongebonden in te stellen als primaire DNS-resolver van uw server:

sudo echo "nameserver 127.0.0.1" >> /etc/resolvconf/resolv.conf.d/head sudo resolvconf -u Als u resolvconf niet gebruikt, moet u het bestand /etc/resolv.conf handmatig bewerken.

Installeer Rspamd

We zullen de nieuwste stabiele versie van Rspamd installeren vanuit de officiële repository.

Begin met het installeren van de nodige pakketten:

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

Voeg de GPG-sleutel van de repository toe aan de sleutelring van uw apt-bronnen met de volgende wget-opdracht:

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

Schakel de Rspamd-repository in door:

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

Zodra de repository is ingeschakeld, werkt u de pakketindex bij en installeert u Rspamd met de volgende opdrachten:

sudo apt update sudo apt install rspamd

Configureer Rspamd

In plaats van de stock-configuratiebestanden te wijzigen, maken we nieuwe bestanden in de map /etc/rspamd/local.d/local.d/ die de standaardinstelling overschrijven.

Standaard luistert de normal worker Rspamd naar de werker die e-mailberichten scant op alle interfaces op poort 11333. Maak het volgende bestand om de normale werker van Rspamd te configureren om alleen naar de interface van localhost te luisteren:

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

bind_socket = "127.0.0.1:11333";

De proxy worker luistert op poort 11332 en ondersteunt milter protocol. Om Postfix met Rspamd te laten communiceren, moeten we de milter-modus inschakelen:

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

Vervolgens moeten we een wachtwoord instellen voor de controller worker werkerserver die toegang geeft tot de Rspamd-webinterface. Om een ​​versleuteld wachtwoord uit te voeren:

rspamadm pw --encrypt -p P4ssvv0rD

De output zou er ongeveer zo uit moeten zien:

$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb Vergeet niet om het wachtwoord ( P4ssvv0rD ) te wijzigen in iets veiliger.

Kopieer het wachtwoord van uw terminal en plak het in het configuratiebestand:

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

password = "$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb";

Later zullen we Nginx configureren als een reverse-proxy voor de webserver van de controller-medewerker zodat we toegang hebben tot de Rspamd-webinterface.

Stel Redis in als backend voor Rspamd-statistieken door de volgende regels toe te voegen aan het bestand classifier-bayes.conf :

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

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

Open het bestand milter_headers.conf en stel de milter headers in:

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

use =;

Meer informatie over de milter headers vindt u hier.

Start ten slotte de Rspamd-service opnieuw op om de wijzigingen door te voeren:

sudo systemctl restart rspamd

Configureer Nginx

In het eerste deel van deze serie hebben we een Nginx-serverblok gemaakt voor de PostfixAdmin-instantie.

Open het Nginx-configuratiebestand en voeg de volgende locatierichtlijn toe, degene die geel is gemarkeerd:

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

Laad de Nginx-service opnieuw om de wijzigingen door te voeren:

sudo systemctl reload nginx

Ga naar https://mail.linuxize.com/rspamd/ , voer het wachtwoord in dat je eerder hebt gegenereerd met de opdracht rspamadm pw en je krijgt de Rspamd-webinterface te zien.

Postfix configureren

We moeten Postfix configureren om de Rspamd-milter te gebruiken.

Voer de volgende opdracht uit om het hoofdconfiguratiebestand van Postfix bij te werken:

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 de Postfix-service opnieuw om de wijzigingen door te voeren:

sudo systemctl restart postfix

Configureer Dovecot

We hebben Dovecot al geïnstalleerd en geconfigureerd in het tweede deel van deze serie en nu zullen we de zeeffiltermodule installeren en Dovecot integreren met Rspamd.

Begin met het installeren van de Dovecot-filtermodule:

sudo apt install dovecot-sieve dovecot-managesieved

Nadat de pakketten zijn geïnstalleerd, opent u de volgende bestanden en bewerkt u de geel gemarkeerde lijnen.

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

Sla de bestanden op en sluit ze.

Maak een map voor de zeefscripts:

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

Maak een globaal zeeffilter om e-mails gemarkeerd als spam naar de map Spam te verplaatsen:

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

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

De volgende twee zeefscripts worden geactiveerd wanneer u een e-mail in of uit de map Spam verplaatst:

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

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

require; pipe:copy "rspamc";

Start de Dovecot-service opnieuw om de wijzigingen door te voeren:

sudo systemctl restart dovecot

Compileer zeefscripts en stel de juiste rechten in:

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/

Maak DKIM-sleutels

DomainKeys Identified Mail (DKIM) is een e-mailverificatiemethode die een cryptografische handtekening toevoegt aan de headers van uitgaande berichten. Hiermee kan de ontvanger verifiëren dat een e-mail die beweert afkomstig te zijn van een specifiek domein inderdaad is geautoriseerd door de eigenaar van dat domein. Het belangrijkste doel hiervan is om vervalste e-mailberichten te voorkomen.

We kunnen verschillende DKIM-sleutels hebben voor al onze domeinen en zelfs meerdere sleutels voor een enkel domein, maar voor de eenvoud van dit artikel gaan we een enkele DKIM-sleutel gebruiken die later voor alle nieuwe domeinen kan worden gebruikt.

Maak een nieuwe map om de DKIM-sleutel op te slaan en genereer een nieuwe DKIM-sleutelpaar met behulp van het hulpprogramma 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

In het bovenstaande voorbeeld gebruiken we mail als DKIM-selector.

U zou nu twee nieuwe bestanden moeten hebben in de /var/lib/rspamd/dkim/ map, mail.key , ons privé sleutelbestand, en mail.pub een bestand dat de DKIM publieke sleutel bevat. We zullen onze DNS-zonerecords later bijwerken.

Stel het juiste eigendom en machtigingen in:

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

Nu moeten we Rspamd vertellen waar hij naar de DKIM-sleutel moet zoeken, de naam van de selector en de laatste regel zal DKIM-ondertekening voor alias afzenderadressen mogelijk maken. Maak hiervoor een nieuw bestand met de volgende inhoud:

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

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

Rspamd ondersteunt ook ondertekening voor ARC-handtekeningen (Authenticated Received Chain). Meer informatie over de ARC-specificatie vindt u hier.

Rspamd gebruikt de DKIM-module voor het omgaan met ARC-handtekeningen zodat we de vorige configuratie eenvoudig kunnen kopiëren:

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

Start de Rspamd-service opnieuw om de wijzigingen door te voeren:

sudo systemctl restart rspamd

DNS-instellingen

We hebben al een DKIM-sleutelpaar gemaakt en nu moeten we onze DNS-zone bijwerken. DKIM openbare sleutel wordt opgeslagen in het mail.pub bestand. De inhoud van het bestand zou er als volgt uit moeten zien:

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

We zullen ook een op domein gebaseerde berichtverificatie ( DMARC ) maken die is ontworpen om de ontvangende server te laten weten of een e-mail van een bepaalde afzender moet worden geaccepteerd. Kortom, het beschermt uw domein tegen directe domein-spoofing en verbetert uw domeinreputatie.

we zullen het volgende DMARC-beleid implementeren:

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

Laten we het bovenstaande DMARC-record opsplitsen:

  • v=DMARC1 - Dit is de DMARC-identificatie p=none - Dit vertelt de ontvanger wat te doen met berichten die DMARC falen. In ons geval is deze ingesteld op geen, wat betekent dat u geen actie onderneemt als een bericht DMARC mislukt. U kunt ook 'weigeren' of quarantine adkim=r en aspf=r - DKIM en SPF uitlijning, r voor Relaxed en s voor Strict, in ons geval gebruiken we Relaxed Alignment voor zowel DKIM als SPF.

Hetzelfde als voorheen als u uw eigen Bind DNS-server gebruikt, hoeft u alleen maar de record te kopiëren en in uw _dmarc plakken en als u een andere DNS-provider gebruikt, moet u een TXT-record maken met _dmarc als naam en v=DMARC1; p=none; adkim=r; aspf=r; v=DMARC1; p=none; adkim=r; aspf=r; als een waarde / inhoud.

Het kan enige tijd duren voordat de DNS-wijzigingen zijn doorgevoerd. U kunt controleren of de records zijn doorgevoerd met de opdracht 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;"

U kunt ook het huidige DMARC-beleid van uw domein bekijken of hier uw eigen DMARC-beleid maken.

Conclusie

Dat is het voor dit deel van de tutorial. In het volgende deel van deze serie gaan we verder met de installatie en configuratie van RoundCube.

mailserver postfix dovecot dns rspamd

Dit bericht maakt deel uit van de reeks Een mailserver instellen en configureren.

Andere berichten in deze serie:

• Stel een mailserver in met PostfixAdmin • Installeer en configureer Postfix en Dovecot • Installeer en integreer Rspamd • Installeer en configureer Roundcube Webmail