בדיקת SPF, DKIM ו-DMARC
לפני שהדוא״ל שלכם נוחת בספאם, בודקים מה השרתים המקבלים קוראים ב-DNS: רשומת SPF אחת תקינה בתוך 10 השאילתות שלה, מדיניות DMARC שעושה משהו, ומפתחות DKIM ארוכים מספיק. הדפדפן שואל ישירות resolvers ציבוריים; שום דבר לא עובר דרך ANAROQ ולא נשאר אצלנו. מתחת לבדיקה כותבים רשומות SPF ו-DMARC מקומית.
כתיבת רשומות SPF ו-DMARC
המחוללים האלה רצים בדפדפן ולא שולחים דבר. פרסמו את התוצאה אצל ספק ה-DNS כרשומת TXT, ואז בדקו שוב למעלה.
רשומת SPF
בחרו את כל מה ששולח דוא״ל בשם הדומיין שלכם. לדומיין יש רשומת SPF אחת בדיוק: אם כבר יש לכם אחת, אחדו אליה במקום להוסיף שנייה.
v=spf1 -allלא נבחר דבר: זו הרשומה של דומיין שלא שולח דוא״ל. היא לא עולה אף שאילתה.
רשומת DMARC, שלב אחר שלב
DMARC אומר לשרתים המקבלים מה לעשות בדוא״ל שנכשל גם בהתאמת SPF וגם בהתאמת DKIM, ולאן לשלוח דוחות. מתקדמים שלב אחד בכל פעם, ורק כשהדוחות מראים שכל הדוא״ל שלכם עובר.
v=DMARC1; p=noneהבא: קראו את הדוחות, הוסיפו ל-SPF או ל-DKIM את השירותים שנכשלים, ואז עברו ל-quarantine.
מה הכלי עושה
הכלי קורא את רשומות אימות הדוא״ל של דומיין מ-resolvers ציבוריים של DNS-over-HTTPS, מהדפדפן שלכם: רשומת ה-SPF וכל רשומה שהיא כוללת, מדיניות ה-DMARC, מפתחות ה-DKIM של ה-selectors שתזינו ורשומות ה-MX. הוא מדווח על מה שגורם לשרתים המקבלים להתייחס לדוא״ל שלכם כלא מאומת: יותר מרשומת SPF אחת, יותר מ-10 שאילתות DNS, +all, מדיניות DMARC חסרה או לניטור בלבד, ומפתחות DKIM חסרים או קצרים. שני מחוללים כותבים רשומות SPF ו-DMARC מקומית.
איך זה עובד
- הזינו את הדומיין שבכתובת השולח, ואת ה-selectors של DKIM שאתם מכירים (ערך ה-s= בכותרת DKIM-Signature של הודעה ששלחתם).
- קראו את ההודעה: הלחיצה שולחת את שמות ה-DNS של הבדיקה ל-resolvers שמופיעים בה.
- לחצו על בדיקת DNS של דוא״ל. ה-includes של SPF נבדקים רמה אחר רמה, ולכן בדיקה לוקחת כמה שניות.
- קראו את הממצאים, החמורים קודם, כל אחד עם מה לשנות וה-RFC שמאחוריו. השתמשו במחוללים למטה כדי לכתוב רשומה מתוקנת.
מה נבדק
- SPF
- רשומה אחת בדיוק שמתחילה ב-v=spf1, עם מונחים תקינים; היעדים של include ו-redirect נבדקים וכל שאילתה נספרת מול המגבלה של 10 (RFC 7208 §4.6.4); מה all אומר על שרתים אחרים (+all, ?all, ~all, -all); ptr ומונחים שאחרי all.
- DMARC
- רשומה אחת ב-_dmarc של הדומיין, או של דומיין האב; p תקין, ו-sp, pct, rua, adkim ו-aspf; p=none מדווח כניטור בלבד, והיעדר דוחות כפער (RFC 7489).
- DKIM
- לכל selector שתזינו: האם מפורסם מפתח, האם הוא תקין, מבוטל או במצב בדיקה, ומה הגודל שלו. RSA של פחות מ-1024 ביט נדחה; פחות מ-2048 נמוך ממה שחותמים צריכים להשתמש בו (RFC 8301).
- MX
- שרתי הדוא״ל והסדר שלהם; דומיין בלי MX, null MX (RFC 7505), ו-MX שמצביע לכתובת IP.
דוגמה
example.com הוסיף לרשומת ה-SPF שלו שירות ניוזלטר ושירות CRM. התשובות האלה בדויות (שמות וכתובות לתיעוד), והממצאים הם הממצאים האמיתיים של הבודק: ה-includes צריכים עכשיו 11 שאילתות DNS, DMARC עדיין ב-p=none בלי דוחות, ומפתח ה-DKIM של selector s1 הוא 1024 ביט.
תוצאה עבור example.com
SPF
v=spf1 a mx include:spf.mail-a.example include:spf.newsletter.example include:spf.crm.example ~all11 מתוך 10 שאילתות DNS מותרות, כולל ה-includes.
עץ ה-includes
- example.com
- include:spf.mail-a.example
- include:_s1.mail-a.example
- include:_s2.mail-a.example
- include:_s3.mail-a.example
- include:spf.newsletter.example
- include:_ip.newsletter.example
- include:spf.crm.example
- include:spf.mail-a.example
DMARC
v=DMARC1; p=noneנמצאה ב-_dmarc.example.com.
| תגית | משמעות | ערך |
|---|---|---|
| p | מדיניות לדומיין | none |
| sp | מדיניות לתת-דומיינים | none |
| pct | החלק מהדוא״ל שנכשל שהמדיניות חלה עליו (%) | 100 |
| rua | לאן נשלחים הדוחות המצטברים | — |
| adkim | התאמת DKIM (r מקלה, s מחמירה) | r |
| aspf | התאמת SPF (r מקלה, s מחמירה) | r |
DKIM
| selector | מצב | מפתח |
|---|---|---|
| s1._domainkey.example.com | מפורסם | rsa, 1024 ביט |
MX
| עדיפות | שרת דוא״ל |
|---|---|
| 10 | mx1.example.com |
| 20 | mx2.example.com |
ממצאים
5 ממצאים: 1 שגיאה, 0 גבוהה, 2 בינונית, 1 נמוכה, 1 מידע.
שגיאה1
- שגיאהAQ-MAIL-005
רשומת ה-SPF צריכה 11 שאילתות DNS, כולל ה-includes שלה; המגבלה היא 10. מעבר לה, השרתים המקבלים נעצרים עם שגיאה (permerror) ו-SPF נכשל לכל הדוא״ל שלכם.
תיקון: הסירו includes של שירותים שכבר לא שולחים דרכם, החליפו
aו-mxב-ip4:/ip6:של שרתים קבועים (הם לא עולים שאילתה), או שלחו דיוור המוני מתת-דומיין עם רשומת SPF משלו.
בינונית2
- בינוניתAQ-MAIL-023
מדיניות ה-DMARC ב-
_dmarc.example.comהיאp=none: ניטור בלבד. דוא״ל שנכשל ב-SPF וב-DKIM עדיין נמסר.תיקון: כשהדוחות מראים שכל הדוא״ל שלכם עובר, עברו ל-
p=quarantineואחר כך ל-p=reject. המחולל למטה מסביר כל שלב. - בינוניתAQ-MAIL-034
מפתח ה-DKIM של selector
s1הוא RSA של 1024 ביט. מפתחות של פחות מ-1024 ביט נדחים; חותמים צריכים להשתמש לפחות ב-2048.תיקון: צרו בשירות הדוא״ל מפתח של 2048 ביט תחת selector חדש, פרסמו אותו, העבירו אליו את החתימה, והסירו את ה-selector הישן אחרי כמה ימים.
נמוכה1
- נמוכהAQ-MAIL-025
לרשומת ה-DMARC ב-
_dmarc.example.comאין כתובתrua: אף אחד לא מקבל את הדוחות המצטברים שמראים מי שולח דוא״ל בשם הדומיין.תיקון: הוסיפו
rua=mailto:עם תיבה שאתם קוראים, או של שירות לניתוח דוחות DMARC.
מידע1
- מידעAQ-MAIL-011
רשומת ה-SPF מסתיימת ב-
~all(soft fail): דוא״ל משרתים אחרים מסומן ולא נדחה. עם מדיניות DMARC זה מקובל; -allמחמיר יותר.
מגבלות
- הוא רואה מה resolvers ציבוריים עונים מהמקום שלכם, ברגע הזה.
- אי אפשר לגלות selectors של DKIM מה-DNS: נבדקים רק אלה שתזינו.
- includes של SPF שמשתמשים במאקרו (%{…}) מתמלאים לכל הודעה ולא נבדקים, ולכן ספירת השאילתות יכולה להיות גבוהה יותר. הבודק מפסיק לעקוב אחרי includes כשהספירה עוברת את 10.
- הוא לא שולח הודעת בדיקה, לא בודק רשימות חסימה (blocklists) ולא קורא BIMI, ואינו יכול לומר אם הודעה מסוימת עוברת: זה תלוי בשרת שממנו היא נשלחה.
- ההכרעה אם שם הוא דומיין שורש נעשית בלי Public Suffix List, כמו בבדיקת ה-DNS לפני עלייה לאוויר; דומיין האב ל-DMARC נקבע לפי אותו כלל.
מתודולוגיה: איך מחושבים המספרים
מקורות
קשורים
הצעד הבא
כלי ציבורי חינמי של אנרוק, חברה שבונה תשתיות מחשוב. מה אנרוק בונה