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

בדקו מה הפורט באמת משרת

פורט פתוח מוכיח שיש מאזין, לא יותר. ה-ORPort של ממסר מדבר בתאים של Tor עצמו לאחר לחיצת יד TLS, ולכן בדיקת TLS מוצלחת כמעט לא אומרת לכם דבר על האם פרוטוקול VPN מתקבל שם:

nc -vz 203.0.113.20 443
openssl s_client -connect 203.0.113.20:443 -brief < /dev/null

קראו את התעודה ולא את העובדה שהיא קיימת. ממסרים מציגים תעודה חתומה עצמית עם שם לא בולט בכוונה, כי תעבורת הממסר אמורה להיראות כמו HTTPS רגיל; התעודה של שרת VPN נושאת את השם שהפרופיל שלכם מצפה לו. אם הצד השני לעולם לא עונה לחבילה הראשונה של פרוטוקול ה-VPN, שום כמות של עריכת פרופיל לא תשנה את התוצאה.

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

בדקו את תפקיד הממסר, לא את גודל הרשת

תפקידי הממסר עושים עבודות שונות. Guard הוא הקפיצה הראשונה עבור לקוחות, ממסר אמצעי מעביר מעגלים בין ממסרים אחרים, exit הוא זה שנוגע ביעדים, וגשר הוא נקודת כניסה לא ציבורית המופצת דרך BridgeDB. המילון של Tor שומר על ההגדרות האלה בנפרד, ונגישות היא חלק מכל תפקיד בעוד שהרשאה לשרת לקוחות שרירותיים אינה חלק מאף אחד מהם.

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

עצרו אם אתם מסיקים ממוניטין: מכיוון שממסרים מעבירים תעבורה, הכתובת חייבת לקבל את שלכם. Tor בוחר נתיבים דרך קונצנזוס והפרוטוקול שלו עצמו; לקוח VPN אינו משתתף ואין לו מעגל להצטרף אליו.

בדקו אם מאזין SOCKS מקומי או ציבורי

הלקוח של Tor חושף ממשק SOCKS לאפליקציות באותה מכונה, כברירת מחדל על loopback. המאזין הזה הוא נוחות מקומית, לא שירות שממסר מציע לאינטרנט, והתייחסות אליו כאל פרוקסי ציבורי היא הדרך שבה אנשים מגיעים להפעיל ממסר פתוח שלא התכוונו אליו:

ss -ltnp | grep 9050
curl --socks5-hostname 127.0.0.1:9050 https://check.torproject.org

כתובת הכריכה היא הרמז. SocksPort על 127.0.0.1:9050 עושה את עבודתו; אחד שמאזין על 0.0.0.0 ונגיש מבחוץ הוא פרוקסי פתוח, ובקרות מדיניות הגישה של Tor עצמו קיימות בדיוק משום שהחשיפה הזו היא בעיה ולא תכונה.

לאפליקציה שזקוקה ל-Tor, כוונו אותה לפורט ה-loopback ותנו ל-Tor לפתור שמות, וזה מה שצורת ה-socks5h שלמעלה עושה. אל תחליפו את כתובת הממסר בפורט הזה; הממסר אינו מציע את הממשק שהאפליקציה שלכם מבקשת.

בדקו שהפרופיל של VPN מתאים לנקודת קצה אמיתית

פרופיל VPN הוא צרור של ציפיות: OpenVPN צריך את תעודת השרת או את ה-CA, תעודת לקוח ומפתח, ובדרך כלל מפתח TLS, בעוד ש-WireGuard צריך את המפתח הציבורי של הצד השני, נקודת קצה וכתובות IP מותרות. שום דבר מזה אינו יכול להיגזר מכתובת ומפורט פתוח, ולכן פרופיל שנבנה כך נכשל בחילופים הראשונים ולא בהתחברות.

כשמוסרים לכם פרופיל, אמתו אותו מול נקודת קצה שאתם שולטים בה או ספק שאתם יכולים לזהות:

wg show
openvpn --config client.ovpn --verb 4

ביומן של OpenVPN, שגיאת משא ומתן TLS מציינת את אי-ההתאמה ישירות; ב-wg show, צד שני בלי שורת לחיצת יד מעולם לא השלים אחת. שניהם מאלפים יותר מהמחוון המסתובב של הלקוח, ושניהם מצביעים על חומר מפתח או פרוטוקול ולא על Tor.

בדקו איזו הגנה אתם באמת צריכים

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

לשרשור יש סדר. VPN שנושא תעבורת Tor הוא סידור נתמך, כי הלקוח של Tor זקוק רק ל-TCP יוצא. לקוח VPN שמנותב בתוך Tor אינו אותו דבר ואינו מה שהלקוח של Tor מיישם, לכן אל תתכננו על בסיס זה.

לפני שאתם מייבאים משהו, אשרו את כל ארבעת הדברים:

  • הפורט משלים את לחיצת היד של הפרוטוקול שלכם, לא רק חיבור TCP.
  • אתם יודעים את תפקיד המארח ואינכם מתייחסים להעברה כאל הרשאה.
  • מאזין ה-SOCKS שבו אתם משתמשים הוא loopback ושלכם, לא פורט ציבורי על ממסר של מישהו אחר.
  • המפתחות או התעודות של הפרופיל שייכים לנקודת הקצה שאליה אתם מתחברים.

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