שכפול תמונת שרת VPN בלי לשכפל את הזהות שלו
החליטו אם ההעתקה משחזרת שער אחד או מוסיפה שער שני. תצורה לשימוש חוזר, סמכות חתימה ומצב הרשת נעים כל אחד אחרת.
התמונה עולה, השירות מתחיל והלקוחות מתחברים. זה הרגע לעצור ולשאול איזו משתי פעולות שונות מאוד קרתה זה עתה. או שההעתקה משחזרת שער לוגי אחד שהיה קיים קודם, או שהיא מוסיפה שער שני לצי. שתיהן לגיטימיות, ויש להן השלכות שונות על זהות ועל גישה. מכונה שעולה נקי אינה מוכיחה אף אחת מהן.
שלושה תנאים מכריעים את התשובה, והם שלושת הדליים של חומר שתמונה יכולה לשאת. מיינו אותם לפני שהתמונה נבנית, לא אחרי שהיא נפרסה פעמיים.
קודם החליטו איזו משתי הפעולות אתם מבצעים
שחזור שומר על זהות שירות אחת. המופע הישן נעלם, השם והתעודה נשארים, והלקוחות ממשיכים לבטוח באותה נקודת קצה. הוספה יוצרת זהות שנייה שלקוחות, יומנים וביטול חייבים כולם להבחין בה.
ההבחנה אינה קוסמטית. אם שני מארחים חיים מציגים את אותה תעודת שער, לקוח לא יכול להבדיל ביניהם, גם לא נתיב ביקורת, וביטול התעודה מסיר את שניהם בבת אחת. זה אולי בדיוק מה שתכנון זמינות גבוהה מכוון רוצה, ורק לעתים רחוקות זה מה שהעתקת תמונה ממהרת מתכוונת לו.
אז ההחלטה הראשונה היא משפט, שנכתב לפני שהתמונה עוזבת את מארח הבנייה: ההעתקה הזו משחזרת את שער A, או ההעתקה הזו הופכת לשער B. כל מה שאחרי זה הוא הנהלת חשבונות מול המשפט הזה. אם אף אחד לא יכול לכתוב אותו, ההעתקה לא מוכנה לבנייה.
קלטים לשימוש חוזר, זהות וסמכות, מצב פריסה
הדלי לשימוש חוזר הוא הקל: חבילות, תצורה שנבדקה ללא סודות, תבניות שירות, הגדרות הקשחה. בזה תמונה באמת טובה, ואפשר לשחזר אותה בלי גבול.
הדלי של זהות וסמכות הוא המקום שבו העתקות משתבשות. המפתח הפרטי והתעודה של שער מזהים את השער הזה לכל לקוח. מפתח החתימה של רשות התעודות הוא אובייקט אחר עם כוח אחר: הוא מנפיק זהויות. אמון במנפיק אינו אומר שכל שער חדש זקוק ליכולת להנפיק, ושליחת מפתח החתימה בתוך תמונה מעניקה את היכולת הזו לכל מה שיכול לקרוא את התמונה.
הדלי של מצב פריסה הוא זה שאנשים שוכחים כי הוא נראה כמו תצורה. כתובות האזנה, מאגרי כתובות, נתיבים נדחפים, הגדרות פותר ואינטגרציה מקומית כולם מקודדים הנחות לגבי המארח הראשון. צומת שני שמעתיק אותם עשוי להקצות ממאגר שכבר שייך לשער אחר, או לכוון לקוחות למשאב שקיים רק לצד המקור.
מה צומת חדש חייב לקבל, וממי
צומת המנוהל באופן עצמאי אמור לקבל את האישורים שלו דרך תהליך ההרשמה המאושר, כשפעולת החתימה מתרחשת במקום שבו נמצא מפתח החתימה ולא על המארח החדש. רשמו איזו זהות ניתנת להסרה בלי להפריע לצמתים האחרים; אם התשובה היא "כולן", לתכנון יש זהות אחת שמעמידה פנים שהיא שתיים.
ערכי רשת ראויים לאותו יחס. בחרו מאגר, כתובת האזנה וקבוצה של נתיבים נדחפים שאינם מתנגשים בשער הקיים, וכתבו אותם בקלטי האספקה ולא בתמונה. הקלט ניתן לבדיקה; התמונה לא.
יש מקרה ביניים לגיטימי. תכנון שחזור או שכפול נתמך עשוי לשמור בכוונה זהות שירות לוגית אחת על פני מארחים, עם גישה מבוקרת להעתקה הישנה ותוכנית סבב. זו החלטה עם בעלים, לא ברירת מחדל שקורית כי התמונה הייתה נוחה.
openssl x509 -in /etc/openvpn/server/server.crt -noout -subject -issuer -dates
find /etc/openvpn -name '*.key' -o -name '*.pem' | head -20
הפקודה הראשונה אומרת איזו זהות הצומת באמת מציג ואיזה חתם עליה. השנייה היא מלאי התחלתי, לא הוכחה: חומר פרטי יכול לחיות מחוץ לספרייה הזו, בתוך מסד נתונים של יישום, או בשכבת תצלום שהמערכת הפעילה כבר אינה מציגה.
מה העתקה של התמונה נושאת בשקט
מחיקת קובץ מהגרסה החדשה ביותר של תמונה אינה מסירה אותו מגרסאות ישנות יותר, ממטמוני שכבות או מתצלומים שנלקחו בזמן שהוא היה קיים. לכן יש להתייחס לתמונות נושאות אישורים כאל אובייקטים רגישים לאורך כל חייהן, ולא רק ברגע הבנייה.
בדקו את תוכן התמונה ואת קלטי האספקה כשתי שאלות נפרדות. התמונה עונה "מה יש בתוך החפץ הזה", והקלטים עונים "מה המופע הזה יהיה באתחול הראשון". תמונה נקייה עם סקריפט אתחול שמביא מפתח משותף עונה היטב על השאלה הראשונה ורע על השנייה.
החזיקו תמונות שחזור שמכילות סודות באופן לגיטימי מוגבלות לאנשים שזקוקים להן, ורשמו היכן הן מאוחסנות. החלופה, תמונה שנוחה כי היא עובדת בלי שום אספקה, היא אותה תמונה שמעניקה לכל מי שמוצא אותה את זהות השער. רק אחת משתי המשימות האלה מופיעה ביומן בנייה.
בדיקות קבלה לפני ייצור
לפני שהצומת מקבל תנועה, אשרו ארבעה דברים: הזהות שהוא מציג, הלקוחות שהוא יקבל, המשאבים שהוא רשאי להגיע אליהם ונתיב החזרה לכתובות שהוא מחלק.
systemctl status openvpn-server@lab --no-pager
ss -lunp 'sport = :1194'
ip -4 route show table all | grep -F '10.90.'
ואז בדקו את המקרה השלילי, זה שתופס תאונות: האם לצומת החדש יש גישת מנהל או לקוח שנועדה למקור? תצורה מועתקת עשויה לשאת רשומת לקוח נוספת, נתיב ניהול בירושה או הנחיית push שהייתה הגיונית במארח הראשון.
אם תמונה שמכילה סודות חיים כבר עברה את הגבול המאושר שלה, החליפו את האישורים והגבילו את ההעתקות. הסרת הקובץ מהבנייה האחרונה אינה אותו דבר כמו הוצאת האישור שהעתקות ישנות עוד מחזיקות בו משימוש, והפער בין שתי העובדות האלה הוא בדיוק החלון שתוקף זקוק לו.