כל מה שרציתם לדעת על Proxy

shay Sarussi Elshten

כל מה שרציתם לדעת על Proxy

מהו פרוקסי קידמי Proxy Forward?

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

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

בנוסף לכך אם אתם שולפים את אותם נתונים שוב ושוב, שרת הפרוקסי יכול לאחסן את התשובה ולספק לכם אותה מבלי להצטרך לבקש את אותם הנתונים                                מהשרת שוב (קאשינג) , מה שהופך את התהליך ליותר יעיל.
יתרון נוסף לשימוש בו הוא ששרת פרוקסי יכול לחסום את הבקשות שלכם, בדומה לאיך שחבר שלכם עשוי לסרב לשלוח סוגים מסוימים של מכתבים שלא עומדים                בקריטריונים מסוימים. וזו הדרך שבה ניתן להגביל גישה לאתרים או משאבים מסוימים, מסיבה כזו או אחרת.
לסיכום המטרות העיקריות של פרוקסי קדמי:
– מספק פרטיות
– מגביר יעילות דרך אחסון מטמון (Caching)
– מאפשר שליטה/חסימה על תנועת הרשת

פרוקסי הפוך (Proxy Reverse)

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

 

דוגמאות למימוש של פרוקסי הפוך:

CDN (רשת הפצת תוכן): CDN הוא סוג של פרוקסי הפוך המיועד להפצת תוכן סטטי (כמו : קבצי ,HTML JavaScript CSS . או אפילו תמונות וקבצי וידאו, וכו')                             דבר זה ניתן להשגה ע״י קבוצה של שרתי מטמון (או שרתי קצה) הממוקמים ברחבי העולם כדי שהם יוכלו לשלוף בקלות ובמהירות את תוכן הסטטי של השרת שלנו.
הרעיון הבסיסי מאחורי CDN הוא לאחסן עותקים של התוכן הסטטי של השרת על מספר שרתים במיקומים גיאוגרפיים שונים וזאת כדי להשיג שני דברים עיקריים:

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

Balancer Load

  • דוגמא נוספת ומוכרת לפרוקסי הפוך הוא Balancer Load- שרת/ישות שיושב בין האינטרנט לשרת המקור כאשר תפקידו העיקרי הוא לאזן את חלוקת הבקשות בין השרתים השונים. כלומר ,אם יש לי חמישה אינסטסים של שרת מסוים אני לא ארצה שרק שרת אחד יקבל את כל הפניות אליו ולכן אני אעביר את הבקשות דרך ״מאזן העומסים״ כך שיחלק בצורה יעילה ונכונה את הבקשות שלי בין השרתים באופן שווה יחסית או יותר נכון באופן חכם. חלק מהטכניקות המוכרות לאיזון:                                                 

  • Round Robin

 • Weighted Round Robin

 • User Location

 • Layer 7 Load Balancing 

 

עוד דבר מדהים בעיני שאפשר להשיג עם פרוקסי הפוך הוא Limiting Rate:

Limiting Rate הוא דרך בה ניתן להגביל את מספר הבקשות או הפעולות שניתן לבצע בתקופת זמן מסוימת.
המטרה העיקרית של "Limiting Rate "היא למנוע שימוש לא חוקי או פגיעה בשרת, ולוודא כי המשאבים זמינים לכל המשתמשים החוקיים והלגיטימיים.
בהקשר של פרוקסי הפוך, "Limiting Rate" ניתן ליישום באמצעות תוכנות כמו Nginx או Apache, שמאפשרות להגדיר כללים על פי כתובת IP, נתיב URI, או כל קריטריון אחר. כללים אלו יכולים כאמור להגביל את מספר הבקשות שניתן לבצע בתקופת זמן מסוימת ולחסום או להחזיר שגיאה למשתמשים שעוברים את ההגבלה.

איך זה עובד?
באמצעות "Limiting Rate", השרת מגביל את מספר הבקשות שמשתמש, כתובת IP, או מפתח API יכולים לבצע במשך תקופת זמן מסוימת למשל:                                            אני יכול לעשות הגבלה מסוימת שמשתמש לא יכול לבצע 1000 בקשות לדקה. אם משתמש מנסה לבצע יותר בקשות מאשר המותר, הוא יקבל שגיאה והבקשה לא תתבצענה.


יתרונות ➕
• מניעת התקפות DDoS: "יכול להגן על השרת מפני התקפות שמטרתן להפיל את השרת על ידי שליחת
מספר גדול של בקשות בזמן קצר.
• שימור על ביצועים: "Limiting Rate "מונע ממשתמשים לבזבז את משאבי השרת ולפגוע בביצועים עבור
משתמשים אחרים.
• מניעת שימוש לא חוקי: על ידי הגבלת השימוש ב-APIs או בשרותים, ניתן למנוע שימוש לא חוקי או ניצול
של השירות.

פוסטים ומאמרים נוספים ניתן למצוא בדף הלינקדין shay Sarussi Elshten 

שתפו את הפוסט

דילוג לתוכן