עבור לתוכן
Alex Kovalev

בונה SPF ו-DMARC

הדביקו את רשומת ה-TXT שספק האחסון נתן לכם וגלו מה היא באמת אומרת. או בנו חדשה בלי לשנן את התחביר.

רץ בדפדפן שלכם. שום דבר שתדביקו או תגררו לכאן לא מועלה לשום מקום.

דוגמאות

אין כאן שאילתות DNS, ובכוונה: הדומיין שלכם לא יוצא מהדפדפן. הביאו את הרשומה בעצמכם עם dig TXT example.com +short, ‏dig TXT _dmarc.example.com +short או nslookup -type=TXT example.com.

רשומה אחת · אזהרה אחת

SPFמתפרסם על הדומיין עצמו (host @)

v=spf1 +a +mx +ip4:203.0.113.10 include:_spf.google.com ptr ~all

#חלקמה זה אומראם יש התאמהשאילתות
1v=spf1מסמן את רשומת ה-TXT כ-SPF גרסה 1. חייב לבוא ראשון. —
2+aדואר מכתובות ה-IP ברשומות A/AAAA של הדומיין: בדרך כלל שרת האתר. Passמותר1
3+mxדואר משרתי ה-MX של הדומיין, אלה שמקבלים את הדואר שלכם. Passמותר1
4+ip4:203.0.113.10דואר מכתובת ה-IP ‏203.0.113.10. Passמותר—
5include:_spf.google.comGoogle Workspace: כל מה שרשומת ה-SPF של _spf.google.com מרשה. Passמותר1
6ptrבדיקת DNS הפוך: עובר אם ה-IP של השולח מצביע חזרה לשם תחת הדומיין הזה. Passמותר1
7~allכל מה שלא התאים לשום דבר למעלה. SoftFailלקבל ולסמן—
שאילתות DNS4 מתוך 10
  • אזהרהptr הוכרז כמיושן ב-RFC 7208: איטי, והרבה שרתים מדלגים עליו. פרטו את כתובות ה-IP, או השתמשו ב-a או ב-mx.
  • הערה~all: דואר מכל מקום אחר מקבל כישלון רך, ובדרך כלל מתקבל עם סימון. התחלה טובה; עברו ל--all כשהרשימה מלאה.
  • הערה+ הוא ברירת המחדל, אז +a ו-a אומרים אותו דבר.
  • הערהכל include ו-redirect מביאים שאילתות משלהם, וגם הן נספרות. הכלי הזה לא שואל את ה-DNS, בכוונה, אז הוא לא יכול לספור אותן: בדקו את הרשומות המוכללות בעצמכם.

איך משתמשים

5 צעדים
  1. הדביקו ערך TXT בלשונית הסבר: הרשומה עצמה, הגרסה עם המירכאות, או שורות שלמות מ-dig או מקובץ zone.
  2. קראו את הטבלה מלמעלה למטה. SPF בודק את החלקים משמאל לימין ועוצר בהתאמה הראשונה, כך שהסדר חשוב.
  3. תקנו קודם את כל מה שמסומן בעיה, ואחר כך את האזהרות.
  4. מתחילים מאפס? פתחו את בניית SPF או בניית DMARC, בחרו מה שמתאים והעתיקו את ה-host והערך ללוח ה-DNS.
  5. בדקו את הרשומה החיה עם dig TXT example.com +short ו-dig TXT _dmarc.example.com +short (ב-Windows: nslookup -type=TXT example.com).

מה זה עושה

דקת קריאה

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

ההסבר עוקב אחרי RFC 7208 עבור SPF ו-RFC 7489 עבור DMARC. הוא מסמן את מה שגורם לשרתים מקבלים לוותר על רשומה: רשומת SPF שנייה, יותר מ-10 שאילתות DNS, מנגנון לא מוכר, היעדר p=. וגם את מה שחוקי אבל לא חכם: +all, ‏ptr, ‏p=none בלי לאן לשלוח דוחות. הדביקו רשומת מפתח DKIM ‏(v=DKIM1) והוא יסביר גם אותה.

הוא לא שואל את ה-DNS, ובכוונה. שאילתה הייתה מוסרת את הדומיין שלכם לשרת resolver, וכל מה שאתם מקלידים כאן לא יוצא מהדפדפן. זו גם המגבלה שלו: הוא סופר את השאילתות ברשומה שהדבקתם, אבל לא את אלה שבתוך כל include:. אם אתם קרובים ל-10, הביאו את הרשומות האלה עם dig והדביקו גם אותן.

את DMARC מפעילים בשלבים. מתחילים ב-p=none עם כתובת rua, קוראים את הדוחות שבועיים עד ארבעה, ומוסיפים ל-SPF ול-DKIM שולחים ששכחתם. אחר כך p=quarantine (עם pct=25 אם אתם לחוצים), ולבסוף p=reject.

שאלות

5 שאלות

להשתמש ב-~all או ב--all?

~all כל עוד אתם עדיין מגלים מי שולח דואר בשמכם, ו--all כשהרשימה מלאה. כשיש DMARC, רוב השרתים המקבלים פועלים לפי מדיניות ה-DMARC ולא לפי תוצאת ה-SPF לבדה, כך שההבדל קטן ממה שנראה. לעולם לא +all: הוא מרשה לכל אחד לשלוח בשמכם.

מה עושה p=none?

לדואר עצמו כלום: השרתים המקבלים מוסרים אותו כרגיל ושולחים לכם דוחות על מה שעבר ומה שנכשל. זה צעד ראשון בטוח, בתנאי שמוסיפים rua=mailto:…. בלי כתובת לדוחות אתם לא מנטרים כלום.

אפשר שתי רשומות SPF?

לא. לדומיין צריכה להיות בדיוק רשומת TXT אחת שמתחילה ב-v=spf1. עם שתיים, השרתים המקבלים מחזירים permerror ו-SPF נכשל לכל הודעה. מזגו אותן: v=spf1 אחד, כל חלקי ה-include: וה-ip4:, ו-all אחד בסוף.

מה זו מגבלת 10 שאילתות ה-DNS של SPF?

בבדיקת רשומת SPF אחת, השרת המקבל מוותר אחרי 10 שאילתות DNS ומחזיר permerror. ‏include, ‏a, ‏mx, ‏ptr, ‏exists ו-redirect עולים אחת כל אחד, וכך גם כל אחד כזה בתוך הרשומות שאתם מכלילים. ‏ip4, ‏ip6 ו-all בחינם. הסירו שירותים שכבר לא בשימוש, או החליפו include בטווחי ה-IP שמאחוריו.

למה DMARC נכשל כש-SPF עובר?

כי DMARC דורש גם יישור (alignment): הדומיין שעבר את הבדיקה צריך להתאים לדומיין בכתובת ה-From שאנשים רואים. ‏SPF בודק את כתובת ההחזרות (Return-Path), ושירותי דיוור ו-CRM שמים שם לעתים קרובות דומיין משלהם, כך ש-SPF עובר עבור הדומיין שלהם ולא שלכם. ‏DMARC עובר כש-SPF או DKIM עוברים וגם מיושרים, אז הפתרון הרגיל הוא חתימת DKIM עם הדומיין שלכם (רוב השירותים נותנים לזה רשומות CNAME או TXT) או return-path מותאם על תת-דומיין שלכם. יישור גמיש, ברירת המחדל, מקבל כל תת-דומיין של הדומיין שלכם; aspf=s ו-adkim=s דורשים התאמה מדויקת.

עוד כלים על הקיר