@zork17
·
דבר ראשון כך בחשבון שיש לי אפס ניסיון עם wireguard (אלא אם אתה קורא לקרוא המלצות עליו ניסיון...). אני בכל זאת אנסה לענות כי לדעתי אין מישהו אחר שיענה מתוך ניסיון, אבל בבקשה תרגישו חופשי להוכיח שאני טועה ולענות תשובה יותר מבוססת.
בהחלט יתכן שאני טועה בחלק (או כל) מה שאני כותב.
1. למיטב הבנתי, לפחות כרגע, הצורה שבה wireguard עובד הוא ע"י הגדרת כתובת
יחודית וקבועה מראש לשרת ולכל קליינט.
(
תקרא כאן קצת רציונל למה ואיזה אופציה אחרת הם נותנים, כך בחשבון שלמיטב הבנתי ה-wg-dynamic בפיתוח ואני לא בטוח עד כמה הוא יציב/בשל; כל ההוראות שאתה רואה בכל מקום אחר כולל בשאר הפוסט הזה מניחים שאתה מגדיר כתובות סטטיות).
אם נתסכל על הדוגמא הזאת (מאד דומה לדוגמא שיש בלינק שהבאת אבל לדעתי קצת יותר ברורה):
https://gist.github.com/chrisswanda/88a ... 1d1e9b20f4
אז בקובץ של השרת:
תחת [Interface] ה- 10.0.0.1/24 זה הכתובת של השרת ברשת הפנימית (כאן שמים /24 בסוף כדי לייצג שיש לך רשת עם subnet mask של 255.255.255.0). אחרי זה לכל קליינט אתה מוסיף [Peer] ונותן לו כתובת שמורה (מחוץ לטווח של ה-DHCP שלך), באופן אולי מבלבל כאן הכתובות הם עם /32 בסוף, כמו לדוגמא 10.0.0.3/32.
בקובץ של הקליינט:
תחת [Interface] יש את הכתבות שלו עם /24 בסוף, כמו לדוגמא 10.0.0.3/24. תחת [Peer] אתה משתמש ב-EndPoint להגדיר את הכתובת אינטרנט של השרת כולל הפורט, שזה יכול להיות some.domain.com:51820 עם יש לך domain או הכתובת שכרגע קיבלת מהספק כמו לדוגמא 1.2.3.4:51820. מן הסתם אם אין לך כתובת קבועה אז חשוב שיהיה DDNS כדי שלא תצטרך לעדכן את כל הקליינטים כל פעם שהכתובת משתנה (לא חסרים DDNS חינמיים לגמרי).
2. בקובץ של השרת זה הכתובת של הקליינט הספציפי (כמו שמפורט בסעיף 1) ובקובץ של הקליינט זה 0.0.0.0/0 .
3. בגדול כן. אני יכול רק לנחש שבמעשי זה יעבוד גם אם אתה נותן את אותו המפתח לכל הקליינטים אבל זה מפספס את כל הנושא של האבטחה. הרעיון מבחינת אבטחה שלכל קליינט יש מפתח
שונה. בין כה וכה אני רואה שב-wireguard אתה צריך להגדיר כל קליינט בנפרד, ומן הסתם תמיד צריך להתקין כל קליינט בנפרד אז זה כבר לא משנה הרבה גם לייצר לכל קליינט מפתח משלו. חשוב רק לשמור על הסדר ולהקפיד שתהיה התאמה בין המפתחות public/private (המפתח ה-public שאתה מגדיר בשרת לקליינט X חייב להיות זה המתאים למפתח ה-private שאתה מגדיר בקונפיגורציה של קליינט X).