שגיאת 691 ב-VPN של Windows: איזו בדיקה באמת נכשלה?
תיבת דו-שיח אחת מכסה כמה דחיות שונות. בדקו את הכניסה המילולית, את פרטי הכניסה השמורים ואת החלטת השרת לפני שמאפסים חשבון.
Windows דוחה סיסמה שהוא קיבל במקום אחר דקה קודם, כך החשבון נראה שבור בעוד הניסיון מעולם לא נבדק. שגיאה 691 פירושה שהחיבור נדחה במהלך האימות, והלקוח מציג את אותו טקסט בין אם הסוד שגוי, בין אם שם החשבון נפתר לזהות בלתי צפויה, ובין אם מדיניות בצד השרת דחתה את החיבור. שלושה תיקונים שונים חולקים הודעה אחת, ולכן איפוס לפעמים עוזר ולפעמים לא משנה דבר. התחילו בחלק שאתם יכולים לבדוק לבד: המחרוזת המדויקת שהלקוח שלח ומאגר פרטי הכניסה שממנו לקח אותה. אחר כך שאלו את השרת איזו החלטה הוא רשם, כי תיבת הדו-שיח היא דחייה ולא אבחון.
שלוש דרכים להידחות, תיבת דו-שיח אחת
סוד שגוי הוא רק הדרך הראשונה להגיע לתיבת דו-שיח זו. שם החשבון יכול להיפתר לזהות שלא התכוונתם לה, ייתכן שלחשבון אין הרשאת חיבור מרחוק, או שתנאי בשרת ידחה את החיבור לאחר שהסיסמה התקבלה. כל אחד מאלה מייצר את אותו טקסט בלקוח, ולכל אחד תיקון משלו.
לכן איפוס נראה כאילו הוא עובד ביום שני ולא עושה דבר ביום שלישי. קראו את תיבת הדו-שיח כדחייה ולא כאבחון, ורשמו את שם הפרופיל ואת השעה המקומית של הכשל לפני שנוגעים בחשבון.
שלוש הקטגוריות נכשלות גם בשכבות שונות. סוד שגוי מכשיל את הוכחת הזהות, צורת חשבון שגויה מכשילה את החיפוש, ותנאי מדיניות מכשיל את ההרשאה לאחר שהזהות הוכחה. רק הראשונה מתוקנת על ידי החלפת סיסמה. השתיים האחרות דורשות מישהו עם גישה לרישום ההחלטות של השרת, ולכן הצעד הבא הוא בקשת מידע ולא איפוס נוסף.
מה הלקוח באמת שלח
אשרו את תבנית החשבון המתקבלת עם מי שמפעיל את השער, כי שם משתמש חשוף, שם מוסמך בתחום ושם עיקרי של משתמש יכולים להיפתר להקשרי חשבון שונים. רק אחד מהם עשוי להיות הזהות שמחזיקה בהרשאה. שאלו איזו תבנית השער מצפה לה לפני הניסיון הראשון ולא אחרי החמישי, ובדקו אם הלקוח עושה שימוש חוזר בפרטי כניסה שמורים במקום באלה שהקלדתם.
שתי שאילתות לקריאה בלבד במחשב Windows מציגות את הפרופיל ואת כל פרטי הכניסה השמורים במטמון שעלולים לגבור על תיבת הדו-שיח. אף אחת מהן לא מחייגת לשרת:
Get-VpnConnection -Name 'Corp VPN' | Format-List Name, ServerAddress, TunnelType, AuthenticationMethod
cmdkey /list | Select-String -Pattern 'corp' -SimpleMatchהתייחסו לסיסמה כאל נתונים ולא כאל טקסט שהועתק ממסמך. ערך שעבר דרך סקריפט עשוי לשאת תווי בריחה שמעולם לא היו חלק מהסוד, וייצוא תצורה אולי עטף אותו במרכאות. הסרת כל תו מיוחד כדי שיתאים היא שינוי שונה ממציאת הערך האמיתי, לכן קבעו תחילה את הערך האמיתי.
השיגו את החלטת המדיניות, לא איפוס
בפריסת גישה מרחוק שמשתמשת בשרת מדיניות רשת, שתי החלטות פועלות ברצף. האימות קובע איזה חשבון שואל, וההרשאה מחליטה אם אותו חשבון רשאי להתחבר בכלל. תנאי המדיניות והמגבלות שלה מוערכים לפי אמות המידה שלהם, ולכן סוד נכון מכריע רק את המחצית הראשונה של השאלה. שם המדיניות באירוע השרת מזהה איזו החלטה באמת רצה.
שלחו למנהל את שם הפרופיל, החשבון שנוסה וחתימת הזמן. בקשו את רישום ההחלטה המתאים ואת נימוקו במקום איפוס סיסמה נוסף, ובקשו את שם המדיניות שהאירוע נושא. מדריך קודי השגיאה של גישה מרחוק של Microsoft מפרט 691 בין כשלי פרטי הכניסה והאימות, וזו בדיוק הסיבה שתיבת הדו-שיח אינה יכולה להפריד בין שלושת המקרים.
המרת חשבון להיתר ללא תנאי הופכת החלטת הרשאה לחריג קבוע. היא גם מסירה את התנאי שעשה עבודה מועילה, והאדם הבא שיסקור את המדיניות לא ידע למה היא השתנתה. בקשו מהבעלים לאשר את המדיניות המיועדת במקום זאת, כדי שהקבלה תישאר מכוונת.
נסו שוב פעם אחת, ואז השוו
חזרו על אותו פרופיל לאחר התיקון היחיד שזיהיתם. אם הגישה מתקבלת ובעוד משאב פנימי עדיין נכשל, הכשל עבר לשכבה אחרת והוא כבר לא אומר דבר על הסיסמה. דווקא הפרופיל הלא-משתנה הוא מה שהופך את ההשוואה הזו למשמעותית.
עמדו בפיתוי להשבית משפחת כתובות או להפעיל מעקב מפורט לפני שהדחייה הוסברה. מעקב מייצר נפח ולא החלטה, והתוצאה השימושית הראשונה נשארת הרכיב שדחה את הניסיון והסיבה שהוא רשם. משזו ידועה, הניסיון החוזר מאשר את התיקון או מייצר תסמין חדש וצר יותר.