פרוקסי מול טאנל מול VPN - מה בעצם ההבדל ביניהם¶
שלושת המושגים האלה מתבלבלים כל הזמן, וזה מובן - כולם עוסקים באיזשהו "תיווך" בין המחשב שלכם ליעד שאתם רוצים להגיע אליו. אבל הם פותרים בעיות שונות לגמרי, ולפעמים אחד מהם הוא בכלל חלק מהמנגנון של השני. בואו נשים סדר אחת ולתמיד.
פרוקסי - שרת שמדבר בשמכם¶
פרוקסי הוא שרת שיושב בין המחשב שלכם ליעד, ומעביר בקשות בשמכם. במקום שאתם תפנו ישירות לאתר, אתם פונים לפרוקסי, והוא פונה לאתר בשבילכם, מקבל את התשובה, ומעביר אותה בחזרה אליכם. מבחינת האתר, הבקשה הגיעה מהפרוקסי, לא מכם ישירות.
יש כמה סוגי פרוקסי עיקריים:
- פרוקסי קדמי - Forward Proxy. יושב בצד הלקוח, מתווך בין המשתמש לאינטרנט. ארגונים משתמשים בזה כדי לסנן תוכן, לחסום אתרים מסוימים, או לתעד מה עובדים גולשים אליו.
- פרוקסי הפוך - Reverse Proxy. יושב בצד השרת, מקבל בקשות מבחוץ ומחלק אותן בין כמה שרתים פנימיים. שירותים כמו Nginx נמצאים בשימוש נרחב בדיוק בתפקיד הזה, בין השאר כדי לאזן עומסים ולהוסיף שכבת אבטחה לפני שהבקשה בכלל מגיעה לשרת האמיתי.
חשוב לדעת - פרוקסי, ברירת מחדל, לא בהכרח מצפין את התעבורה בינו לביניכם. הוא בעיקר מסתיר או מתווך, לא בהכרח מגן.
טאנל - מנהרה שמעבירה תעבורה "כמו שהיא"¶
טאנל (מנהרה) הוא מנגנון שעוטף סוג אחד של תעבורה בתוך סוג אחר, כדי להעביר אותה דרך רשת שלא הייתה תומכת בה ישירות, או כדי לעטוף אותה בשכבת הצפנה. הרעיון הוא לקחת חבילת מידע שלמה, ולארוז אותה בתוך חבילה נוספת שמיועדת למסע עד ליעד אחר.
דוגמה מוכרת - SSH tunneling. אפשר להעביר תעבורה של פרוטוקול כלשהו (למשל חיבור למסד נתונים שלא מוצפן) דרך חיבור SSH מוצפן, כך שהתעבורה "עוברת טרמפ" בתוך המנהרה המוצפנת של ה-SSH, גם אם הפרוטוקול המקורי עצמו לא תומך בהצפנה. זה מאוד שימושי כשרוצים לגשת לשירות פנימי מרחוק בלי לחשוף אותו ישירות לאינטרנט.
טאנל הוא בעצם רעיון כללי - "עטיפת תעבורה בתוך תעבורה אחרת" - ולא כלי ספציפי אחד. אפשר לממש אותו בכמה דרכים, כולל, ותשימו לב לזה, VPN עצמו.
VPN - טאנל מוצפן, בקנה מידה של כל הרשת¶
וכאן זה מתחבר. VPN הוא בעצם סוג ספציפי של טאנל - מנהרה מוצפנת שמעבירה את כל התעבורה של המחשב שלכם, לא רק חיבור בודד. כשדיברנו על VPN במאמר נפרד, ראינו שהוא יוצר מנהרה מוצפנת מלאה בין המחשב לשרת ה-VPN, ומעביר דרכה הכל - גלישה, מייל, כל דבר.
ההבדל המרכזי בין VPN לטאנל "רגיל" הוא ההיקף וההצפנה כברירת מחדל. VPN מיועד להעביר את כל התעבורה שלכם דרך מנהרה אחת מוצפנת מובנית. טאנל, במובן הכללי יותר, יכול להיות ממוקד לחיבור בודד ולא בהכרח מוצפן (אם כי ברוב המקרים המעשיים כן).
אז מה ההבדל המעשי, בקצרה¶
- פרוקסי מתווך בקשות בשמכם, ומיועד בעיקר להסתרה, סינון, או חלוקת עומס. לא בהכרח מוצפן.
- טאנל עוטף תעבורה בתוך תעבורה אחרת כדי להעביר אותה דרך רשת או פרוטוקול אחר, לרוב עם הצפנה, בדרך כלל ממוקד לחיבור או שירות ספציפי.
- VPN הוא טאנל מוצפן שמעביר את כל התעבורה של המכשיר, ברמת מערכת ההפעלה כולה, לא רק חיבור בודד.
תחשבו על זה כמו על מדרג - פרוקסי מתווך בקשה ספציפית, טאנל עוטף חיבור או שירות ספציפי במנהרה, ו-VPN לוקח את כל התעבורה של המכשיר כולו ומעביר אותה דרך מנהרה אחת גדולה.
דוגמה שממחישה את שלושתם ביחד¶
תארו לעצמכם מפתח שצריך לגשת למסד נתונים פנימי בשרת בעבודה, בלי לחשוף אותו לאינטרנט. הוא יכול להתחבר ל-VPN של החברה, וברגע שהוא בפנים, הוא נמצא "וירטואלית" בתוך הרשת הפנימית ויכול לגשת למסד הנתונים כרגיל. לחלופין, הוא יכול להשתמש בטאנל SSH ממוקד רק לחיבור הזה, בלי להעביר את כל התעבורה שלו דרך הרשת הארגונית. ואם הוא רק צריך לגשת לאתר פנימי מסוים דרך שרת ביניים, פרוקסי יכול לעשות בדיוק את זה, בלי צורך במנהרה מוצפנת בכלל.
שלושת הכלים פותרים בעיות דומות למראה, אבל בהיקף ומטרה שונים לגמרי.
למה חשוב להבחין ביניהם¶
בעולם האמיתי, בין אם אתם עובדים בתשתית, בפיתוח, או באבטחת מידע, תתקלו בשלושת המושגים האלה כל הזמן, ולפעמים באותה שיחה. להבין את ההבדל המדויק ביניהם עוזר לכם לבחור את הכלי הנכון למשימה הנכונה, במקום לזרוק "VPN" כפתרון כללי לכל בעיית תקשורת.
קורס הרשתות המלא נמצא כאן, חינם ובעברית, כולל הסבר מעמיק והדגמות מעשיות על כל אחד מהמושגים האלה.
מתלבטים איזה כלי מתאים לתרחיש שלכם? שאלו בדיסקורד.
לסיכום¶
פרוקסי, טאנל ו-VPN הם לא מילים נרדפות, הם שלוש רמות שונות של תיווך תעבורת רשת. פרוקסי מתווך בקשה, טאנל עוטף חיבור, ו-VPN מעביר את הכל דרך מנהרה מוצפנת אחת. ברגע שתפנימו את ההיררכיה הזאת, שום שיחה טכנית על תקשורת לא תבלבל אתכם שוב.