Valentin Cojocaru Web developer · Cluj-Napoca EN

Valentin
Cojocaru

Construiesc aplicații web și mă ocup de serverul, DNS-ul și baza de date din spatele lor.

blog

Linux & Servers 7 min de citit

DNS și autentificare email făcute cum trebuie (SPF, DKIM, DMARC)

Aproape fiecare domeniu preluat de la un client nou are probleme de email care abia așteaptă să apară. Emailuri tranzacționale ajunse în spam. Notificări din formularul de contact care nu mai vin. Newslettere respinse. Cauza e aproape mereu aceeași: fără SPF, fără DKIM, fără DMARC.

Nu sunt greu de configurat. Doar că sunt ușor de sărit când te grăbești să lansezi.

Ce fac de fapt aceste înregistrări

SPF le spune serverelor de email care primesc mesajul ce adrese IP au voie să trimită email pentru domeniul tău. Fără el, oricine poate trimite un email pretinzând că vine de pe domeniul tău, iar serverul care îl primește nu are cum să verifice.

DKIM adaugă o semnătură criptografică emailurilor trimise. Serverul care le primește caută cheia ta publică în DNS și verifică semnătura. Dacă emailul a fost modificat pe drum, semnătura pică.

DMARC le spune serverelor ce să facă atunci când SPF sau DKIM pică: să ignore, să pună în carantină sau să respingă. În plus îți trimite rapoarte, ca să vezi cine trimite email în numele domeniului tău.

Configurarea SPF

SPF e o înregistrare TXT pe rădăcina domeniului. Un setup obișnuit, în care trimiți de pe serverul tău și printr-un furnizor de email tranzacțional, arată așa:

v=spf1 ip4:YOUR.SERVER.IP include:sendgrid.net include:_spf.google.com ~all

~all de la final înseamnă „soft fail pentru tot ce nu e listat aici”: mesajul ajunge în spam, nu e respins direct. Începe cu ~all, urmărește rapoartele DMARC și treci la -all (hard fail) când ești sigur că ai listat tot.

Important: o singură înregistrare SPF pe domeniu. Dacă ai mai multe înregistrări TXT care încep cu v=spf1, SPF nu mai funcționează. Unește-le într-una singură, cu include:.

Configurarea DKIM

DKIM cere generarea unei perechi de chei. Cheia privată stă pe serverul de email, iar cea publică merge în DNS.

Dacă folosești Postfix cu OpenDKIM:

opendkim-genkey -t -s mail -d yourdomain.com
# Creates mail.private (keep this) and mail.txt (goes to DNS)

Înregistrarea DNS merge la mail._domainkey.yourdomain.com, ca TXT. Valoarea din mail.txt arată așa:

v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMI...

Dacă trimiți printr-un serviciu ca Mailgun, Sendgrid sau Postmark, îți dau ei valorile de adăugat în DNS. Fiecare serviciu are propriul selector (partea dinainte de ._domainkey), deci poți avea mai multe înregistrări DKIM pentru expeditori diferiți.

Configurarea DMARC

DMARC merge la _dmarc.yourdomain.com. Începe permisiv și strânge șurubul cu timpul:

v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com; ruf=mailto:dmarc@yourdomain.com; fo=1

p=none înseamnă „monitorizează, dar nu acționa”. Vei începe să primești rapoarte agregate (rua) și rapoarte forensice (ruf) de la serverele care primesc mesajele. Citește-le câteva săptămâni, ca să înțelegi cine trimite în numele tău.

Când ești sigur, treci la p=quarantine (eșecurile merg în spam) și în final la p=reject (respinse direct).

Verificarea configurării

Trimite un email de test la check-auth2@verifier.port25.com. Primești un răspuns care arată dacă SPF, DKIM și DMARC au trecut. Util e și mail-tester.com, care îți dă un scor și arată exact ce pică.

Rezultatul

Când SPF, DKIM și DMARC sunt puse și aliniate, livrarea emailurilor tranzacționale se îmbunătățește mult. Am văzut clienți care au trecut de la 30% din notificările formularului de contact ajunse în spam la aproape zero alarme false, doar adăugând aceste trei înregistrări. Configurarea corectă durează cam o oră. Lipsa ei îi poate costa pe clienți afaceri reale.

#Linux #DNS #Security #Email