DNS של VPN מול DoH בדפדפן: מה בדיקת דליפה לא יכולה לספר לך
כתובת של בדיקת דליפה רק מראה איזה פותר ענה. שאילתות מוצפנות, DNS מפוצל ומדיניות הדפדפן קובעים אם שמות פרטיים עדיין נפתרים בכלל.
עמוד בדיקת הדליפה אומר שה-DNS שלך תקין, התג בדפדפן אומר מאובטח, והוויקי הפנימי עדיין לא נטען. שלושתם יכולים להיות נכונים בו-זמנית, כי הכתובת של פותר אינה אותו דבר כמו המדיניות שבחרה בו או הנתיב שהשאילתה עברה. מה שאנשים מכנים דליפת DNS הוא למעשה שאלה אחת: איזה פותר קיבל את השם, והאם הבחירה הזו הייתה מכוונת? כדי לסדר זאת דרושות שלוש בדיקות, ורק האחרונה כרוכה בשינוי הגדרה.
מיתוס ראשון: התג נוקב בשם הפותר שלך
בדיקת דליפה פותרת שם בדיקה ומדווחת על הכתובת שענתה. היא אינה מדווחת על המדיניות שבחרה באותו פותר, וכשהשאילתה עטופה ב-DNS על גבי HTTPS, תיבת ביניים בנתיב כלל לא יכולה לראות את השם. שתי מכונות שונות מאוד מייצרות את אותו תג מרגיע: אחת שבה ה-VPN דחף את 10.8.0.1 והדפדפן משתמש בו, ואחת שבה הדפדפן התעלם מרשימת המערכת ושלח את השם דרך המנהרה לספק המוצפן שלו.
ההבחנה חשובה ברגע שבו שם פרטי נכשל. בהגדרה הראשונה הפותר של ה-VPN עונה עבור האזור הארגוני; בשנייה הדפדפן מעולם לא שאל אותו, ולכן שם המארח הקצר אינו נפתר והכשל נראה כמו VPN שבור. הבדיקה אינה בדיקת דליפה נוספת, היא חיפוש של שם שרק פותר אחד מכיר.
מיתוס שני: הדפדפן עוזב את המנהרה
DNS בוחר כתובת, הניתוב נושא את החיבור, ואלה שתי שכבות נפרדות. שאילתה שנשלחת לספק DoH ציבורי היא עדיין TCP פורט 443 אל כתובת נתיבה. אם טבלת הניתוב שלך שולחת את הנתיב המוגדר כברירת מחדל לתוך המנהרה, גם השאילתה הזו עוברת דרך המנהרה. המותג של הפותר אינו קובע את הנתיב.
מה ש-DoH בדפדפן משנה הוא הנמען של השמות. זו החלטת פרטיות אמיתית והחלטת מדיניות אמיתית, אבל היא אינה עקיפת ניתוב. אם הדרישה שלך היא שהשמות יישארו אצל מפעיל ה-VPN, שאילתה מוצפנת למישהו אחר נכשלת בדרישה הזו בעוד היא עדיין משתמשת במנהרה לחיבור בפועל.
מיתוס שלישי: כל VPN גובר על כל דפדפן
ל-DNS מאובטח בדפדפן יש מצבים, לא מתג: כבוי, ספק ברירת מחדל עם גיבוי, תבנית מותאמת אישית, או מדיניות שנאכפת על ידי מערכת ההפעלה או הארגון. דווקא מקרה הגיבוי הוא זה שמייצר דיווחים לסירוגין. כשנקודת הקצה המוצפנת אינה נגישה, הדפדפן עשוי לחזור לפותר המערכת, כך שאותו מחשב נייד פותר שם פרטי נכון ביום שני ולא ביום שלישי.
במקביל, רוב לקוחות ה-VPN מגדירים את פותר המערכת כשהחיבור עולה ומשחזרים את הקודם כשהוא נופל. דפדפן שמחזיק פותר מוצפן מותאם אישית כלל אינו מבחין בשחזור הזה. לכן אותו פרופיל מתנהג אחרת בשני מחשבים ניידים, ולכן resolv.conf נראה תקין בעוד הדפדפן עדיין שואל מישהו אחר.
resolvectl status # per-link DNS servers and split-DNS domains
scutil --dns | head -30 # macOS resolver order for each domain
nslookup intranet.corp 10.8.0.1 # ask the VPN resolver directlyהריצו את אלה כשאתם מחוברים, שימו לב לאילו דומיינים כל פותר טוען, והשוו למה שהדפדפן מדווח על המצב שלו. תיעוד ה-DoH של Mozilla הוא תיאור סביר של האופן שבו אמורים לפעול מצב ברירת המחדל ומצב הגיבוי של דפדפן.
להחלטה יש שלושה קלטים, לא אחד
שמות פרטיים, אמון במפעיל ונגישות קובעים את הסידור הנכון. שמות שרק הפותר של ה-VPN מכיר מחייבים DNS מפוצל: הסיומת הפרטית הולכת לפותר שנדחף, וכל השאר הולך לפי המדיניות שבחרת לשמות ציבוריים. האמון במפעיל קובע אם גם השמות הציבוריים צריכים ללכת לאותו פותר או לשירות נפרד. הנגישות קובעת אם הפותר המוצפן שבחרת בכלל שמיש ברשת הזו.
| Condition | What it forces |
|---|---|
| Internal names must resolve | Split DNS: private suffixes to the VPN resolver, the rest to your chosen default |
| Queries must stay with one operator | Pin both the system resolver and the browser mode, and disable fallback |
| Resolver only reachable through the tunnel | Keep the pushed resolver; do not point DoH at an endpoint your routes exclude |
אף אחת מהשורות האלה אינה המלצה אוניברסלית. פותר שמפעיל ה-VPN מרכז את התצפיות אצל אותו מפעיל; שירות נפרד מוסיף נמען נוסף של השמות שנשאלו. אף אחד מהסידורים לא מוכיח דבר על שמירה אלא אם תקראו את המדיניות.
רשמו את ההחלטה לכל פרופיל, כי ההגדרות האלה נודדות. פרופיל שדחף פותר בחודש שעבר אולי לא ידחוף דבר היום, והדפדפן ישמור בשמחה נקודת קצה מותאמת ישנה שעדיין עונה. מה שצריך להיכתב בהערה הוא כתובת הפותר, הסיומות שבבעלותו ומצב הדפדפן, לא המותג של השירות.
בדקו את המדיניות שאתם חושבים שהגדרתם
בדקו לפי שם, לא לפי תג. פתרו שם ציבורי ושם פרטי דרך פותר המערכת, ואז חזרו על כך בדפדפן עם הגדרת ה-DNS המאובטח שלו במצב שבו אתם מתכוונים להשתמש. אם השם הפרטי נכשל רק בדפדפן, מצאתם את אי-התאמת הנמען בלי לגעת בהגדרת VPN אחת.
אחר כך התחברו מחדש ובדקו את השחזור, כי שם חיים באגי המסירה: התנתקו, ודאו שהפותר הקודם חזר, התחברו מחדש, ודאו שהפותר שנדחף חזר. לבסוף, בדקו דפדפן עם מדיניות מנוהלת אם יש לכם כזה, כי המצב הזה עשוי לדחות את השינוי שלכם לגמרי ולשמור בשקט על הפותר הקודם.
התחילו בשאלת מרחב השמות ותימנעו מרוב זה. אם המכונה חייבת להגיע לשמות פנימיים, הפותר המוצפן של הדפדפן הוא החלטה רק לגבי החצי הציבורי, והחצי הפרטי נשאר עם מה שה-VPN דחף.