מגבלת הפעלות בחשבון VPN משותף: למה מכשיר אחד נופל
התחברות משותפת מגיעה לתקרת ההפעלות במקביל, ומכשיר אחד נופל. קראו את הודעת הלקוח, ספרו הפעלות בצד השרת, ואז תקנו את מודל הזהות.
אתם מוסיפים מחשב נייד שני לחשבון שכבר פועל בטלפון, והמנהרה של הטלפון נופלת בתוך דקה. או שהמכשיר החדש לא מסיים להתחבר, והלקוח מסתיים בהודעת מדיניות במקום בפסק זמן. הרשת תקינה בשני המקרים; ההחלטה התקבלה מעליה. התחברות משותפת היא זהות אחת, ורוב שירותי ה-VPN סופרים את הזהות הזו ולא את מספר המכשירים שבבעלותכם. אני עובד מהמסך של הלקוח החוצה, כי הוא בדרך כלל מראה איזו שכבה דחתה אתכם.
קראו את הודעת הלקוח לפני שנוגעים ברשת
שלושה כשלים נראים דומים ואינם. פסק זמן אומר שהחבילות שלכם לא הגיעו לשום מקום. שגיאת TLS או תעודה אומרת שנקודת הקצה ענתה אבל לחיצת היד נכשלה. דחיית אימות או מדיניות אומרת שהשער קרא את פרטי הגישה שלכם ואז דחה אותם. רק השלישי שייך לסיפור של מגבלת הפעלות, אז קבעו אותו קודם.
לקוחות OpenVPN שומרים את השורות המעניינות בחלונית הלוג. גללו לניסיון החיבור האחרון ולא ללולאת הניסיונות החוזרים שאחריו, וחפשו AUTH_FAILED או מחרוזת סיבה שנדחפה. הלקוח מדווח לעיתים קרובות על דחייה כללית בלי הסבר, ולכן הצעד הבא הוא השרת, לא ההגדרות של הלקוח. אפליקציות של ספקים גרועות יותר: הודעת מגבלת מכשירים מועילה, אבל חיבור שקורס אחרי שתי שניות הוא החלטת מדיניות, לא סיסמה שגויה. בכל מקרה רשמו את שם המכשיר ואת הזמן המדויק; מפעיל יכול להתאים את הזוג הזה לרשומת גישה בשניות.
ספרו הפעלות במקום שבו השרת סופר אותן
המונה שחשוב יושב בשער. OpenVPN כותב קובץ סטטוס כשהשרת מופעל עם --status, ומפרט כל לקוח מחובר עם השם המשותף, הכתובת האמיתית ומוני התעבורה שלו.
cat /var/log/openvpn-status.log
# or query the management socket directly
echo "status 2" | socat - UNIX-CONNECT:/run/openvpn/server.sock
שתי שורות עם אותו שם משותף הן שתי הפעלות חיות תחת תעודה אחת. כברירת מחדל OpenVPN לא מחזיק את שתיהן: בלי --duplicate-cn, חיבור שני שמשתמש באותה תעודה מחליף את הראשון, והמכשיר הוותיק מאבד את המנהרה שלו. ההחלפה הזו היא החתימה של מגבלת זהות. אובדן חבילות אקראי לא מנתק באדיבות בדיוק מכשיר אחד ברגע שמכשיר אחר מופיע.
ל-WireGuard אין טבלת הפעלות לבדיקה. wg show wg0 מדפיס עמיתים ואת לחיצת היד האחרונה שלהם, וכל מכשיר רשום הוא עמית עם מפתח משלו. חשבון משותף שם הוא קובץ תצורה שהועתק לכמה מכונות, והמגבלה מגיעה ממה שמחלק את התצורות האלה: פורטל של ספק, מספר מקומות או כלל שנקשר לכתובת הציבורית שלכם. מדריך OpenVPN 2.6 מתעד את האפשרויות בצד השרת אם אתם מפעילים שער משלכם.
הפרידו את ארבע המגבלות שמתחבאות מאחורי הודעה אחת
רוב הפניות בחשבון משותף הן אחת מארבע החלטות כניסה. הלקוח לא יכול להבדיל ביניהן, אבל הדפוס של איזה מכשיר נכשל יכול.
אותה זהות, חיבור שני. המכשיר החדש עובד והישן מת באותו רגע. זהו כלל מקביליות לכל זהות שהשער או מערכת החשבונות אוכפים. שום דבר לא שבור; השירות עושה מה שהמדיניות שלו אומרת.
מספר מקומות או מכשירים בתוכנית. המכשירים הראשונים נשארים מחוברים והבא נדחה בזמן שהאחרים ממשיכים. בדקו את רשימת המכשירים של הספק לפני שאתם משנים לקוח, כי מגבלת רישיון לא ניתנת לתיקון מצד הלקוח.
תקרה שקשורה לכתובת הציבורית שלכם. שני מחשבים ניידים מאחורי ראוטר ביתי אחד נכשלים בזמן שאותה התחברות עובדת מנקודת גישה של טלפון. העבירו את המכשיר השני לרשת אחרת כדי לבדוק. אם הוא מתחבר שם, אתם רואים כלל לפי כתובת או כלל NAT, לא את מספר החשבון.
מקסימום ברמת השרת. כולם בשער נכשלים באותה שעת שיא, כולל חשבונות שהיו תקינים אתמול. --max-clients של OpenVPN מתנהג כך, ואין לו שום קשר למכשירים שרשמתם.
נקו הפעלות מיושנות לפני שקונים עוד מקומות
הפעלה שהסתיימה רע יכולה עדיין להחזיק מקום. חשבונאות RADIUS כותבת רשומה כשההפעלה מתחילה וסוגרת אותה כשההפעלה נעצרת; כשהלקוח נעלם, העצירה לא מגיעה לעולם והשרת מחזיק את ההפעלה עד שפג עדכון ביניים או פסק זמן. בשער FreeRADIUS אפשר לראות את הרשומות הפתוחות:
SELECT username, acctsessionid, acctstarttime
FROM radacct WHERE acctstoptime IS NULL;
רשומה פתוחה עם זמן התחלה ישן ובלי תעבורה שייכת למכשיר שכבר איננו. סגרו אותה דרך הקונסולה של המפעיל או בבקשת ניתוק, לפני שאתם מניחים שהמגבלה הייתה אמיתית. טלפונים מתחברים מחדש כשה-Wi-Fi מעביר לסלולר, ומחשב נייד יכול להריץ מנהרה אחת במערכת ההפעלה ועוד אחת בתוך אפליקציה של ספק, מה שנספר כשתי הפעלות ממכונה אחת.
הפסיקו לשתף זהות אחת בין מכשירים שפועלים יחד
התיקון העמיד הוא מבני. תנו לכל מכשיר תעודה משלו עם שם משותף ייחודי, או חשבון משלו, ורשמו איזו אדם ואיזו מכונה מחזיקים בה. ב-OpenVPN זה אומר תעודת לקוח אחת לכל מכשיר, כשהאפשרות --duplicate-cn כבויה אלא אם אתם רוצים התנהגות של השתלטות; ב-WireGuard זוג מפתחות אחד לכל מכשיר, שנוצר שם ואף פעם לא מועתק.
שכפול פרופיל כדי לעקוף מגבלת מכשירים שובר את הביטול: ביטול עותק אחד מנתק כל מכשיר שחולק אותו, והיומן כבר לא יכול לומר איזו מכונה עשתה מה. אם המגבלה מסחרית, התיקון ההוגן הוא מקום נוסף; אם זו מדיניות פנימית, בקשו זהות שנייה עם אותן הרשאות גישה.
אמתו בסדר קבוע
בדקו את התיקון באותה דרך בכל פעם, כדי שהתוצאה תאמר משהו.
- התנתקו בכל מכשיר וודאו שרשימת הפעילות של השרת ריקה; רשומה שלא מתנקה היא הפעלה מיושנת, לא תקלת לקוח.
- חברו את המכשירים אחד אחד וצפו ברשימה בין החיבורים.
- אם שניים חייבים לפעול יחד, ודאו ששתי השורות נושאות זהויות שונות ושתיהן שומרות על לחיצת יד טרייה.
- חזרו על כך אחרי מעבר מ-Wi-Fi לסלולר, כי התחברות מחדש יכולה ליצור רשומה שנייה.
אם המכשיר הישן עדיין נופל כשהחדש מתחבר, השער אוכף כלל לפי זהות שלא ניתנה לכם חריגה ממנו. הביאו למפעיל את שמות המכשירים, את חותמות הזמן ואת רשימת ההפעלות הפעילות; זה הופך תלונה מעורפלת לשאלת מדיניות שהם יכולים לענות עליה.