המנהרה למעלה, אין אינטרנט: היכן נעצרת ההעברה
אימות ומנהרה עובדת אינם מרמזים על יציאה לאינטרנט. עקבו אחרי בקשה אחת דרך מיעון המקור, ההעברה ונתיב התשובה.
הלקוח מתחבר, המנהרה מעבירה פינגים לשער, ושום דבר מעבר לו אינו עונה. המצב הזה רגיל לשער שנועד תמיד לספק גישה רק לרשתות מוגנות, והוא תקלה בשער שמתפרסם כיציאת מנהרה מלאה. לפני שתשנו כללים, ודאו איזה שירות הובטח. אחר כך עקבו אחרי בקשה ציבורית אחת בארבעת המקומות שבהם היא יכולה לעצור. בקשה אחת ולכידת מנות אחת מכריעות יותר מעמוד של ניחושים.
ודאו אם יציאה לאינטרנט הייתה אי פעם התכנון
פרופיל מנהרה מפוצלת מנתב רק את תת-הרשתות המוגנות ל-VPN, ולכן גלישה ציבורית ממשיכה דרך הקישור המקומי ואינה נוגעת בשער לעולם. פרופיל מנהרה מלאה מתקין נתיב ברירת מחדל במנהרה, מה שהופך את השער לאחראי על כל הנתיב. שניהם עיצובים לגיטימיים, וערבובם מייצר דוח תקלה במקום שאין כזה. קראו את הנתיבים שהלקוח מכריז עליהם לפני שתבדקו כל דבר אחר, כי טבלת הנתיבים עונה על השאלה שהפנייה בדרך כלל מציגה לא נכון.
מה שהלקוח מתקין אינו תמיד מה שהפרופיל מתכוון אליו. נתיב שנדחף יכול להיות מועקף בידי נתיב מקומי בעל מדד נמוך יותר, ולקוח ששומר על נתיב ה-LAN בזמן שהוא מוסיף נתיב ברירת מחדל מתנהג כמו מנהרה מפוצלת עבור אותה תת-רשת.
עקבו אחרי בקשה ציבורית אחת
בחרו יעד אחד ועקבו אחריו מהלקוח החוצה. בלקוח בדקו אם המנה אכן בוחרת במנהרה ואיזו כתובת מקומית היא משתמשת כמקור. אחר כך בדקו את השער: האם המנה מגיעה, והאם היא יוצאת מממשק ציבורי. כל אחת מהתשובות הללו מסירה קטגוריה שלמה של סיבה.
ip route get 1.1.1.1
ip -4 addr show tun0
conntrack -L | grep 1.1.1.1
tcpdump -ni any host 1.1.1.1
אם השער אינו רואה את המנה לעולם, נתיב הלקוח או בחירת המנהרה שגויים. אם היא מגיעה ואינה יוצאת, הבעיה בשער, ושלוש הבדיקות הנותרות חלות.
בדקו העברה, נתיב ותרגום
הנחיות ההעברה שמגיעות עם strongSwan חלות על שער מכל סוג מנהרה: הליבה חייבת להיות מורשית להעביר מנות בין ממשקים, ונתיב שמיש חייב להצביע לעבר האינטרנט. לאחר מכן מדיניות חומת האש חייבת להתיר את התעבורה, וכתובת המקור חייבת להיות כזו שהצד הציבורי יכול להשיב לה. כתובת לקוח פרטית שמועברת ללא שינוי לאינטרנט לעולם אינה מקבלת תשובה.
sysctl net.ipv4.ip_forward
ip route get 1.1.1.1
nft list ruleset | grep -A6 forward
sysctl net.ipv4.conf.all.rp_filter
תרגום מקור הוא החלק החסר הרגיל. איתו השער כותב מחדש את מקור הלקוח לכתובתו הציבורית ועוקב אחרי הזרימה; בלעדיו אין לתשובה לאן ללכת. פלטפורמות ענן מוסיפות גבול שני, שבו טבלת הנתיבים או קבוצת האבטחה של המופע יכולות להפיל תעבורה שחומת האש של האורח מתירה. קל לפספס את הגבול הזה מפני שמערכת האורח נראית מוגדרת נכון מבפנים.
סינון נתיב הפוך בהגדרה א-סימטרית עלול גם להשליך מנות תקפות. קראו את המונה של אותו כלל במקום להניח שהוא תקין, כי הגדרה מחמירה בממשק הציבורי דוחה תעבורה שמגיעה בנתיב אחר מזה שטבלת הנתיבים חוזה.
נתיב התשובה והמפענח הם שתי תשובות שונות
שימו לב גם לתשובה, לא רק לבקשה. אם הבקשה יוצאת מתורגמת והתשובה חוזרת לזרימה המתורגמת, ההעברה עובדת גם כשהאפליקציה עדיין נכשלת, והחקירה הבאה שייכת לאפליקציה או ל-DNS.
אתר שמחזיר שגיאת HTTP הוא הוכחה שההעברה לאינטרנט עובדת. שם שאינו נפתר בזמן שהגישה לפי כתובת עובדת הוא בעיית מפענח, לא בעיית NAT.
לאחר תיקון מדויק, בדקו שוב את הלקוח וגם כל משאב פרטי שהוגבל בכוונה. מתן גישה לאינטרנט אסור שירחיב בשקט את הגישה לכל רשת המחוברת לשער.