מדיניות IPsec בולעת את התעבורה המקומית שלך: איך לזהות
בורר שמכסה טווח פרטי שלם מכסה גם את המדפסת שלך. קרא את המדיניות המותקנת, ואז צמצם את החריגה במקום שבו החיבור חי.
המדפסת על השולחן מפסיקה להגיב ברגע שהמנהרה עולה, ושום דבר בקונפיגורציית המנהרה לא מזכיר את המדפסת. מה שבדרך כלל קרה הוא שנכתב טווח מוגן רחב מספיק כדי לכלול אותה, כך שהמכונה מנסה כעת להצפין תעבורה שהייתה אמורה להישאר בקטע המקומי. קריאת המדיניות המותקנת מסבירה את הלכידה; צמצומה במקום הנכון משאיר את התעבורה המרוחקת מוגנת. המסע מהבקשה הכושלת למדיניות המתאימה אורך כמה דקות.
עקוב אחרי הזרימה לפני שאתה משנה בורר
התחל מהבקשה הכושלת ורשום ארבעה ערכים: כתובת המקור שהמכונה משתמשת בה, היעד המדויק, המסלול שהקרנל בוחר והמדיניות שמתאימה לזוג הזה.
ארבע העובדות האלה קובעות אם הלכידה מכוונת או מקרית. יעד שנמצא בתוך הבורר המרוחק מוגן לפי התכנון, גם אם התכנון היה שגוי. יעד מחוצה לו שעדיין נלכד פירושו שמשהו אחר מתאים, ושינוי הבורר לא יעזור. שני המקרים נפוצים, ופקודה אחת מבדילה ביניהם.
עשה זאת לפני שתערוך משהו, כי המקרה המעניין הוא תת-הרשת המקומית שחופפת לטווח פרטי שהחיבור מגן עליו. קידומות מוכרות כמו 192.168.0.0/16 מופיעות ברשתות רבות, ובורר שנכתב לאחת מהן יכול לכסות בשקט את שלך.
שלושה סוגים של מקומי שמתנהגים אחרת
יעד שמוקצה למארח הזה, יעד באותו קישור ויעד מאחורי ממשק אחר הם שלושה מקרים שונים. הקרנל מתייחס לכל אחד מהם אחרת כשהוא מחליט אם התעבורה זקוקה להגנה.
גם התעבורה שהשער עצמו מייצר אינה זהה לתעבורה שמועברת מלקוח. מדיניות שנראית נכונה לתעבורה מועברת יכולה ללכוד את הפעלת הניהול של השער עצמו, וכך מנהל מאבד גישה בזמן שהוא מתקן את המנהרה.
ההרגל המועיל הוא לנקוב בשם המקרה בקול: האם החבילה הזאת באה ממני, הולכת לקישור שלי או עוברת דרכי? כל תשובה מצביעה על מקום אחר לצמצם. כתיבת המקרה גם מונעת מהאדם הבא לעשות שוב את אותה עבודה.
כשהטווח המוגן הוא מרחב פרטי שלם, כל שלושת המקרים יכולים ליפול בו בבת אחת, והתסמין הופך למכונה שלא מגיעה לשום מקום מלבד נקודת הקצה של המנהרה.
קרא את המדיניות המותקנת, לא את הקובץ
קובצי התצורה מתארים את הכוונה; הקרנל מחזיק את המדיניות שבאמת מתאימה. הצג את שניהם והתייחס לאי-התאמה כממצא הראשון.
הפקודות האלה מציגות את המסלול שנבחר ליעד ואת המדיניות המותקנת בכל כיוון:
ip route get 192.168.50.20
ip xfrm policy list
sudo swanctl --list-connsהמסלול אומר לך באיזה ממשק החבילה תשתמש. רשימת המדיניות אומרת לך אם לאחר מכן מוחלת תבנית על החבילה הזאת, ורשימת החיבורים מראה אילו בוררים הדימון חושב שהתקין. אם היעד מופיע בבורר מרוחק, מצאת את הלכידה בלי לנחש.
צמצם את הבורר או עקוף את היעד
יש שני תיקונים נתמכים והם עונים על שאלות שונות. צמצום הבורר אומר שהחיבור הזה מגן רק על טווח קטן יותר, מה שנכון כשהטווח הרחב יותר היה טעות. הוספת עקיפה אומרת שהיעד המסוים הזה אסור שיוגן לעולם, מה שנכון כשהטווח המוגן באמת רחב ויעד אחד הוא החריגה.
בחר בראשון כשתוכל, כי קל יותר לחשוב על בורר קטן יותר והוא מופיע בהגדרת החיבור. בחר בשני כשהטווח הרחב מכוון והחריגה היא מארח יחיד או תת-רשת שאתה יכול לנקוב בשמה.
שניהם שייכים לתצורה שמחזיקה בחיבור. כלל זמן ריצה שנוסף ביד נעלם בחיבור מחדש הבא, והכשל חוזר ברגע שבו אף אחד לא זוכר את העקיפה.
חריגות ששורדות התקנה מחדש
אחרי השינוי, חזור על אותה בקשה לא מזיקה והסתכל על אותם מונים. היעד המקומי אמור לענות, והיעד המרוחק המיועד אמור עדיין להראות תעבורה מוצפנת.
שתי הבדיקות האלה מאשרות שהחריגה שרדה וההגנה לא:
ip xfrm policy list | grep -c out
ping -c 3 192.168.50.20אחר כך נתק וחבר מחדש את המנהרה בכוונה, וחזור על שתיהן. חריגה שעובדת לפני החיבור מחדש ונכשלת אחריו הוחלה על השכבה הלא נכונה, וזו הדרך הנפוצה ביותר שבה הבעיה הזאת חוזרת.