With the addition to SpamTitan of support for DKIM singing you can now avail of the DMARC. DMARC (Domain-based Message Authentication, Reporting and Conformance) is an email-validation system designed to detect and prevent email spoofing.  It is a DNS TXT record that you use to create an overall policy governing SPF and DKIM.


Create the record

Once SPF and DKIM are in place, you configure DMARC by adding policies to your domain's DNS records in the form of TXT records (just like with SPF).  


Here are common tags used in DMARC TXT records:


                                                                                                                                                      

Tag Name Required Purpose Sample
      

v

      
required Protocol version v=DMARC1
      

p

      
required Policy for domain p=quarantine
      

pct

      
optional % of messages subjected to filtering pct=20
      

rua

      
optional Reporting URI of aggregate reports rua=mailto:aggrep@example.com
      

sp

      
optional Policy for subdomains of the domain sp=reject
      

aspf

      
optional Alignment mode for SPF aspf=r



Only the v (version) and p (policy) tags are required. Three possible policy settings, or message dispositions, are available:

  • none - Take no action. Log affected messages on the daily report only.
  • quarantine - Mark affected messages as spam.
  • reject - Cancel the message at the SMTP layer.


Alignment mode refers to the precision with which sender records are compared to SPF and DKIM signatures, with the two possible values being relaxed or strict. represented by "r" and "s" respectively. In short, relaxed allows partial matches, such as subdomains of a given domain, while strict requires an exact match.


Make sure to include your email address with the optional rua tag to receive the daily reports.


Here are some example DMARC TXT records (_dmarc.your_domain.com IN TXT) you can modify for your own use. Of course, replace "your_domain.com" and "postmaster@your_domain.com" with your actual domain and email address.

  


Example Records:


In this TXT record, if a message claims to be from your domain.com and fails the DMARC checks, no action is taken. Instead, all of these messages appear on the daily aggregate report sent to "postmaster@your_domain.com."

  "v=DMARC1; p=none; rua=mailto:postmaster@your_domain.com"  



In this TXT record, if a message claims to be from your domain.com and fails the DMARC checks, quarantine it 5% of the time. Then email daily aggregate reports to "postmaster@your_domain.com."

 

 "v=DMARC1; p=quarantine; pct=5; rua=mailto:postmaster@your_domain.com"  



In this TXT record, if a message claims to be from "your_domain.com" and fails the DMARC checks, reject it 100% of the time. Then email daily aggregate reports to "postmaster@your_domain.com" and "dmarc@your_domain.com."

 

 "v=DMARC1; p=reject; rua=mailto:postmaster@your_domain.com, mailto:dmarc@your_domain.com"




Deploy slowly

We strongly recommend ramping up DMARC use slowly by employing these policies in this order. First, monitor your traffic and look for anomalies in the reports, such as messages that are not yet being signed or are perhaps being spoofed. Then, when you're comfortable with the results, change the TXT record policy setting from "none" to "quarantine." Once again, review the results, this time in both your spam catch and in the daily DMARC reports. Finally, once you're absolutely sure all of your messages are signed, change the policy setting to "reject" to make full use of DMARC. Revisit reports to ensure your results are acceptable.

Similarly, the optional pct tag can be used to stage and sample your DMARC deployment. Since 100% is the default, passing "pct=20" in your DMARC TXT record results in one-fifth of all messages affected by the policy actually receiving the disposition instead of all of them. This setting is especially useful once you elect to quarantine and reject mail. Start with a lower percent and increase it every few days.

A conservative deployment cycle would resemble:


  1. Monitor all
  2. Quarantine 1%
  3. Quarantine 5%
  4. Quarantine 10%
  5. Quarantine 25%
  6. Quarantine 50%
  7. Quarantine all
  8. Reject 1%
  9. Reject 5%
  10. Reject 10%
  11. Reject 25%
  12. Reject 50%
  13. Reject all


Attempt to remove the percentages as quickly as possible to complete the deployment.


As always, review your daily reports.