שם שרשרת אינו וו: iptables מול nftables
שרשרת היא מכל; הוו קובע אם הליבה בודקת אותה. השוו בין המובנים של iptables לשרשראות הבסיס של nftables לפני עריכת כללים.
שתי חומות האש יכולות לסנן תעבורת VPN מועברת, והן מחברות כללים לנתיב החבילה בדרכים שונות. ב-iptables יש שרשראות מובנות בתוך טבלה, ולכן FORWARD קיים כנקודת וו בעלת שם. nftables מפריד בין שם השרשרת לבין הסוג, הוו והעדיפות שלה, כלומר שרשרת רגילה בשם FORWARD אינה מסננת דבר. השוואת שני המודלים מסבירה מדוע רשומה שנראית נכונה בכלי אחד אינה משפיעה בכלי האחר.
שרשרת היא מכל. אם הליבה בודקת אותה תלוי ביישום ובאופן שבו מערך הכללים מחבר אותה.
שני מודלים, שתי דרכי חיבור שונות
ב-iptables טבלת הסינון מגיעה עם שלוש שרשראות מובנות, INPUT, FORWARD ו-OUTPUT, ו--N יוצר שרשרת מוגדרת על ידי המשתמש שנכנסת לתוקף רק כאשר קופצים אליה מאחת מהן. מדריך nftables לעומת זאת מגדיר שרשראות בסיס, שמצהירות על הסוג, הוו והעדיפות שלהן, ושרשראות רגילות, שאינן עושות זאת. שרשרת בסיס יכולה לשאת כל שם שתרצו, ושרשרת רגילה בשם FORWARD אינה מקבלת תכונות מהתווית שלה. זהו כל ההבדל, והוא בלתי נראה במדריך שמציג רק טקסט של כללים.
מנועי תאימות מוסיפים סיבה שנייה לא להסיק התנהגות משם של פקודה. התיעוד של iptables מציין פעולות שונות תחת iptables-nft, ולכן יש להתייחס ל-nftables מקורי, ל-iptables-nft ולמערך כללים מדור קודם כאל שלוש מערכות ולא כאל שלוש צורות כתיבה של אחת.
קראו את השגיאה בהקשר האמיתי שלה
טבלה חסרה, כשל הרשאה, מתקן ליבה שאינו זמין ושרשרת בעלת שם חסרה הם ארבעה ממצאים שונים, ורק אחד מהם נוגע לשרשרת. תעדו את גרסת הכלי, את משפחת הכתובות והטבלה שהתבקשה, את מרחב השמות של הרשת ואת השגיאה המדויקת הראשונה. לאחר מכן בדקו איזה רכיב מחזיק במערך הכללים: שירות חומת אש או שער המנוהל על ידי מוצר עשויים ליצור שרשראות וסדר משל עצמם. הוספת שרשרת מקורית לצידם משאירה את המדיניות המנוהלת בלי שינוי ואת המלאי מבלבל יותר.
מרחב השמות של מכולה יכול להחזיק מערך כללים שונה מזה של המארח, ולכן פקודה שתורצה בהקשר שגוי אינה יכולה להראות איזו שרשרת ראתה חבילה מועברת. העלאת הרשאות מפני ששרשרת צפויה לא נראתה אינה אבחון.
מונה מוכיח הגעה, לא פסק דין
מוני כללים אומרים לכם שכלל הושג. הם אינם אומרים שכלל מאוחר יותר התיר את הפעולה, והם אינם מוכיחים שנשללו כל הנתיבים החלופיים. קראו אותם במהלך זרימה מורשית אחת בלתי מזיקה, לצד סדר הכללים וחיבור השרשרת, והתייחסו אליהם כתצפית אחת ולא כפסק דין. מונה שאינו אפס בכלל של השלכה פירושו שתעבורה פגעה בו; הוא אינו אומר דבר על תעבורה שלא פגעה בו.
העברת IP בליבה היא הגדרה נפרדת לגמרי. קיומה של שרשרת אינו מפעיל העברה, והיעדרה של תווית מוכרת אינו אומר שההעברה נעצרה.
תארו את הזרימה שאתם מצפים להגן עליה
רשמו בקשה אחת של לקוח לאחר הסרת המעטפת: המקור שלה, היעד שלה, משפחת הכתובות, והאם היא מסתיימת בשער או עוברת דרכו. קלט של שירות מקומי ותעבורה מועברת נצפים בנקודות שונות, ולכן הם דורשים כללים שונים ובדיקות שונות. ב-VPN מגושר, אמתו גם את נתיב הגשר, מפני ששרשרת ברמת IP אינה מפקחת אוטומטית על מסגרות Ethernet.
שמרו על גישה עצמאית לשחזור לפני שינוי שער מרוחק. לאחר מכן אמתו את הזרימה המיועדת ואת השלילות הנדרשות תחת אותו מערך כללים. שרשרת ריקה חדשה עם שם מוכר אינה תיקון.
ההשוואה מסתיימת בשאלה אחת: איזה וו הליבה באמת קוראת עבור החבילה הזו? ענו על כך, ושם השרשרת מפסיק להיות חשוב.