📖 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%+.
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
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.
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).
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.
- Începe cu SPF - configurare corectă
- Adaugă DKIM și verifică semnătura
- Adaugă DMARC cu p=none și monitorizează rapoartele 2-4 săptămâni
- Analizează rapoartele DMARC pentru surse neautorizate
- Comută la p=quarantine pentru 2 săptămâni
- 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