DMARC במיילים

DMARC מאפשר לנו להתוות מדיניות בנוגע למיילים שעוברים או נכשלים מנגנוני הגנה ומהווה עוד חוליה בשרשרת שתמנע מהמיילים שאתם שולחים להגיע לתיבת הספאם

במאמר הקודם כתבתי על DKIM – דרך לאימות זהות השולח והתוכן של המייל. לפני כן כתבתי מאמר מפורט על SPF – שהיא דרך קלה ליישום של זהות השולח. כדי להבין את המאמר הזה חובה לקרוא את המאמרים האלו. אני משתמש במילים DKIM ו-SPF לאורך כל המאמר. אין טעם ליישם DMARC אם אין לכם DKIM ו-SPF.

DMARC זה ראשי תבות של Domain-based Message Authentication, Reporting & Conformance – שזה אומר כמובן שזה ראשי תבות שלעולם לא תזכרו את המשמעות שלהם. לא מדובר במנגנון הגנה אקטיבי אלא בהצהרה על מדיניות – או יותר נכון – מה קורה עם מייל שמישהו שולח – האם הוא אמור לעבור SPF? DKIM? ומה קורה עם סאב דומיינים? ואם המייל נכשל בבדיקה? מה קורה איתו?

אפשר לתת לשרת המייל שקיבל את המייל להחליט מה לעשות אבל אפשר ואפילו רצוי להורות לו מה לעשות. איך עושים את זה? באמצעות השתלת טקסט עם הוראות בשם המתחם. כאשר שרת מייל כלשהו מקבל מייל, הוא מבצע שאילתת nslookup כדי לראות מה מדיניות ה-DMARC. ואז הוא פועל בהתאם. אם אין DMARC? הוא יבדוק אם יש SPF או DKIM ויפעל לפי ההגדרות שלו. DMARC פשוט נותן הנחיות והוא המשלים של SPF ו-DKIM.

איך בודקים אם יש לנו DMARC? אפשר לבדוק עם כלים או להריץ פשוט nslookup:

nslookup -type=txt _dmarc.YOURDOMAIN.com

התשובה תהיה ה-DMARC. הנה למשל שאילתת DMARC שעשיתי ל-mailchimp:

nslookup -type=txt _dmarc.mailchimp.com
Server:		192.168.5.1
Address:	192.168.5.1#53

Non-authoritative answer:
_dmarc.mailchimp.com	text = "v=DMARC1; p=reject; rua=mailto:19ezfriw@ag.dmarcian.com; ruf=mailto:19ezfriw@fr.dmarcian.com"

Authoritative answers can be found from:

בטקסט הזה:

v=DMARC1; p=reject; rua=mailto:[email protected]; ruf=mailto:[email protected]

אפשר לראות הוראות מדויקות. איזה הוראות? לפי הפרמטרים כמובן. כאשר כל אחד יכול לקבוע איזה פרמטר שהוא רוצה ובכך להנחות את שרת המייל שמגיע אליו איזשהו מייל שמצהיר על עצמו שהוא מהשרת שלנו.

בואו נעבור על ההוראות בקצרה, כי יש מספר פרמטרים, זה עובד בדיוק כמו SPF ו-DMARC:

פרמטרהסברדוגמה
vגרסה. זה תמיד DMARC1 (מנדטורי)v=DMARC1
pמה השרת צריך לעשות אם המבחן של DKIM ו/או SPF נכשל? יש שלוש אפשרויות:
none – החלטת השרת
quarantine – לסמן כבעייתי. בג׳ימייל זה אל תיבת הספאם
reject – למחוק
(מנדטורי)
p=reject
ruaראשי תבות של reporting URI aggregated – כתובת מייל שאליה מגיע דו״ח מסכם מלא של כל הדחיות. כך אפשר לראות אם יש סקאמרים וספאמרים שמנסים להתלבש עליך ומה מקורם. הדו״ח והפורמט שלו הם ב-XML. מדובר בדו״ח מסכם שמבצע אגרגציה של כל המיילים.
(לא חובה אך מומלץ)
rua=mailto:[email protected]
foראשי תבות של Failure reporting options – איזה מיילים להכניס לדו״ח של rua?
0 (ברירת המחדל) – המיילים שנכשלו גם ב-SPF וגם-DKIM.
1 – המיילים שנכשלו או ב-SPF או ב-DKIM.
d – רק כאלו שנכשלו ב-DKIM
s – רק כאלו שנכשלו ב-SPF
(לא חובה אך מומלץ, רלוונטי ל-rua)
fo=1
rufכתובת מייל שאליה נשלח דו״ח פורנזי על כל מייל שנכשל בבדיקה. בניגוד ל-rua, פה מדובר במייל מפורט יותר ולא דו״ח כללי. המייל המפורט מכיל את כל ההדרים והתוכן, יש ספקי מייל שלא יכבדו את ruf משיקולי פרטיות וגם כמות המיילים שתקבלו עלולה להיות גדולה.ruf=mailto:[email protected]
riהזמן, בשניות, שיעבור בין דו״ח מסכם לדו״ח מסכם של ה-rua. ברירת המחדל היא יום. כלומר שרת המייל יאגור את כל הכשלונות וכל יום ישלח לכתובת שב-rua את הדו״ח המסכם. אפשר לשנות את זה. למשל 604800 שהוא שבוע.ri=604800
pct כמה אחוזים מתעבורת המייל יהיו כפופים למדיניות שהותוותה ב-DMARC? זה חשוב לספקים גדולים שעושים פריסה הדרגתית. ברירת המחדל היא 100.pct=25
adkimהאם בדיקת ה-DKIM תהיה strict – כלומר סאב דומיין לא נחשב כחלק מהדומייןאו relaxed – סאב הדומיינים נחשבים כאותו דומיין. כלומר מייל שנשלח מ mail.domain.com מטופל כמו מייל שנשלח מ domain.com
ברירת המחדל היא relaxed.
adkim=strict
aspfהאם בדיקת ה-SPF תהיה strict – כלומר סאב דומיין לא נחשב כחלק מהדומייןאו relaxed – סאב הדומיינים נחשבים כאותו דומיין. כלומר מייל שנשלח מ mail.domain.com מטופל כמו מייל שנשלח מ domain.com
ברירת המחדל היא relaxed.
spf=strict

כאמור DMARC הוא לא חובה. הוא לא מחייב שרתי מייל ולמרות שכל ספקי המייל הגדולים משתמשים בו יש כאלו שלא משתמשים בו. אבל הצבה שלו, יחד עם מדיניות DKIM ו-SPF טובה, תאותת על כך שהשרת שלכם הוא שרת מייל לגיטימי.

מדיניות SPF היא משהו שבונה אתר יכול ליישם בעצמו. מדיניות DKIM היא משהו שצריך עזרה ממנהל האחסון כדי לעשות (לייצר מפתח פרטי ולהתקין אותו בשרת המייל ולהציב את המפתח הציבורי ברקורד בשם המתחם). מדיניות DMARC קלה להפעלה על ידי כל בונה אתרים. וידאתם שיש לכם DMARC? שיש לכם SPF? תדאגו גם להכניס רקורד של DMARC לשם המתחם שלכם.

הכלי הזה יסייע לכם לבנות את ה-DMARC. אחרי זה, אתם יכולים להכניס אותו עם כל עורך DNS zones. כמו זה שיש ב-Cpanel:

ואז פשוט להכניס את השם ואת הערך.

הכנסת פרמטרים ל-Zone record.

ניתן לבדוק את התוצאה גם עם nslookup כמו שהראיתי בהתחלה או עם אתר יעודי.

מיילים נראים לפעמים כמו וודו, אבל בפועל מדובר בפרוטוקול תקשורת קל להבנה וליישום. SPF הוא קל להבנה ולהטמעה. DKIM הוא מעט יותר מורכב, אבל ממש לא נורא במיוחד אם אתם לא אלו שצריכים להפעיל את שרת המייל. התקנת DKIM על שרת מייל דורשת הבנה. אבל בדיקה של DKIM והבנה בסיסית שלו על מנת לראות שהוא עובד זה ממש פשוט. אלו שתי המשוכות הגדולות בדרך להבטחה שהמייל שלכם לא יהיה בספאם של הלקוחות. DMARC זה הדובדבן על הקצפת. וגם מבטיח שאם יש פתאום תקלה, תקבלו דיווח על זה לכתובת מייל יעודית.

פוסטים נוספים שכדאי לקרוא

צילום מסך של סוואגר
יסודות בתכנות

openAPI

שימוש בתשתית הפופולרית למיפוי ותיעוד של API וגם הסבר בסיסי על מה זה API

בינה מלאכותית

Safeguards על מודל שפה גדול (LLM)

פוסט בשילוב עם פודקאסט וסרטון על ההגנות שאפשר להציב על LLM בסביבת פרודקשן

גלילה לראש העמוד