מה זה שרת PROXY ?
לפי הגדרת ויקופדיה : שרת פרוקסי הינו שרת שתפקידו לספק גישה מהירה למשאבים חיצוניים.
למה להתקין שרת פרוקסי בארגון ?
ברוב הארגונים משתמשים בשרת פרוקסי כמתווך בגלישה בין המשתמשים לבין האינטרנט. כל המשתמשים גולשים דרך שרת פרוקסי ויש לכך מספר רב של יתרונות :
- ברמת אבטחת מידע, ניתן לאפשר גישה לאינטרנט רק לשרת פרוקסי ולא לכל מחשבי הארגון (מומלץ למקם את השרת בסביבת DMZ כדי להגן על הרשת הפנימית)
- ניתן להפעיל יכולות CACHING ולאחסן על השרת מידע מגלישת המשתמשים כדי להאיץ את הגלישה של שאר המשתמשים ולהימנע מעומס על קו התקשורת החיצוני (לדוגמא : אם מישהו גולש ב-YNET, הוא "מוריד" על שרת הפרוקסי את הדפים שהוא קורא ואז שאר המשתמשים יכולים להוריד את המידע ישירות משרת הפרוקסי ולא מאתר YNET בתקשורת פנימית מאוד מהירה)
- ניתן להתקין תוכנות אבטחה שמנהלות את הגישות ואת ההרשאות של הגלישה בצורה דו כיוונית (חסימת אתרים, שירותי גלישה, מתן הרשאות פרטניות לגלישה או לחסימתה לפי משתמשים או שעות …)
- ניתן לרכז את נתוני הגלישה של הארגון בצורה פשוטה וללמוד על הרגלי גלישה של המשתמשים (סטטיסטיקות)
- עוד יתרונות …
כתבה זו מסבירה איך להקים שרת פרוקסי SQUID בסיסי בצורה פשוטה ומהירה.
מה להתקין ? מהם המוצרים בשוק ?
ישנם מוצרים מסחרים רבים (כמובן יקרים) וחלקם מאוד נפוצים (לדוגמא : MICROSOFT ISA SERVER) אך ניתן גם להשתמש בשרת פרוקסי לינוקסי על בסיס תוכנת קוד פתוח SQUID (כמובן חינמי).
מה לינוקס ? קשה להתקין, לא יכול להתמודד עם התחזוקה
נכון, תחזוקת שרתי לינוקס דורשת ידע וניסיון של הצוות הטכני.
מצד שני, זוהי דרך פשוטה יחסית להיכנס לעולם לינוקס ודרך זולה ליישם פתרון פרוקסי בעלות נמוכה מאוד (אין עלות תוכנה).
התקנה והגדרת שרת WEB PROXY אינן פעולות קשות במיוחד.
באמת קל להתקין ? איך עושים ?
להתקין שרת לינוקס לוקח כ-20 דק' בערך (אפילו פחות עם שרת וירטואלי). אני ממליץ לראות את המדריך וידאו הבא להתקנה בסיסית של שרת UBUNTU.
איך מגדירים שרת SQUID בצורה בסיסית ?
1) לאחר סיום ההתקנה הבסיסית של השרת לינוטקס, יש להתקין את תוכנת SQUID ע"י הפקודה הבאה :
sudo apt-get install squid3
נתבקש להקליד סיסמא של משתמש ROOT ולאשר פעם אחת את ההתקנה.
בגדול, סיימנו את ההתקנה (כן, כבר סיימנו … 🙂 ) אך אנחנו צריכים לבצע מספר הגדרות בסיסיות כדי להפעיל את הפרוקסי.
2) הגדרות בסיסיות למצב גלישה דרך PROXY :
יש לבצע LOGIN לשרת (בשרת עצמו או דרך לקוח SSH כמו PUTTY)
יש להריץ פקודה לעריכת קובץ ההגדרות :
sudo nano /etc/squid3/squid.conf
הקובץ ארוך מאוד אך יש לא מעט הסברים על כל הגדרה
יש לחפש את השורות הבאות בקובץ (ניתן לחפש בקלות בעזרת CONTROL + W) ולבצע את השינויים בהתאם :
הגדרת פורט החיבור (והפעלת הפרוקסי)
# Squid normally listens to port 3128
http_port 3128
יש להוסיף את המילה transparent בסוף השורה (במידת הצורך, ניתן גם לשנות את פורט החיבור של השרת אך הפורט הקיים מצויין) :
# Squid normally listens to port 3128
http_port 3128 transparent
יש לחפש את הקטע הבא :
# TAG: visible_hostname
# If you want to present a special hostname in error messages, etc,
# define this. Otherwise, the return value of gethostname()
# will be used. If you have multiple caches in a cluster and
# get errors about IP-forwarding you must set them to have individual
# names with this setting.
#
#Default:
# visible_hostname localhost
בשורה האחרונה יש למחוק את ה-"#" ויש להחליף את המילה hostname בשם השרת (לא עיקרוני, בעיקר לקריאה נוחה של הלוגים) :
# TAG: visible_hostname
# If you want to present a special hostname in error messages, etc,
# define this. Otherwise, the return value of gethostname()
# will be used. If you have multiple caches in a cluster and
# get errors about IP-forwarding you must set them to have individual
# names with this setting.
#
#Default:
visible_hostname squidservername.test.local
יש לחפש את הקטע הבא :
#Recommended minimum configuration:
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
#
# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
#acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
#acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
#acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
בסוף הקטע, יש להוסיף את הרשת הפנימית של הארגון כרשת מורשת לעבודה מול השרת PROXY (בדוגמא אני מוסיף את הרשת הכתומה) :
#Recommended minimum configuration:
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
#
# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
#acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
#acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
#acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src 192.168.30.0/24 # RFC1918 possible internal network
יש לחפש את השורות הבאות :
#Default:
# http_access deny all
יש לשנות בהתאם לרישום הבא כדי לאפשר גישה מהשרת פרוקסי לאינטרנט (חשוב לא לשכוח למחוק את ה-"#" של השורה האחרונה) :
#Default:
http_access allow localnet
http_access deny all
ובסוף, יש לחפש את השורות :
#Default:
# shutdown_lifetime 30 seconds
יש למחוק את ה-"#" של השורה השניה ולשנות את ה-TIMEOUT ל-4 שניות :
#Default:
shutdown_lifetime 4 seconds
זהו … יש לנו שרת פרוקסי שיאפשר לנו גלישה דרכו.
באו נבדוק שניתן לגלוש דרך השרת.
3) הגדרות הדפדפן ובדיקת גלישה
מומלץ מאוד להגביל את הגישה לאינטרנט אך ורק לשרת הפרוקסי כדי לבדוק את תקינות המערכת (אם התחנות יכולות לגלוש אז לא עשינו כלום)
a. יש לפתוח את הדפדפן (בדוגמא נבצא את ההגדרה על INTERNET EXPLORER 8 אך ההגדרות דומות גם בדפדפנים אחרים)
b. יש לגשת ל-TOOLS -> INTERNET OPTIONS
c. יש לגשת לטאב CONNECTIONS
d. יש ללחוץ על LAN SETTINGS
e. יש להגדיר את הכתובת ואת הפורט של שרת הפרוקסי ולאשר את כל השינויים
יש לנסות לגלוש באתר אינטרנט ולוודא תקינות הגלישה.
דרך הגב, אם תחנה מנסה לגשת לאינטרנט ללא הגדרות פרוקסי, להלן השגיאה שתתקבל בדפדפן :
זהו, יש לנו שרת SQUID פעיל ותקין שיאפשר גלישה של תחנות העבודה.
בעתיד, אכתוב מדריך משלים להגדרת שירות WEB FILTERING בשרת שהקמנו.
מומלץ לבצע "ניסוי כלים" על סביבה וירטואלית ואז לנסות להתקין בשרת אמיתי (שגם יכול להיות וירטואלי כמובן).
קישורים שימושים :
אתר UBUNTU (להורדת הפצת לינוקס)
אתר SQUID (למידע נוסף על המערכת)
קטגוריות: אבטחת מידע, לינוקס, מדריכים | תגיות: proxy, לינוקס |