מדריך להתקנה בסיסית של שרת פרוקסי (SQUID)

מה זה שרת PROXY ?

לפי הגדרת ויקופדיה : שרת פרוקסי הינו שרת שתפקידו לספק גישה מהירה למשאבים חיצוניים.

למה להתקין שרת פרוקסי בארגון ?

ברוב הארגונים משתמשים בשרת פרוקסי כמתווך בגלישה בין המשתמשים לבין האינטרנט. כל המשתמשים גולשים דרך שרת פרוקסי ויש לכך מספר רב של יתרונות :

  1. ברמת אבטחת מידע, ניתן לאפשר גישה לאינטרנט רק לשרת פרוקסי ולא לכל מחשבי הארגון (מומלץ למקם את השרת בסביבת DMZ כדי להגן על הרשת הפנימית)
  2. ניתן להפעיל יכולות CACHING ולאחסן על השרת מידע מגלישת המשתמשים כדי להאיץ את הגלישה של שאר המשתמשים ולהימנע מעומס על קו התקשורת החיצוני (לדוגמא : אם מישהו גולש ב-YNET, הוא "מוריד" על שרת הפרוקסי את הדפים שהוא קורא ואז שאר המשתמשים יכולים להוריד את המידע ישירות משרת הפרוקסי ולא מאתר YNET בתקשורת פנימית מאוד מהירה)
  3. ניתן להתקין תוכנות אבטחה שמנהלות את הגישות ואת ההרשאות  של הגלישה בצורה דו כיוונית (חסימת אתרים, שירותי גלישה, מתן הרשאות פרטניות לגלישה או לחסימתה לפי משתמשים או שעות …)
  4. ניתן לרכז את נתוני הגלישה של הארגון בצורה פשוטה וללמוד על הרגלי גלישה של המשתמשים (סטטיסטיקות)
  5. עוד יתרונות …

כתבה זו מסבירה איך להקים שרת פרוקסי 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 (למידע נוסף על המערכת)

6 תגובות ל “מדריך להתקנה בסיסית של שרת פרוקסי (SQUID)”

  1. רמי כותב:

    תמיד חשבתי שהרבה יותר מסובך להתקין SQUID …
    הפתעה טובה 🙂
    תודה.

  2. עוז כותב:

    מדריך נהדר!
    תודה דודו..
    ובוקר טוב (:

  3. דודו כותב:

    בוקר נהדר 🙂

  4. טרויה - אבטחת מידע כותב:

    אחלה מדריך.

  5. Ami כותב:

    Work like a charm
    🙂
    10X

  6. דודו כותב:

    My pleasure Ami 🙂