פרוקסי הפוך

מתוך ויקיפדיה, האנציקלופדיה החופשית
(הופנה מהדף שרת פרוקסי הפוך)
A proxy server connecting the Internet to an internal network.
תרחיש דוגמה: לקוח באינטרנט (הענן בצד שמאל) מגיש בקשה לשרת פרוקסי הפוך (אליפסה אדומה באמצע). ה-proxy בודק את הבקשה, קובע שהיא תקפה ושאין לו את המשאב המבוקש במטמון משלו. לאחר מכן הוא מעביר את הבקשה לשרת אינטרנט פנימי כלשהו (מימין). השרת הפנימי מספק את המשאב המבוקש בחזרה ל-proxy, אשר בתורו מספק אותו ללקוח. הלקוח באינטרנט אינו מודע לרשת הפנימית, ואינו יכול לדעת אם הוא מתקשר עם פרוקסי או ישירות עם שרת אינטרנט.

ברשתות מחשבים, פרוקסי הפוך (באנגלית: Reverse Proxy) הוא סוג של שרת פרוקסי המאחזר משאבים מטעם לקוח מאחד או יותר שרתים, משאבים אלה מוחזרים לאחר מכן ללקוח, ונראים ללקוח כאילו מקורם בשרת הפרוקסי ההפוך עצמו.[1] שרת כזה משמש בדרך כלל בעיקר לאיזון עומסים.

אתרים גדולים ורשתות אספקת תוכן משתמשים בפרוקסי הפוך, יחד עם טכניקות אחרות, כדי לאזן את העומס שנוצר מבקשות משתמש מרובות, בין השרתים הפנימיים. שרתי פרוקסי הפוך יכולים לשמור מטמון של "תוכן סטטי", מה שמפחית עוד יותר את העומס על שרתים פנימיים אלה ועל הרשת הפנימית. מקובל גם שפרוקסי הפוך מוסיפים תכונות כגון דחיסה או הצפנת TLS לערוץ התקשורת בין הלקוח לפרוקסי ההפוך.[2]

פרוקסי הפוך בדרך כלל בבעלות או מנוהלים על ידי שירות רשת, והם נגישים על ידי לקוחות מהאינטרנט. לעומת זאת, פרוקסי קדמי (Forward Proxy) או סתם "פרוקסי", מנוהל בדרך כלל על ידי הלקוח (או החברה שלו) המוגבלת לרשת פרטית פנימית, אלא שהלקוח יכול לבקש מהפרוקסי הקדמי לאחזר משאבים מהאינטרנט הציבורי בשמו של הלקוח.

שרתי פרוקסי הפוך מיושמים בשרתי אינטרנט פופולריים בקוד פתוח כגון Apache, Nginx ו-Caddy. תוכנה זו יכולה לבדוק כותרות HTTP, מה שמאפשר לה, למשל, על כתובת IP בודדת להעביר בקשות לשרתים פנימיים שונים בהתבסס על שם הדומיין של בקשת ה-HTTP. שרתי פרוקסי הפוך ייעודיים כגון תוכנת הקוד הפתוח HAProxy ו- Squid נמצאים בשימוש על ידי כמה מאתרי האינטרנט הגדולים ביותר באינטרנט. ספקים מסחריים פופולריים של שרתי פרוקסי הפוך כוללים את Cloudflare ו-Imperva.

שימושים[עריכת קוד מקור | עריכה]

  • פרוקסי הפוך יכול להסתיר את קיומו ומאפייניו של שרת מקור.
  • תכונות חומת אש של יישומים יכולות להגן מפני התקפות נפוצות מבוססות אינטרנט, כמו התקפת מניעת שירות (DoS) או התקפות מניעת שירות מבוזרות (DDoS). ללא פרוקסי הפוך, הסרת תוכנות זדוניות או ייזום הודעה וכיבוי (Notice and take down), למשל, יכולה להיות קשה.
  • במקרה של אתרים מאובטחים, שרת אינטרנט עשוי שלא לבצע הצפנת TLS בעצמו, אלא להאציל את המשימה לפרוקסי הפוך שעשוי להיות מצויד בחוֹמרת האצת TLS.
  • פרוקסי הפוך יכול לחלק את העומס מבקשות נכנסות למספר שרתים, כאשר כל שרת תומך באזור היישומים שלו. במקרה של שרתי פרוקסי הפוך, ייתכן שפרוקסי הפוך יצטרך לכתוב מחדש את כתובת האתר בכל בקשה נכנסת כדי להתאים למיקום הפנימי הרלוונטי של המשאב המבוקש.
  • פרוקסי הפוך יכול להפחית את העומס על שרתי המקור שלו על ידי שמירת תוכן סטטי ותוכן דינמי במטמון, המכונה האצת אינטרנט. מטמוני פרוקסי מסוג זה יכולים לעיתים קרובות לספק מספר לא מבוטל של בקשות לאתר, ולהפחית במידה ניכרת את העומס על שרתי המקור.
  • פרוקסי הפוך יכול לייעל את התוכן על ידי דחיסתו על מנת להאיץ את זמני הטעינה.
  • בטכניקה ששמה "האכלה בכפית",[3] ניתן להפיק דף שנוצר באופן דינמי בבת אחת ולהגיש אותו לפרוקסי ההפוך, אשר לאחר מכן יכול להחזיר אותו ללקוח קצת בכל פעם. התוכנית שמייצרת את הדף אינה חייבת להישאר פתוחה, ובכך ניתן לשחרר משאבי שרת במהלך הזמן הממושך שהלקוח דורש להשלמת ההעברה.
  • פרוקסי הפוך יכולים לפעול בכל מקום שבו שרתי אינטרנט מרובים חייבים להיות נגישים באמצעות כתובת IP ציבורית אחת. שרתי האינטרנט מאזינים ביציאות שונות באותו מחשב, עם אותה כתובת IP מקומית או, אולי, במכונות שונות עם כתובות IP מקומיות שונות. פרוקסי ההפוך מנתח כל בקשה נכנסת ומעביר אותה לשרת הנכון ברשת המקומית.
  • פרוקסי הפוך יכולים לבצע בדיקות A/B ובדיקות מרובות משתנים מבלי להציב תגי JavaScript או קוד בדפים.
  • פרוקסי הפוך יכול להוסיף אימות גישת HTTP בסיסי לשרת אינטרנט שאין לו אימות כלשהו.[4]

סיכונים[עריכת קוד מקור | עריכה]

  • פרוקסי הפוך יכול לעקוב אחר כל כתובות ה-IP המגישות בקשות באמצעותו והוא יכול גם לקרוא ולשנות כל תעבורה לא מוצפנת. כך הוא יכול לרשום סיסמאות או להחדיר תוכנות זדוניות, ועלול לעשות זאת אם ייפגע או מנוהל על ידי גורם זדוני.
  • כאשר תעבורת המעבר מוצפנת והפרוקסי ההפוך צריך לסנן/לשמור/לדחוס או לשנות או לשפר בדרך אחרת את התעבורה, על הפרוקסי תחילה לפענח ולהצפין מחדש את התקשורת. הדבר מחייב את ה-proxy להחזיק באישור TLS והמפתח הפרטי המתאים לו, להרחיב את מספר המערכות שיכולות להיות להן גישה לנתונים לא מוצפנים ולהפוך אותו למטרה בעלת ערך רב יותר עבור תוקפים.
  • הרוב המכריע של פרצות מידע חיצוניות מתרחשות כאשר האקרים מצליחים לנצל לרעה פרוקסי הפוך קיים שנפרס בכוונה על ידי ארגון, או כאשר האקרים מצליחים להמיר שרת קיים הפונה לאינטרנט לשרת פרוקסי הפוך. מערכות שנפרצו או שהוסבו מאפשרות לתוקפים חיצוניים לציין לאן הם רוצים שההתקפות שלהם יעברו פרוקסי, מה שמאפשר להם גישה לרשתות ומערכות פנימיות.
  • אפליקציות שפותחו לשימוש פנימי של חברה אינן מוקשחות בדרך כלל לסטנדרטים ציבוריים ואינן בהכרח מתוכננות לעמוד בכל ניסיונות הפריצה. כאשר ארגון מאפשר גישה חיצונית ליישומים פנימיים כאלה באמצעות פרוקסי הפוך, הם עלולים להגדיל ללא כוונה את משטח ההתקפה שלו ולהזמין האקרים.
  • אם פרוקסי הפוך לא מוגדר לסנן התקפות או שהוא לא מקבל עדכונים יומיים כדי לשמור על עדכניות מסד הנתונים של חתימות ההתקפה שלו, תקיפת אפס ימים יכולה לעבור ללא סינון, מה שמאפשר לתוקפים להשיג שליטה על המערכות מאחורי שרת פרוקסי הפוך.
  • שימוש בפרוקסי הפוך של צד שלישי (למשל Cloudflare, Imperva) מעמידה את כל הטריאדה של סודיות, יושרה וזמינות (CIA) בידי הצד השלישי שמפעיל את הפרוקסי.
  • אם פרוקסי הפוך הוא מול דומיינים רבים ושונים, ה"זמן המת" שלו (למשל על ידי תצורה שגויה או מתקפת DDoS) עלולה להפיל את כל הדומיינים שבחזית.[5]
  • פרוקסי הפוך יכולים גם להפוך לנקודת כשל בודדת אם אין דרך חלופית ברורה אחרת לגשת ישירות לשרת האחורי.

ראו גם[עריכת קוד מקור | עריכה]

קישורים חיצוניים[עריכת קוד מקור | עריכה]

ויקישיתוף מדיה וקבצים בנושא פרוקסי הפוך בוויקישיתוף

הערות שוליים[עריכת קוד מקור | עריכה]

  1. ^ "Forward and reverse proxies". The Apache Software Foundation. נבדק ב-26 באוגוסט 2018. {{cite web}}: (עזרה)
  2. ^ "Proxy servers and tunneling". MDN Web Docs (באנגלית). נבדק ב-2020-12-06.
  3. ^ Francesco Chemolli, Spoon Feeding, squid-cache wiki, ‏2009-02-14 (באנגלית) (ארכיון)
  4. ^ "Possible to add basic HTTP access authentication via HAProxy?". serverfault.com.
  5. ^ "Cloudflare outage knocks out major sites and services, including Discord". finance.yahoo.com (באנגלית אמריקאית). נבדק ב-2020-12-14.