כלל ה-VPN שלכם חוסם את מסד הנתונים והפנייה נסגרת כתקלת חומת אש, בעוד אותו משתמש פותח שולחן עבודה מפורסם ומריץ שאילתות במסד הזה בלי שום בעיה. שתי הטענות נכונות. שולחן העבודה הוא לקוח אחר, עם כתובת משלו בקטע שהכללים כבר סומכים עליו, ועם זהות משלו כשהוא מתחבר הלאה. מה שנראה כמו כלל סותר הוא בדרך כלל בקשה שנייה שאיש לא הכניס לבדיקה.

לבקשה השנייה יש כתובת לקוח משלה

כשאפליקציה בתוך ההפעלה פותחת חיבור למסד הנתונים, לחיצת היד של TCP מתחילה במארח ההפעלה. כתובת המקור שלו שייכת לרשת של אותו מארח, ולכן כל נתב וחומת אש של מסד נתונים לאורך המסלול מעריך את הקטע של שולחן העבודה ולא את מאגר המנהרות שממנו הגיע המחשב הנייד שלכם. כתובת ה-VPN לא מופיעה בזרימה הזו אף פעם. לכן כלל חסימה מבוסס מקור יכול להיות נכון ולא רלוונטי בו בזמן.

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

whoami
ipconfig /all
Test-NetConnection db01.corp.internal -Port 5432

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

הזהות משתנה לא פחות מהכתובת

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

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

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

whoami /groups
klist
query session

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

מדוע המסלול הישיר עדיין חסום, ובצדק

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

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

מנו אותו מתוך הפעלת בדיקה, לא מגיליון אלקטרוני. קומץ פקודות מכסה את רוב המשטח.

Get-NetTCPConnection -State Listen | Select-Object LocalAddress,LocalPort,OwningProcess
net use
Get-ChildItem Env: | Where-Object Name -match 'PROXY|DATABASE|API'

בחרו את הגבול במכוון

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

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

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

בדקו את שתי האישורים ואת מסלול ההסרה

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

אחר כך בדקו את ההסרה, מפני שהפעלה מנותקת יכולה לחיות יותר מהסיבה שלה. טבלת ההפעלות היא המקום המהיר ביותר לראות מה עוד פועל.

query session
query user
qwinsta /server:rdsh01.corp.internal

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

מאמרים קשורים