Rspamd integration into FreeBSD.org mail infrastructure
Inhoudsopgave:
- voorwaarden
- Installeer Redis
- Niet geconsolideerd installeren
- Installeer Rspamd
- Configureer Rspamd
- Configureer Nginx
- Postfix configureren
- Configureer Dovecot
- Maak DKIM-sleutels
- DNS-instellingen
- Conclusie
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:
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:
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:
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
:
servers = "127.0.0.1"; backend = "redis";
Open het bestand
milter_headers.conf
en stel de milter headers in:
use =;
Meer informatie over de milter headers vindt u hier.
Start ten slotte de Rspamd-service opnieuw op om de wijzigingen door te voeren:
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:
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:
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:
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-identificatiep=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' ofquarantineadkim=renaspf=r-DKIMenSPFuitlijning,rvoor Relaxed ensvoor 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 rspamdDit 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 WebmailNirLauncher: integreer SysInternal Suite met NirSoft-hulpprogramma`s
NirLauncher is een pakket met meer dan 100 draagbare freeware-hulpprogramma`s voor Windows, allemaal ontwikkeld voor de NirSoft-website van de afgelopen paar jaar.
Integreer spellingcontrole in elke Windows-app met tinyspell
Leer hoe u spellingcontrole in elke Windows-toepassing kunt integreren met tinySpell.
Hoe installeer, installeer ik hp officejet 6500a plus alles-in-één printer
Meer informatie over het instellen en installeren van de HP Officejet 6500A Plus alles-in-één printer.







