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

פרופיל לקוח שאומר OpenVPN מתאר את הפרוטוקול, לא את מערכת הזהות שמאחוריו.

התחילו מהשרת, לא מ-adduser

זהו קודם את המוצר. Community OpenVPN הוא הדמון בתוספת כל אימות שחיברתם אליו, ואילו Access Server הוא מוצר עם שכבת משתמשים משלו. בקשו את התצורה, את שם היחידה ואת רשימת החבילות, ובדקו אם קיימת ממשק רשת לניהול משתמשים. אחר כך בדקו כיצד הפרופיל הנפרס מצפה שהלקוחות יוכיחו מי הם: תעודה, שם משתמש וסיסמה, או שניהם. התשובה הזו נוקבת במערכת שמחזיקה בחשבון.

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

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

אימות מקומי של Access Server שומר חשבונות במסד הנתונים שלו, ולכן הממשק ליצירתם שייך למוצר ולא למארח. PAM מפנה את האימות למערך של מערכת ההפעלה, ולכן חשבון Unix מקומי יכול להיות חלק מהרישום כאשר השירות בחר דווקא במערך הזה. LDAP, RADIUS ו-SAML מעבירים את האימות לשירות חיצוני, שבו חיים הקצאה, מדיניות סיסמאות ו-MFA. Access Server עדיין יכול להחזיק תעודות והרשאות לכל משתמש בכל ארבעת המקרים, וזה מה שהופך את הפיצול למבלבל.

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

הרשאה היא החלטה נפרדת

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

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

ביטול גישה הוא חלק מהרישום

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

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

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

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