מנהרת פיצול מוגדרת על ידי מה שאתם משאירים בחוץ, ו-WireGuard מקבל את ההחלטה הזו בשדה אחד. ה-AllowedIPs של עמית הלקוח בוחר בו-זמנית אילו יעדים עוברים במנהרה ומסנן אילו כתובות מקור פנימיות מתקבלות, ו-wg-quick הופך את אותה רשימה לנתיבי מארח. אם הרשימה שגויה, המנהרה בולעת הכול או לא נושאת דבר.

קודם כל קבעו את רשימת הקידומות

רשמו את היעדים שחייבים להשתמש במנהרה לפני שאתם נוגעים בקובץ תצורה. תת-רשתות משרד, טווח מסד נתונים, רשת ניהול: כל אחת היא קידומת עם סיבה. כל מה שלא ברשימה נשאר בנתיב הפיזי, וזו כל מטרת התכנון.

אם הרשימה מכילה 0.0.0.0/0 או ::/0, בניתם מנהרה מלאה וכדאי לומר זאת, כי מצבי הכשל וציפיות ה-DNS שונים.

שמרו על הרשימה קצרה מספיק כדי שסוקר יוכל להשוות אותה מאוחר יותר לטבלת הניתוב.

תצורת הלקוח: עמית, AllowedIPs, DNS

בלוק הממשק של הלקוח מכיל את כתובת המנהרה שלו ואת המפתח הפרטי. בלוק העמית מכיל את המפתח הציבורי של השרת, נקודת הקצה ואת הקידומות מהשלב הראשון:

[Interface]
Address = 10.9.0.2/32
PrivateKey = <client-private-key>
DNS = 10.20.0.53

[Peer]
PublicKey = <server-public-key>
Endpoint = vpn.example.net:51820
AllowedIPs = 10.20.0.0/16, 10.30.0.0/24
PersistentKeepalive = 25

ה-AllowedIPs בלקוח הוא קבוצת היעדים המרוחקים, ולא הכתובת של הלקוח עצמו. שורת ה-DNS פועלת רק דרך שילוב הפותר של wg-quick, ולכן מארח בלי תמיכה ב-resolvconf או systemd-resolved יתעלם ממנה. PersistentKeepalive שומר על מיפוי NAT חי ומיותר בנתיב ישיר.

העירו על כל קידומת עם השירות שהיא משרתת, אחרת העריכה הבאה תהיה ניחוש.

תצורת השרת: נקודת המבט ההפוכה

בשרת, רשומת העמית מייצגת את הלקוח, ולכן ה-AllowedIPs שלה הוא כתובת המנהרה של הלקוח, בדרך כלל /32. זו אינה תת-הרשת של המשרד. העתקת רשימת הלקוח לרשומת השרת היא הטעות הנפוצה ביותר במנהרת פיצול, והיא או מרחיבה את הגישה או שוברת את בדיקת המקור הפנימית בזמן לחיצת היד.

כתובת הממשק של השרת עצמו, והנתיבים שהוא צריך לכיוון המשרד, נפרדים מכל רשומת עמית.

שני קבצים, שתי נקודות מבט, קבוצת קידומות אחת שמחולקת ביניהם.

העלו אותו וקראו את הנתיבים

הפעילו את הממשק עם המנהל הנתמך, ואז הביטו במה שהוא התקין ולא במה שהתכוונתם. wg-quick גוזר נתיבים מ-AllowedIPs; אם הפרופיל מגדיר Table = off, שום דבר לא מותקן והניתוב שלכם. קראו את הנתיב של כל קידומת ואשרו שהוא מצביע על ממשק WireGuard. רשימת נתיבים ריקה בדרך כלל אומרת שהפרופיל שהוחל אינו זה שערכתם.

בדקו גם את מוני לחיצת היד, כי לעמית בלי לחיצת יד יש בעיית מפתח, נקודת קצה או נגישות ולא בעיית ניתוב.

רשמו את הפקודה המדויקת שבה השתמשתם, כי האדם הבא יריץ אותה תחת לחץ.

אמתו את שני הצדדים ואז תעדו את החזרה לאחור

בדקו כתובת פרטית, את השם הפנימי שלה ויעד שחייב להישאר ישיר. אם הכתובת הפרטית עובדת והיעד הישיר יוצא כעת דרך המנהרה, רשימת הקידומות רחבה מדי. אם השם נכשל בזמן שהכתובת עובדת, שורת ה-DNS לא נכנסה לתוקף. החזרה לאחור היא פקודה אחת, והיא שייכת לאותו פתק.

לאחר התחברות מחדש, אשרו שהנתיבים עדיין שם, כי מנהל שמחיל את הפרופיל מחדש יכול להחליף נתיבים ידניים.

החזיקו בעלים אחד לתצורה, כי שני מנהלים שמייצרים את אותו ממשק יגיעו בסוף לחוסר הסכמה. המדריך של wg-quick מתעד את התנהגות הנתיבים וה-DNS שהוא מספק.

מאמרים קשורים