שער VPN משולב או נפרד: בחרו לפי תחום הכשל
ספירת התקנים לא מלמדת דבר. רשמו מה נכשל יחד, היכן נאכפת המדיניות ואיך מגיעים לשער כשהוא נשבר.
שני התקנים נראים עמידים יותר מאחד עד שמבחינים שהם חולקים את אותו פס חשמל, אותו היפרבייזר ואותו קישור במעלה הזרם. ספירת קופסאות עונה על שאלה שאיש לא שאל; השאלה המועילה היא מה נכשל באותו זמן. רשמו תחילה את חוזה הכשל, ואז תנו לו לבחור את הטופולוגיה. ה-runbook שלהלן מפיק את הרשומה הזו.
מה נעצר במהלך אתחול אחד
עבור שער משולב, פרטו מה נעלם במהלך אתחול, עדכון כושל או תקלת חומרה. אם הגישה לאינטרנט והקישוריות הפרטית נעצרות יחד, ההפסקה המשותפת הזו היא כעת חלק מדרישת הזמינות שלכם, בין אם מישהו רשם אותה ובין אם לא. אותו תרגיל חל על התקן אחד שמסיים כמה תפקידים: רשימת השירותים שהוא מפיל היא המפרט האמיתי.
עבור שערים נפרדים, פרטו מה נשאר משותף: חשמל, מארח הווירטואליזציה, הקישור במעלה הזרם, ספק הזהות, רשת הניהול. שני התקנים מאחורי מתג כשל אחד הם תחום כשל אחד עם שני שמות מארח. הפרדה שמתעלמת מתלות אלו היא דיאגרמה, לא תכנון.
ספרו גם את הבעלות על התחזוקה. התקן נוסף מביא תצורה, ניטור, גיבויים ונוהל שחזור שני, ושום דבר מזה אינו בחינם.
סמנו היכן נאכף כל כלל
עקבו אחר חבילה אחת מהלקוח למשאב פרטי ובחזרה, וסמנו כל מקום שבו מיושמת מדיניות. נתב שני מוסיף נקודה נוספת שבה העדפת מסלול, תרגום או מצב חיבור יכולים לחלוק על הראשון. רוב הכשלים המסתוריים בתכנון שני שערים חיים באותו תפר.
ip route get 10.20.30.40
traceroute -n 10.20.30.40
conntrack -L -p tcp --dport 443רשמו היכן נגמרת הגנת VPN והיכן מתחילה המדיניות הפנימית. אם הדרך בין שני ההתקנים מתירנית, הקופסה השנייה לא יצרה גבול; היא רק העבירה את המקום שבו גבול היה יכול להיות. בפלטפורמה אחת, אזורי מדיניות נפרדים יכולים עדיין להיות אפקטיביים, ויש להעריך את אפקטיביותם לפי הכללים ולא לדחות אותה מפני שהחומרה משותפת.
עצרו אם אינכם יכולים לומר איזה התקן אוכף את הכלל החשוב. הפער הזה הוא הממצא, לא פרט שיוכרע מאוחר יותר.
הכלה היא גבול, לא שלדה
התקן נפרד מכיל פגיעה רק כאשר הדרך דרכו מוגבלת למה שהצד השני צריך. אם שני ההתקנים מקבלים כל תעבורה זה מזה, לתוקף שנוחת על אחד יש אותה הגעה כמו קודם. טענת ההכלה שייכת למערכת הכללים, לא למלאי. קראו את הכללים, אמרו אילו זרימות מותרות, ואז החליטו אם ההפרדה קנתה משהו.
אותה היגיון חל על משתמשים. משתמש VPN שזוכה לאמון בגלל הרשת שממנה הגיע בוטח במיקום במקום בזהות, והנחיית האפס-אמון של NIST מתארת את החלופה: לאמת ולאשר כל בקשה מול המשאב. העיקרון הזה תקף בכל שלדה שמסיימת את המנהרה.
אם ההפרדה קיימת כדי לספק קו ציות ולא כדי לשנות זרימה, אמרו זאת ברשומה. בקרה שאיש אינו יכול להסביר היא הראשונה שמוסרת תחת לחץ.
שחזרו את מה שאתם באמת יכולים להגיע אליו
שאלו איזה נתיב שחזור שורד כשאחד התפקידים מת. כשהדרך היחידה להגיע לשער VPN שבור עוברת דרך אותו שער, התקן חלופי במקום אחר לא עוזר למנהל שצריך לתקן אותו. נתיב מחוץ לפס, קונסולה וחזרה מתועדת הם החלקים שהופכים את התכנון לניתן לשחזור.
systemctl status strongswan
nft list ruleset
ip -brief addressכיילו את התכנון לעומס העבודה הנתמך המלא ולא למספר הצפנה מבודד, כי סינון ובדיקה צורכים את אותה חומרה. השתמשו בתיעוד היצרן ובמדידות שלכם במקום להניח שההפרדה מהירה או איטית יותר. אחר כך כתבו את רשומת ההחלטה: אילו זרימות מותרות, אילו תלויות משותפות, מה חלון תחזוקה מפיל, אילו ראיות קיבולת יש לכם ומי הבעלים של כל שלב שחזור. הרשומה הזו קצרה מספיק לסקירה וספציפית מספיק כדי לחזור אליה.
ה-runbook מסתיים כשחוזה הכשל כתוב, לנתיב ההעברה יש נקודת אכיפה אחת בשם לכל כלל, ההכלה מתוארת בזרימות ולא במספר התקנים, והשחזור עובד מחוץ לרכיב הכשל. בחרו בסידור הפשוט יותר שעומד בדרישות אלו.