📧 Ghid avansat DKIM, SPF și DMARC

Asigură livrabilitatea emailurilor tale - Scor 10/10 pe Mail-Tester

📖 Introducere

Email-ul rămâne în 2025 principalul canal de comunicare în afaceri, dar și cea mai mare sursă de atacuri. SPF, DKIM și DMARC sunt standardele care protejează domeniul tău de spoofing, phishing și care asigură că emailurile tale ajung în inbox, nu în spam.

Fără aceste înregistrări, șansele ca emailurile tale să fie livrate în inbox sunt mai mici de 30%. Cu o configurare corectă, rata de livrabilitate crește la 95%+.

📊 Statistici 2025: Peste 85% dintre emailurile spam nu au configurații SPF/DKIM valide. Google și Microsoft filtrează agresiv emailurile neautentificate.

1. SPF (Sender Policy Framework)

SPF specifică ce servere sunt autorizate să trimită email în numele domeniului tău.

Înregistrare SPF de bază

# DNS TXT record pentru domeniu
domeniu.ro. 3600 IN TXT "v=spf1 mx ~all"

# Explicație:
# v=spf1 - versiune SPF
# mx - permite serverelor MX să trimită email
# ~all - fail soft (tag ca suspect, dar nu respinge)

Configurații SPF avansate

# Single server
domeniu.ro. IN TXT "v=spf1 ip4:192.0.2.0 ~all"

# Multiple servere
domeniu.ro. IN TXT "v=spf1 ip4:192.0.2.0 ip4:203.0.113.0 mx ~all"

# Includere servicii terțe (Google, SendGrid, etc.)
domeniu.ro. IN TXT "v=spf1 mx include:_spf.google.com ~all"

# Server hosting și Google Workspace
domeniu.ro. IN TXT "v=spf1 ip4:203.0.113.0 include:_spf.google.com ~all"

# Limite SPF (max 10 interogări DNS)
# Verifică cu: dig +short TXT domeniu.ro | grep spf

2. DKIM (DomainKeys Identified Mail)

DKIM adaugă o semnătură digitală în antetul emailului, permițând destinatarului să verifice că emailul nu a fost modificat în tranzit.

Generare chei DKIM (Postfix)

# Instalează opendkim
sudo apt install opendkim opendkim-tools -y

# Crează directorul pentru chei
sudo mkdir -p /etc/opendkim/keys/domeniu.ro

# Generează chei
sudo opendkim-genkey -D /etc/opendkim/keys/domeniu.ro/ -d domeniu.ro -s mail

# Permisiuni corecte
sudo chown -R opendkim:opendkim /etc/opendkim
sudo chmod 600 /etc/opendkim/keys/domeniu.ro/mail.private

# Verifică cheile generate
ls -la /etc/opendkim/keys/domeniu.ro/
# mail.txt (partea publică - se adaugă în DNS)
# mail.private (cheia privată - stă pe server)

Înregistrare DNS DKIM

# Conținutul din mail.txt se adaugă ca înregistrare TXT
mail._domainkey.domeniu.ro. 3600 IN TXT "v=DKIM1; h=sha256; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC..."

Configurare OpenDKIM

# /etc/opendkim.conf
Domain                  domeniu.ro
KeyFile                 /etc/opendkim/keys/domeniu.ro/mail.private
Selector                mail
Socket                  inet:8891@localhost
UserID                  opendkim

# /etc/default/opendkim
SOCKET="inet:8891@localhost"

# /etc/opendkim/KeyTable
mail._domainkey.domeniu.ro domeniu.ro:mail:/etc/opendkim/keys/domeniu.ro/mail.private

# /etc/opendkim/SigningTable
*@domeniu.ro mail._domainkey.domeniu.ro

# /etc/opendkim/TrustedHosts
127.0.0.1
::1
192.168.1.0/24

# Restartează
sudo systemctl restart opendkim

# Configurare Postfix
sudo postconf -e 'smtpd_milters = inet:localhost:8891'
sudo postconf -e 'non_smtpd_milters = inet:localhost:8891'
sudo postconf -e 'milter_default_action = accept'
sudo systemctl restart postfix

3. DMARC (Domain-based Message Authentication, Reporting & Conformance)

DMARC le spune serverelor destinatare ce să facă dacă emailurile nu trec verificările SPF sau DKIM.

Înregistrare DMARC de bază

# DNS TXT record
_dmarc.domeniu.ro. 3600 IN TXT "v=DMARC1; p=none; rua=mailto:dmarc-reports@domeniu.ro"

# Explicație:
# p=none - monitorizare doar (fără acțiune)
# p=quarantine - trimite emailurile suspecte în spam
# p=reject - respinge emailurile care nu trec verificările

DMARC avansat

# Politică strictă (recomandat după testare)
_dmarc.domeniu.ro. IN TXT "v=DMARC1; p=reject; pct=100; rua=mailto:dmarc-reports@domeniu.ro; ruf=mailto:forensic@domeniu.ro; fo=1; aspf=s; adkim=s; sp=reject"

# Parametri:
# pct=100 - aplică politicii la 100% din emailuri
# rua - rapoarte agregat (XML, zilnice)
# ruf - rapoarte forensics (individuale)
# fo=1 - trimite raport la orice eșec
# aspf=s - strict SPF alignment
# adkim=s - strict DKIM alignment
# sp=reject - politică pentru subdomenii

4. Testare și debugging

Verifică înregistrările DNS

# Verifică SPF
dig +short TXT domeniu.ro | grep spf

# Verifică DKIM
dig +short TXT mail._domainkey.domeniu.ro

# Verifică DMARC
dig +short TXT _dmarc.domeniu.ro

# Verifică toate înregistrările
dig +short TXT domeniu.ro
dig +short TXT mail._domainkey.domeniu.ro
dig +short TXT _dmarc.domeniu.ro

Testare email cu mail-tester.com

Mail-Tester este cel mai popular tool pentru verificarea livrabilității. Iată ce verifică:

  • Scor general (10/10 este perfect)
  • SPF, DKIM, DMARC validity
  • Reputația IP-ului
  • Blacklist check (peste 100 liste)
  • Antet email (From, Reply-To, etc.)
  • Conținut (cuvinte spam, link-uri, HTML)

Alte tool-uri de testare

# Verifică dacă IP-ul este pe blacklist
# https://mxtoolbox.com/blacklists.aspx
# https://www.dnsbl.info/

# Trimite email de test către servicii specializate
# https://www.glockapps.com/
# https://www.validity.com/email-audience/
# https://www.250ok.com/

# Verifică DMARC reports (gratuit)
# https://dmarcian.com/dmarc-inspector/
# https://www.postmarkapp.com/dmarc

5. Depanare probleme comune

Problemă 1: "SPF fail - domain not authorized"

Soluție: Verifică înregistrarea SPF. Asigură-te că IP-ul serverului tău este inclus. Dacă folosești servicii terțe (SendGrid, Mailchimp), adaugă include-ul corespunzător.

Problemă 2: "DKIM signature invalid"

Soluție: Verifică dacă cheia publică din DNS se potrivește cu cheia privată de pe server. Verifică selectorul DKIM. Verifică permisiunile fișierului cheii private (600).

Problemă 3: "DMARC policy not applied"

Soluție: Asigură-te că SPF și DKIM sunt valide mai întâi. DMARC nu va funcționa dacă celelalte două nu sunt corecte. Verifică înregistrarea DMARC - lipsa ghilimelelor poate cauza probleme.

💡 Best practice: Implementare graduală
  1. Începe cu SPF - configurare corectă
  2. Adaugă DKIM și verifică semnătura
  3. Adaugă DMARC cu p=none și monitorizează rapoartele 2-4 săptămâni
  4. Analizează rapoartele DMARC pentru surse neautorizate
  5. Comută la p=quarantine pentru 2 săptămâni
  6. Finalizează cu p=reject

6. DMARC Reporting - Cum să citești rapoartele

Rapoartele DMARC sunt trimise zilnic (în format XML) la adresa specificată în rua. Poți folosi servicii gratuite pentru analiză:

# Servicii de analiză DMARC
# https://www.uriports.com/dmarc/
# https://dmarc.postmarkapp.com/
# https://dmarcian.com/
# https://mxtoolbox.com/dmarc.aspx

# Exemplu raport DMARC simplificat
<report>
  <date_range><begin>1234567890</begin><end>1234567890</end></date_range>
  <policy_published>
    <domain>domeniu.ro</domain>
    <p>reject</p>
  </policy_published>
  <record>
    <row>
      <source_ip>192.0.2.1</source_ip>
      <count>150</count>
      <policy_evaluated>
        <disposition>none</disposition>
        <dkim>pass</dkim>
        <spf>fail</spf>
      </policy_evaluated>
    </row>
  </record>
</report>

✅ Concluzie

După implementarea corectă a SPF, DKIM și DMARC, vei vedea:

  • ✅ Rata de livrabilitate crescută la 95%+
  • ✅ Emailurile ajung în inbox, nu în spam
  • ✅ Protecție împotriva spoofing-ului și phishing-ului
  • ✅ Vizibilitate asupra cine trimite email în numele tău
  • ✅ Scor 10/10 pe Mail-Tester
📌 Ai nevoie de configurare profesională? ServiciiLinux oferă configurare completă SPF, DKIM, DMARC pentru serverul tău de email.
📞 Solicită configurare email profesională → ← Înapoi la blog