אבינועם לבקוביץ
Avinoam_AT_Rambam.health.gov.il
| היסטוריית גירסאות | ||
|---|---|---|
| גירסה 1.0 | 2007 | ליטל ברהום |
| הומר לפורמאט ויקי | ||
| גירסה 1.0 | 2004 | אבינועם לבקוביץ |
| גירסא ראשונה | ||
שרת הפרוקסי שאציג במדריך זה מתאים לארגונים מכל הגדלים ולמשתמשים פרטיים המעוניינים במערכת המספקת את היתרונות הבאים :
שרת הפרוקסי משמש כמתווך בין המשתמשים לאינטרנט, כל בקשות הגלישה של המשתמשים מנותבות אליו והוא עונה לבקשות בהתאם למדיניות שנקבעה. במידה והבקשה מאושרת השרת בודק בטבלת קבצי ה- Cache האם האובייקט המבוקש נמצא בספריית ה –.Cache במידה וכן, השרת בודק את זמן התפוגה של אותו אובייקט (Expiration Time), במידה והאובייקט עדיין בר-תוקף השרת משתמש בו.
במידה והאובייקט אינו נמצא בספריית ה- Cache או שפג תוקפו, השרת מוריד אותו מהאינטרנט, מאחסן אותו בספריית ה – Cache ועונה לבקשת הלקוח.
כפי שציינתי הבקשות מאושרות או נדחות בהתאם למדיניות שנקבעה. שרת פרוקסי שיוצג במדריך זה מאפשר גמישות רבה בקביעת המדיניות, ניתן לחסום אתרים על ידי שימוש במילות מפתח (כגון : Sex, MP3), ניתן לחסום את הגישה לאינטרנט בהתבסס על שמות Host או כתובות IP. ניתן לאפשר גישה לאתרים מסוימים רק לחלק מהתחנות ולחסום את הגישה לשאר.
כפי שניתן להבין האפשרויות רבות ומאפשרות כמעט כל קומבינציה בין אתרים, קבצים ותחנות המשתמשים.
שרת Squid הינו שרת פרוקסי מבוסס קוד פתוח, המיועד לשרתי לינוקס ויוניקס. Squid נחשב לאחד משרתי הפרוקסי המובילים בעולם בזכות הגמישות הרבה והיציבות המאפיינים אותו. ניתן למצוא שרתי Squid בארגונים גדולים וחברות ISP, שם הם משרתים נאמנה אלפי משתמשים.
לשרת Squid יש מוניטין של שרת בעל מגוון עשיר של תצורות. במאמר זה אני אציג תצורת שרת אשר יכולה להתאים לרוב הארגונים או המשתמשים הפרטיים, והיא יכולה לספק בסיס מצויין לתצורות רבות אחרות.
כל הזכויות שמורות (C)
[2004] [אבינועם לבקוביץ] המדריך נכתב על ידי אבינועם לבקוביץ Avinoam_AT_Rambam.health.gov.il
אשמח לקבל משוב ולשמוע את דעתך על המדריך בכתובת Avinoam_AT_Rambam.health.gov.il
להלן מספר דגשים בנוגע לחומרה הדרושה להקמת שרת פרוקסי משובח:
הדיסק הקשיח נושא ברוב העומס, כל תהליך ה – Caching מתבצע על הדיסק הקשיח וכתוצאה מכך ביצועי השרת מושפעים ישירות מביצועי הדיסק. אחד הפרמטרים החשובים הינו מהירות הגישה של הדיסק (Disk random seek time ),פרמטר זה מייצג את מהירות שליפת הנתונים מהדיסק וכפי שכבר ציינתי כל תהליך ה –caching מבוצע על הדיסק כך שלפרמטר זה יש השפעה ישירה על מהירות התגובה של השרת לבקשות המופנות אליו. כיום לדיסקים מסוג IDE יש ביצועים טובים כך שניתן לבנות שרת פרוקסי מצוין בעזרת דיסקים IDE, מה שמוזיל מאוד את עלויות השרת. מומלץ להקצות דיסק נפרד לשימוש ה –Cache ולהשתמש בדיסק נוסף לשאר המחיצות של מערכת ההפעלה. גודל הדיסק לשימוש ה –Cache משתנה בהתאם לצרכי הארגון, גודלו וכמות התעבורה של המשתמשים. מכיוון שעלות דיסקים מסוג IDE הינה נמוכה מאוד רצוי להשתמש בדיסק גדול ( 40GB נחשב גדול ) ובכך להבטיח אפשרות גידול עתידי של המערכת.
על מנת ששרת הפרוקסי יוכל לבדוק במהירות מרבית האם האובייקט המבוקש נמצא ב - Cache שלו, שרת הפרוקסי מתחזק בזיכרון הראשי את טבלת האובייקטים המאוחסנים בספריית ה –Cache . נתון זה הינו קריטי לביצועי השרת, במידה ולא מתאפשרת גישה מהירה לטבלה הנ”ל (במידה וחלק מהטבלה נמצא ב- swap file ) אנו נהיה עדים לירידה דראסטית בביצועי השרת, מכיוון שהזמן שייקח לשרת לשלוף את הנתונים מה- swap file הינו גדול מאוד ביחס לזמן שליפת הנתונים המאוחסנים בזיכרון הראשי (RAM).
קצת מספרים:
על מנת לחשב את גודל הזכרון שהמערכת זקוקה לו יש לקחת בחשבון את הנתונים הבאים:
המסקנה : גודל הזיכרון (RAM) הדרוש למערכת עם Cache בגודל 12GB הינו מינימום.128MB מומלץ להשקיע בזיכרון לפי העיקרון של יותר זיכרון - יותר טוב, הדבר בהחלט יורגש בביצועי השרת.
שרת הפרוקסי אינו זקוק למעבד חזק, עיקר השימוש במעבד הינו לשליפת אובייקטים. מה – Cache ובבניית טבלת האובייקטים בזיכרון בזמן האתחול (פעולה המאמצת את המעבד אך לזמן קצר בלבד) מעבד Pentium 200MHZ אמור לספק את המערכת , אך בעידן של מעבדים מהירים רצוי להשתמש במעבד חזק יותר.
RedHat 9 : המדריך נכתב תוך שימוש ב- RedHat,אך ניתן להקים את שרת הפרוקסי (Squid)
עם כל הפצה אחרת, במקרה כזה יש לשנות את המסלול לקבצים השונים המתוארים במדריך זה כך שיתאים להפצה בה הינך משתמש. בכל שאר החלקים ההתקנה זהה.
המלצה: מכיוון ששרת הפרוקסי זקוק לרכיבים בסיסיים בלבד של מערכת לינוקס מיותר להתקין התקנה מלאה אשר תגזול משאבי מערכת. מומלץ להסתפק בהתקנה מותאמת (custom installation) של שרת הלינוקס.
הערה: על מנת להשיג ביצועים מרביים רצוי להקצות דיסק נפרד עבור המחיצה שתאחסן את ספרית ה- Cache. במדריך זה אני אשתמש בברירת המחדל של המערכת המגדירה את ספריית ה -Cache במסלול /var/spool/squid/ , ולכן המחיצה var/ תמוקם בדיסק נפרד.
Apache: שרת האינטרנט המגיע בחבילת ההתקנה של RedHat 9
Squid: שרת הפרוקסי המגיע בחבילת ההתקנה של RedHat 9
Calamarisx: חבילת תוכנה זו מנתחת את קבצי הלוג של שרת הפרוקסי ומייצרת דוחות פרטניים של ביצועי השרת וסיכומים בנוגע לצורות הגישה, שעות שיא וכ”ו.
Sarg : חבילה זו מספקת מערכת הפקת דוחות מפורטים בנוגע להרגלי הגלישה של המשתמשים תוך דגש על פירוט האתרים אליהם גלשו המשתמשים, רשימת האתרים הפופולאריים ביותר ועוד.. המערכת מספקת דוחות יומיים שבועיים וחודשיים בפורמטHTML.
בסיום התקנת Redhat, יש לוודא את ההגדרות במספר קבצים בסיסיים.
הקובץ etc/hosts/:
הקובץ etc/hosts/ מכיל מיפוי של שמות host לכתובות IP. קובץ hosts לדוגמא :
# Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost 192.168.1.4 S-Proxy.My-Domain S-Proxy
השורה הראשונה הינה הכרחית לפעילות השרת ובשום מקרה אין למחוק אותה.
בשורה השנייה מוגדר שרת הפרוקסי, יש לשנות את הפרמטרים הנ”ל כך שיתאימו לשרת המותקן.ולכתוב את השורה בפורמט:
< Server IP Address> < Server Host name> < Server name>
הקובץ etc/resolv.conf/: קובץ זה מכיל את כתובות ה – IP של שרתי ה – DNS שישמשו את שרת הפרוקסי. קובץ etc/resolv.conf/ לדוגמא :
search nameserver 192.168.1.48 nameserver 212.150.48.168
עבור כל שרת DNS יש להגדיר שורה חדשה בקובץ בפורמט :
nameserver < DNS server IP >
התקנת החבילה squid: החבילה הדרושה להתקנת שרת הפרוקסי, נמצאת בתקליטורי ההתקנה של RedHat. על מנת לוודא שהחבילה אכן מותקנת, יש להריץ את הפקודה :
# rpm -qa | grep squid
במידה ושרת הפרוקסי הותקן במערכת אנו נקבל פלט בסגנון : squid-2.5.STABLE1-2 במידה ולא התקבל פלט. שרת הפרוקסי אינו מותקן במערכת ועלינו להתקין אותו מתקליטור ההתקנה הראשון של RedHat.
הקובץ etc/squid/squid.conf/ :
זהו קובץ ההגדרות הראשי של שירות squid. הקובץ הינו גדול ומורכב ומכיל כ – 140 הגדרות שונות והסברים מפורטים לגבי כל הגדרה. עבור רוב ההגדרות בקובץ קיימת אפשרות ברירת מחדל שתתאים בערך ב- 92.9% מהמקרים. כך שעל מנת שהשרת יפעל בתצורה הבסיסית יש צורך לשנות רק מספר קטן של הגדרות. לאחר ביצוע שינויים בקובץ יש לאתחל את שירות squid על מנת שהשינויים שביצענו יכנסו לתוקף.
המלצה :רצוי לעבוד עם הקובץ squid.conf במשנה זהירות. תוך ביצוע מספר שינויים קטן ואתחול השירות squid על מנת לבדוק את השינויים הללו. במידה ומבוצעים בקובץ שינויים רבים יתכן שאתחול שירות squid לא יצליח וקשה יהיה לדעת מה מהשינויים שביצענו גורם לבעיה. בכול מקרה מומלץ בחום לגבות את הקובץ המקורי לפני ביצוע השינויים הבאים.
גיבוי קובץ ההגדרות המקורי:
מומלץ לגבות את קובץ ההגדרות המקורי לפני ביצוע השינויים, כך שבמידה והעניינים מסתבכים נוכל תמיד לחזור לנקודת ההתחלה. לביצוע הגיבוי יש להריץ את הפקודה הבאה :
cp /etc/squid/squid.conf /etc/squid/squid.conf.orig
לאחר ביצוע הגיבוי יש לפתוח את הקובץ etc/squid/squid.conf/ בעורך האהוב עליך. וקדימה, בואו נתחיל לעבוד.
הגדרת הפורט אליו יאזין שירות squid :
TAG: http_port
הגדרה זו קובעת לאיזה פורט יאזין שרת הפרוקסי. ניתן לבחור כל פורט פנוי מעל 1024,כך שיש אפשרות לבחור מספר יותר ידידותי לסביבה מברירת המחדל 3218,ההגדרה השכיחה הינה 8080 מטעמי נוחות מובנים. שרת squid יכול להאזין למספר פורטים במקביל כך שניתן להשאיר את ברירת המחדל ולהוסיף את פורט 8080. במקרה כזה יש לשנות את הגדרת ברירת המחדל:
#Default: # http_port 3128
ולהוסיף את פורט 8080
#Default: http_port 3128 8080
תחלופת האובייקטים ב- Cache.
TAG: cache_swap_low (percent, 0-100)l
TAG: cache_swap_high (percent, 0-100)l
פרמטרים אלו מסמנים ל squid את נפח הדיסק באחוזים שספריית ה- Cache יכולה למלא לפני ש -squid יתחיל לבצע תחלופה של אובייקטים, הגדרת ברירת המחדל הינה:
#Default: # cache_swap_low 90 # cache_swap_high 95
ההגדרה הזו קובעת שספריית ה- Cache יכולה למלא כ- 90% מהנפח שהוגדר לה, לפני ש squid יתחיל לבצע תחלופה של אובייקטים. קצב התחלופה הולך וגובר ככל שהנפח מתקרב ל- 95%.
חשוב לזכור שבמידה וגודל ספריית ה- Cache שהוגדרה הינו 18GB אז 5% הינם כמה מאות מגה,במקרה כזה רצוי לשנות את ברירת המחדל ולציין ערכים יותר קרובים. אנו נשנה את ברירת המחדל הנ”ל לערכים הבאים:
#Default: cache_swap_low 94 cache_swap_high 95
הגדרת ספריית ה- Cache :
TAG: cache_dir
הגדרה זו קובעת את המבנה, המיקום והנפח של ספריית ה- Cache, הגדרת ברירת המחדל :
# cache_dir ufs /var/spool/squid 100 16 256
מבנה ההגדרה: cache_dir ufs Directory-Name Mbytes L1 L2
ufs : הינה שיטת אחסון נתונים אשר תשמש את שירות ה- squid באחסון דפי האינטרנט בספרייה.
Directory-Name : המסלול לספריית ה- Cache שבה יאוחסנו דפי האינטרנט.
Mbytes : הגודל המוקצה לספריית ה –Cache .
L1 : מגדיר את מספר הספריות ברמה הראשונה של ספריית ה- Cache.
L2 : מגדיר את מספר הספריות ברמה השנייה של ספריית ה –Cache.
אנו נשנה את הגדרת ברירת המחדל ונחליף אותה בשורה הבאה:
cache_dir ufs /var/spool/squid 7500 16 256
הנתון 7500 מקצה 7.5GB עבור ספריית ה- Cache. מומלץ לשנות נתון זה כך שישקף 75% מנפח מחיצת /var בשרת שלך.
בקרת גישה בסיסית (ACL):
מערכת בקרת גישה (ACL) מאפשרת הגדרת מדיניות ושליטה על גישה לאינטרנט. הנושא יוסבר בהרחבה בסעיף 8.
הגדרת ברירת המחדל בקובץsquid.conf מונעת את הגישה לספריית ה- Cache,על מנת לאפשר עבודה תקינה של השרת יש לשנות את הגדרת ברירת המחדל ולאפשר את הגישה.יש לחפש את השורה הבאה:
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
מתחת לשורה הנ”ל יש להגדיר את השורות הבאות אשר יאפשרו גישה ל –Cache , יש לשנות את ההגדרה My_Lan_1 לכתובת הרשת שלך.
acl My_Lan_1 src 192.168.1.0/255.255.255.0 acl all src 0.0.0.0/0.0.0.0 http_access allow My_Lan_1 http_access deny all
שורות אלו הינם מערכת ACL בסיסית, בהמשך יינתן הסבר מפורט על מערכת ACL והאפשרויות הגלומות בה.
השורה הראשונה מגדירה משתנה (My_Lan_1) המכיל את טווח כתובות ה- IP של הרשת שבה מחובר שרת ה- squid.
השורה השניה מגדירה משתנה (all) המכיל את כל טווח כתובות ה-IP האפשריות. משתנה זה מייצג את “שאר העולם”.
השורה השלישית מאפשרת גישה לאינטרנט בפרוטוקול http לכתובות המיוצגות על ידי המשתנה My_Lan_1.
השורה הרביעית חוסמת את הגישה לאינטרנט לטווח הכתובות שמיוצג על ידי המשתנה all.
על מנת שההגדרות הנ”ל יכנסו לתוקף יש לאתחל את שירות squid על ידי הפקודה הבאה:
# service squid restart
לאחר אתחול השירות, המערכת מוכנה לעבודה. כל שנותר הוא להגדיר את שרת הפרוקסי במחשבי המשתמשים. הערה : מערכת ה- ACL הנ”ל הינה המערכת הבסיסית ביותר שניתן ליישם, מומלץ בחום ואהבה לקרוא את סעיף 8, ולבנות מערכת ACL אישית שתחליף את המערכת הבסיסית הנ”ל.
להלן הצעדים להגדרת הפרוקסי בתוכנות הגלישה הפופולאריות:
Netscape:
במידה ויש לך שרת אינטראנט בארגון, תוכל להכניס את כתובתו לשדה : No proxy for.
IE 4.x, 5.x, 6.x:
הבדיקה הבסיסית ביותר היא להיכנס לאתר http://www.squid-cache.org משני מחשבים שונים ולבחון את הרשומות שנרשמו בקובץ הלוג. שרת Squid מתעד את כל הבקשות שהופנו אליו בקובץ var/log/squid/access.log/ (הקובץ access.log יוסבר בפירוט בסעיף 7). על מנת לנתר את קובץ הלוג בצורה מקוונת, יש להריץ את הפקודה:
tail -f /var/log/squid/access.log
לאחר שהמחשב הראשון נכנס לאתר http://www.squid-cache.org נרשמה הרשומה הבאה בקובץ access.log.
1064382844.789 157 192.168.1.2 TCP_MISS/200 20847 GET http://www.squid-cache.com/ - DIRECT/www.squid-cache.com text/html
מכיוון שהאובייקט המבוקש לא נמצא ב- Cache הרשומה הוגדרה כ- TCP_MISS.
לאחר שהמחשב השני נכנס לאתר http://www.squid-cache.org נרשמה הרשומה הבאה בקובץ access.log.
1064391233.226 28 192.168.1.55 TCP_HIT/200 20869 GET http://www.squid-cache.com/ - NONE/- text/html
שרת ה- Squid מצא את הדף המבוקש בספריית ה- Cache ולכן רשומה זו הוגדרה כ- TCP_HIT.
במידה והרשומות שהתקבלו שונות מהשורות הנ”ל יש לנסות אתר אחר ולבדוק שוב את ההגדרות המפורטות בסעיף 4.
הקובץ var/log/squid/access.log/ הינו קובץ הלוג של שרת הפרוקסי, בקובץ זה שירות squid מתעד את כל הבקשות הנכנסות. מניתוח הרשומות בקובץ access.log ניתן לקבל דוחות המשקפים את ביצועי השרת ואת הרגלי הגלישה של המשתמשים. הקובץ access.log בנוי מרשומות הנראות כך:
1064382844.789 157 192.168.1.2 TCP_MISS/200 20847 GET http://www.squid-cache.com/ - DIRECT/www.squid-cache.com text/html
הרשומה בנויה משדות המופרדים ברווחים ,כל שדה שאין מידע עבורו מיוצג על ידי התו ”-”.// השדות החשובים ברשומה הנ”ל הינם :
מערכת בקרת גישה או בקיצור ACL מאפשרת גמישות רבה ושליטה מלאה על הגישה לאינטרנט. על ידי שימוש ב –ACL ניתן לבצע שילובים רבים ומגוונים וכך ליצור בקרת גישה העונה על צרכי הארגון \ הבית. להלן מספר דוגמאות קטנטן להמחשת האפשרויות:
מערכת ACL מורכבת מ- 2 חלקים :
מחלקות:
המחלקות הינם רשימות. הרשימות הנ”ל יכולות להכיל אוסף שמות אתרים, כתובות IP, מילות מפתח וכ”ו. צריך לראות את המחלקות כמעין משתנים המשמשים את מערכת ה- ACL לבקרת הגישה לאינטרנט. המחלקות מוגדרות בפורמט הבא:
acl ACL-Name ACL-Type Value
ACL-Name: שם המחלקה, ניתן לבחור כל שם שרוצים. מומלץ לבחור שם בעל משמעות.
ACL-Type: פרמטר זה מגדיר את סוג הערך שאותה מחלקה תייצג, סוגי הערכים הפופולאריים הינם:
Value: משתנה זה מכיל את הערך של המחלקה.
חשוב: כל מחלקה יכולה לקבל את הערכים שלה מתוך קובץ על ידי הגדרת Value כמסלול לקובץ. השימוש בקובץ מקל על ניהול המחלקה, במידה ורוצים להוסיף או לגרוע ערכים מהרשימה יש לשנות רק את הקובץ.
כמה דוגמאות להגדרת מחלקות:
acl My-Net src 192.168.1.0/255.255.255.0 :
הגדרת מחלקה בשם My-Net המכילה את טווח הכתובות 192.168.1.0→192.168.1.255
acl Client-A-B src 192.168.1.44 192.168.1.47 :
הגדרת מחלקה בשם Client-A-B אשר מייצגת את הכתובות:192.168.1.44 ,192.168.1.47.
acl Porn-Sites url_regex /etc/squid/Acl-Files/Porn-Sites :
הגדרת מחלקה בשם Porn-Sites אשר מכילה את תוכן הקובץ Porn-Sites, כפי שהשם מרמז הקובץ הנ”ל יכיל רשימה של מילות מפתח, ביטויים, וכתובות אתרים הקשורים לאתרי סקס שאותם ניתן לחסום (למה??). על ידי ניהול הרשימה בקובץ, ניתן להוסיף בקלות ביטויים או אתרים חדשים.
acl My-Users src /etc/squid/Acl-Files/NET-Users :
הגדרת מחלקה בשם My-Users אשר מכילה את כל כתובות ה- IP ושמות ה- Host המצוינים בקובץ NET-Users
פעולות - ACL:
רכיב הפעולות קובע האם אנו מאפשרים או מונעים את הגישה למחלקה לפי סוג הבקשה, לדוגמא בקשות הנוגעות לפרוטוקול http ינוהלו על ידי http_access ,בקשות הנוגעות ל -snmp ינוהלו על ידי snmp_access.
דוגמאות לפעולות-ACL :
http_access allow My_Net :
פעולה זו מאפשרת את בקשות הגלישה (http) מלקוחות המוגדרים במחלקה My_Net.
icp_access deny Client-A-B:
חסימת בקשות ICP למחלקה Client-A-B.
http_access deny Porn-Sites :
חסימת הבקשות הגלישה לכתובות אינטרנט המכילות את אחד הביטויים, מילות המפתח או האתרים שמכילה המחלקה Porn-Sites.
1. acl My_Lan_1 src 192.168.1.0/255.255.255.0 2. acl My_Lan_2 src 192.168.2.0/255.255.255.0 3. acl All src 0.0.0.0/0.0.0.0 4. http_access allow My_Lan_1 5. http_access allow My_Lan_2 6. http_access deny All
הערה: מספור השורות הינו לצרכי ההסבר ולא נכלל בהגדרת ה- ACL.
הגדרת המחלקות :
הגדרת פעולות – ACL :
כל אחת מהשורות 4,5,6 מגדירה פעולת- ACL המשתלבות יחדיו למנגנון אחד. יש חשיבות רבה לסדר, שירות squid מתייחס לחוקים הללו לפי סדר כתיבתם.
# Define the files with the Web Address 1. acl deny-Sites url_regex -i "/etc/squid/Acl-Files/Deny-Sites" 2. acl allow_Sites url_regex -i "/etc/squid/Acl-Files/Allow-sites" 3. acl Open_4_all url_regex -i "/etc/squid/Acl-Files/Open4all-Sites" # Define the clients lists 4. acl My_Net_1 src 192.168.1.0/255.255.255.0 5. acl Deny-Users src "/etc/squid/Acl-Files/Deny-Users" 6. acl all src 0.0.0.0/0.0.0.0 # ACL Rules 7. http_access allow Open_4_all 8. http_access deny Deny-Users 9. http_access allow Allow-Sites My_Net_1 10. http_access deny Deny-Sites 11. http_access allow My_Net_1 12. http_access deny all
הערה: מספור השורות הינו לצרכי ההסבר ולא נכלל בהגדרת ה- ACL.
שורות 1-6 : שורות אלו מגדירות מחלקות המכילות רשימות אתרים, מילות מפתח או כתובות IP. את הרשימות הנ”ל המערכת תקרא מתוך קבצים (המסלול אל הקובץ מוגדר בהמשך הגדרת המחלקה). הגדרת הרשימות בקבצים מאפשרת ניהול פשוט של הרשימות ניתן להוסיף או לגרוע אובייקטים מהרשימה ללא צורך בשינויים בקבצי ההגדרות של squid.
שורות 7-12:
שורות אלו מגדירות את פעולות ה- ACL, תוך שימוש במחלקות שהוגדרו בשורות 1-6. חשוב להדגיש את חשיבות סדר החוקים. המערכת קוראת את החוקים אחד אחרי השני מלמעלה למטה, במידה והמערכת מגיעה לחוק אשר מספק את התשובה לשאלת מליון הדולר, האם לחסום? או לא?. המערכת תממש את החוק הנ”ל ולא תמשיך הלאה לשאר השורות. כך שיש להקדיש מחשבה בזמן בניית מערכת החוקים.
המערכת הנ”ל תוכננה לפעול בצורה הבאה:
הערה : חוק זה עושה שימוש במחלקה Allow-Sites, מחלקה זו תכיל בתוכה את כל האתרים אשר יחסמו שלא בצדק על ידי מילות המפתח שהוגדרו במחלקה Deny-Sites. לדוגמא נניח שהגדרנו את המילה SEX כאחת ממילות המפתח במחלקה Deny-Sites, כל האתרים שהמילה SEX תופיע בכתובת שלהם יחסמו על ידי החוק שמוגדר בשורה 10 (עוד נגיע אליו), המצב הזה עלול ליצור בעיות מכיוון שיש אתרים תמימים לחלוטין (שאותם אין אנו רוצים לחסום) המכילים את המילה SEX בכתובת שלהם, על מנת לאפשר את הגלישה לאתרים אלו אנו נכניס את האתרים התמימים הללו למחלקה Allow-Sites. ונאפשר את הגלישה אליהם לפני ביצוע החסימה של המחלקה Deny-Sites ( החסימה הנ”ל מתבצעת בשורה 10)
הקובץ etc/squid/Acl-Files/Deny-Sites/ : להלן דוגמא לקובץ “etc/squid/Acl-Files/Deny-Sites/” , המחלקה Deny-Sites תכיל את רשימת האתרים המוגדרים בקובץ הנ”ל. הרשימה יכולה להכיל מילות מפתח כגון Sex, MP3 , שמות אתרים, סיומות של כתובות, שמות דומיין, ועוד. כאשר כל אחד מהם כתוב בשורה נפרדת. לאחר ביצוע שינויים בקובץ יש לאתחל את שירות squid על מנת שהשינויים יכנסו לתוקף.
Sex Xxx Mp3 Xpics xxx-movies www.koko1234.com .zooozoo.com http://12398.org.il Sexy-Babes.net
הקובץ etc/squid/Acl-Files/Allow-Sites/: להלן דוגמא לקובץ “etc/squid/Acl-Files/Allow-Sites/”, קובץ זה יכיל בתוכו את כל האתרים אשר יחסמו שלא בצדק על ידי מילות המפתח שהוגדרו במחלקה Deny-Sites. לדוגמא נניח שהגדרנו את המילה SEX כאחת ממילות המפתח במחלקה Deny-Sites, כל האתרים שהמילה SEX תופיע בכתובת שלהם יחסמו, המצב הזה עלול ליצור בעיות מכיוון שיש אתרים תמימים לחלוטין (שאותם אין אנו רוצים לחסום) המכילים את המילה SEX בכתובת שלהם, על מנת לאפשר את הגלישה לאתרים אלו אנו נכניס את האתרים התמימים הללו לקובץ הנ”ל, ונבנה חוק ACL אשר יאפשר את הגישה לאתרים אלו. לאחר ביצוע שינויים בקובץ יש לאתחל את שירות squid על מנת שהשינויים יכנסו לתוקף.
www.sex-medicin.org.il www.sex-disease.ac.il
הקובץ etc/squid/Acl-Files/Open4all-Sites/ : להלן דוגמא לקובץ : “etc/squid/Acl-Files/Open4all-Sites/”, קובץ זה יאחסן את רשימת האתרים שאני מעוניין לאפשר אליהם גישה לכל המחשבים בארגון. בדוגמא שלפנינו אני מעוניין לאפשר את הגישה לאתר האינטראנט של הארגון ולכל אתרי האוניברסיטאות בישראל
www.my-domain.co.il .ac.il goodsite.com very.good-site.co.il
הקובץ etc/squid/Acl-Files/Deny-Users/ : להלן דוגמא לקובץ “etc/squid/Acl-Files/Deny-Users/” , בקובץ זה יש לציין את המחשבים שאנו מעוניינים לחסום.ניתן להשתמש בכתובות IP, שמות Host או טווח שלם של כתובות IP ( בשורה האחרונה).
192.168.1.55/255.255.255.255 koko14.my-domain.co.il shila_l.my-domain.com 192.168.2.0/255.255.255.0
טיפים למערכות ACL:
תהליך הפקת הדוחות מתבצע תוך שימוש בשני התוכנות הבאות:
אתר הבית : http://cord.de/tools/squid/calamaris/Welcome.html.en
חבילה זו הינה תוספת חשובה לשרת הפרוקסי. Calamaris מנתחת את הלוגים של שרת הפרוקסי ומספקת דוחות מפורטים על ביצועי השרת וסיכומים בנוגע לצורות הגישה, שעות שיא וכ”ו.
ניתן להוריד את החבילה (RPM) באתר הבית.בזמן כתיבת המדריך הגרסא העדכנית הינה 2.57, הפקודות המפורטות בסעיף זה מותאמות לגרסא זו ויתכן שלא יעבדו כנדרש בגרסאות מתקדמות יותר.
על מנת לקבל דוח מלא על ביצועי השרת, בפורמט HTML יש להריץ את הפקודה הבא :
# cat /var/log/squid/access.log | calamaris -a -F 'html' -f squid-old > /etc/squid/calamaris.html
הפקודה מייצרת את הקובץ ”/etc/squid/calamaris.html/” שהינו דוח מפורט של ביצועי השרת. ניתן להפיק מגוון רחב של דוחות חלקיים, מומלץ לקרוא את דף ה - man של הפקודה calamaris על מנת ליצור את הדוחות המתאימים לך.
אתר הבית : http://web.onda.com.br/orso/sarg.html
חבילה זו מספקת מערכת הפקת דוחות מפורטים בנוגע להרגלי הגלישה של המשתמשים תוך דגש על פירוט האתרים אליהם גלשו המשתמשים, רשימת האתרים הפופולאריים ביותר ועוד.. המערכת מספקת דוחות יומיים שבועיים וחודשיים בפורמטHTML . לאחר ההתקנה ניתן למצוא סקריפטים מוכנים אשר מייצרים דוחות יומיים שבועיים וחודשיים בכתובת : http://ptt.mcl.ru/orso
אבינועם לבקוביץ הינו הנדסאי תוכנה ומוסמך RHCE, מתמחה באינטגרציה והטמעה של מערכות לינוקס ברשתות מורכבות.