חבילת חומת האש הותקנה, הכללים נעלמו לאחר האתחול
ההתקנה, מערך הכללים הפעיל והדבר שמשחזר אותו הם שלוש משימות נפרדות. שמירת כל כלל טעון עלולה לשמר ניסויים יחד עם מדיניות ה-VPN.
החבילה הותקנה נקי, הכללים נבדקו, ולאחר האתחול הבא השער היה פתוח לרווחה. שום דבר בעסקה לא נכשל; הכשל היה בהנחה מה יישאר. התקנת כלי חומת אש, החלטה אילו כללים צריכים לשרוד ושחזורם ברגע הנכון הם שלוש משימות נפרדות.
מה הסימפטום באמת אומר לך
למערך כללים שנעלם באתחול יש אחד משלושה בעלים: שום דבר לא שמר אותו, משהו אחר החליף אותו, או שהוא שוחזר לפני שהדבר שהוא תלוי בו היה קיים. השניים הראשונים נראים בתצורה; השלישי מופיע רק בסדר. לכן אתחול יכול להיראות כמו אובדן נתונים כשבאמת מדובר בבעיית רצף.
התחל בכתיבת מה שהיה נכון לפני האתחול: איזה שירות החזיק את הכללים, איזה קובץ או מסד נתונים הוא קרא באתחול, והאם נכתב אי פעם למקור הזה. מערך כללים חי שאיש לא שמר הוא הסבר תקף והנפוץ ביותר.
אל תתחיל בהתקנה מחדש של החבילה.
קרא את כלי ההתמדה לפני שתשתמש בו
כלי דביאן מתייחסים להתמדה כאל בעיית תוספים: כל תוסף יודע לכתוב את כלליו שלו, ועטיפה אחת קוראת להם. פעולת השמירה שלו מאחסנת כל מה שנטען באותו רגע, ופעולת ההתחלה טוענת את תמונת המצב הזו חזרה. שום דבר בשתי הפעולות לא בודק מה הוא מאחסן.
זו תמונת מצב, לא סקירה. הרשאה שנותרה מהפעלת ניפוי שגיאות, ניסוי שלא הושלם או כלל מתירני שהוחדר על ידי עוזר אחר הופכים כולם לקבועים לצד המדיניות שרצית לשמור. שמירת מצב ואישור מצב הם פעילויות שונות, ורק אחת מהן דורשת שיקול דעת. קרא תחילה את המערך הטעון, ואז החלט אילו שורות ראויות לשרוד.
שמור במכוון, לאחר שקראת מה טעון.
החלט מה צריך לשרוד
יש כללים ששייכים למחזור החיים של ממשק וצריכים להיעלם איתו. אחרים חייבים לשרוד את המנהרה, והדוגמה הברורה ביותר היא איסור על נפילת תעבורת לקוחות חזרה לממשק הפיזי כאשר המנהרה נופלת. שתי הקטגוריות האלה זקוקות לטריגרים שונים של שחזור, לא לתמונת מצב משותפת אחת.
כתוב את התוצאה המיועדת לשלושה רגעים: אתחול, הפעלת VPN ואובדן מנהרה. אחר כך בדוק אם הכלי שבחרת יכול לבטא כל אחד מהם. חבילת התמדה שטוענת מחדש תמונת מצב סטטית מטפלת בראשון ואולי באף אחד מהאחרים, כי לתמונת מצב אין מושג מתי השתנה מצב המנהרה. אם היא אינה יכולה לבטא אותם, הפער שייך לרכיב אחר.
המדיניות, לא החבילה, מכריעה את התשובה.
בדוק את סדר השחזור
שחזור הקובץ אינו זהה לבעלות על התוצאה. מנהל אחר יכול להחליף את הכללים, הרשאה מוקדמת יכולה להאפיל עליהם, או שלקוחות יכולים להתחיל לשלוח לפני שההגבלה נכנסת לתוקף. סקור את התנהגות האתחול וההתחברות מחדש, ולא רק את קיומו של קובץ שמור.
systemctl status netfilter-persistent
iptables -S
אל תניח שעצירת שירות ההתמדה אינה מזיקה, כי החבילה מתעדת ריקון מותנה כשהוא נעצר. קבע את התצורה בפועל של השירות לפני שתשתמש בעצירה או באתחול כניסוי בשער שאתה מנהל מרחוק. הפעלת מסוף וחזרה מתועדת הם המינימום לפני אותו מבחן.
סדר הוא תכונה של המערכת הפועלת, לא של הקובץ בדיסק.
קבל שלושה תוצאות נפרדות
תעד את התקנת החבילה, את מערך הכללים הטעון ואת המדיניות שנאכפת כעובדות נפרדות. שם חבילה בשרשור תמיכה עונה רק על הראשון, והוא זה שלעיתים רחוקות חשוב.
nft list ruleset
אחר כך בדוק פעולה מותרת ודחייה נדרשת.
אם הדחייה מחזיקה לאחר אתחול ולאחר נפילת מנהרה, המדיניות שורדת. אם היא מחזיקה רק באחד מהמצבים האלה, מצאת את בעיית הסדר במקום לתקן אותה.