up
Search      menu
فنآوری اطلاعات :: مقاله پيکربندي سرويس‌دهنده Squid PDF
QR code - پيکربندي سرويس‌دهنده Squid

پيکربندي سرويس‌دهنده Squid

راهنماي پيکربندي سرويس‌دهنده Squid

● مقدمه
يک پراکسي سرور يک سرويس کارآمد جهت شبکه شما يا شبکه شما و اينترنت است که امنيت بالاتري را جهت کاربران اينترنت فراهم مي کند و هم چنين مي تواند بعنوان يک کش سرور هم استفاده شود که باعث بالا رفتن بازدهي سرور شما و سرعت آن در دسترسي به اينترنت مي شود.
Squid خود يک پراکسي سرور ايمن با توانايي بسيار بالا است که قابليت استفاده بعنوان کش سرور را نيز داراست و يکي از کاربردي ترين کش سرورها در شبکه اينترنت است . اطلاعاتي بيشتر در مورد اين کش سرور ازطريق سايت http: www.squid-cache.org قابل دريافت است .
● نصب لينوکس
قبل از نصب Squid نياز داريد تا سيستم عامل لينوکس را بر روي سيستم در نظر گرفته شده براي آن نصب نماييد. بهترين راه جهت نصب لينوکس استفاده از نمونه هاي مختلف در دسترس است که ردهت و دبيان از مشهورترين آنهاست که براحتي از طريق اينترنت قابل دريافت هستند.
● نصب Squid
▪ نصب از طريق بسته‌هاي نرم‌افزاري
توجه داشته باشيد که معمولا بيشتر نسخه هاي لينوکس داراي يک بسته Squid به صورت آماده و قابل نصب هستند که ممکن است در موقعي که نسخه لينوکس شما نصب مي شود نصب نگردد . بعنوان مثال بعد از نصب ردهت ۷.۱ شما متوجه مي شويد که Squid نصب نگرديده است . خود Squid در CD #۲ در فولدر RedHat RPMS قرار گرفته است . جهت نصب ان ابتدا اطمينان حاصل نماييد که شما بعنوان کاربر ريشه وارد شده ايد سپس از فرمان rpm به صورت زير استفاده کنيد:
▪mount mnt cdrom
▪ rpm -Uhv mnt cdrom RedHat RPMS squid-*.rpm
▪ umount mnt cdrom
شما در هنگام نصب تعداد زيادي از هش (#) را مشاهده مي کنيد که نشان از نصب Squid دارد . در لينوکس دبيان شما مي توانيد از برنامه apt-get جهت دان لود و نصب Squid از اينترنت اقدام نماييد:
apt-get install squid
▪ نصب از طريق کد منبع
اگر شما مايل به نصب Squid از طريق فايل هاي کد منبع آن هستيد، مي‌توانيد اين کار را در تمامي نسخه هاي لينوکس انجام دهيد. يادآور مي‌شوم که شما نياز داريد تا جديدترين نسخه پايدار Squid را از وب سايت آن دريافت نماييد. سورس Squid به صورت فايل فشرده شده tar است که شما احتياج داريد ابتدا آن را غير فشرده نماييد :
Tar -zxf squid-۲.۳.STABLE۴-src.tar.gz
هنگامي که شما فايل فشرده tar را غير فشرده نموديد شما از اين طريق احتياج به تنظيم، کامپايل و نصب Squid داريد:
cd squid-۲.۳.STABLE۴
. configure
make all
make install
جهت اطلاعات بيشتر جهت نصب آن فايل INSTALL را که در کد منبع Squid موجود است را مطالعه نماييد. البته به ياد داشته باشيد که هميشه آسان‌ترين راه براي نصب Squid استفاده از بسته‌هاي نرم‌افزاري آماده آن است.
● تنظيم Squid
همه تنظيمات اين پراکسي سرور در فايل پيکربندي آن است ( squid.conf ) که بستگي به نسخه لينوکس شما ممکن است در پوشهetc squid.conf يا etc squid squid.conf باشد . قبل از انجام هرکاري شما بايد مسير اين فايل را در سيستم تان پيدا کنيد:
locate squid.conf
روش هاي متعددي جهت تنظيم Squid از طريق وب يا GUI ( اينترفيس کاربري گرافيکي ) وجود دارد . اين GUI ها توانايي خواندن و تشخيص و نوشتن فايل پيکربندي در محل مربوطه را دارا هستند .
خوب ما در اينجا تنظيم نمودن Squid را به صورت دستي شرح مي دهيم . جهت اين کار شما يک ويرايش گر متن مانند emacs يا ديگر نرم افزار ها احتياج داريد و اينکه فراموش نکنيد جهت انجام فرامين مربوطه شما بايد ابصورت کاربر ريشه وارد سيستم شويد تا دسترسي به نوشتن در فايل پيکربندي را داشته باشيد.
فايل پيکربندي Squid خود داراي پارامترهاي تنظيماتي بسياري است که ما در اينجا همه آن ها را پوشش نخواهيم داد و به اصلي ترين آن ها اشاره خواهيم نمود.
● تنظيمات پيش فرض
به صورت پيش فرض Squid همراه با يک فايل پيکربندي است که تقريبا جهت بيشتر سرورها صحيح و قابل استفاده است. جهت استفاده از Squid در شبکه بعنوان يک پراکسي بايد برخي از تنظيمات پيش‌گزيده را تغيير داد.
● شروع تنظيمات مقدماتي
هنگام تنظيم Squid در فايل پيکربندي آن ( squid.conf ) تعداد زيادي توضيح وجود دارد که قابل استفاده هستند.در اين حالت حجم فايل در حدود ۷۶ کيلو بايت است که در صورت حذف اين توضيحات حجم آن به ۶۰۰ بايت کاهش مي يابد! که در اين صورت ويرايش آن از طريق ويرايش گر ها آسان تر خواهد شد. البته وجود اين توضيحات مي‌تواند کمک بزرگي براي تنظيم کننده باشد.
جهت تنظيمات مقدماتي در فايل پيکربندي اين پارامترها را اضافه مي کنيم :
acl privatenet src ۱۹۲.۱۶۸.۰.۰ ۲۵۵.۲۵۵.۰.۰
http_access allow privatenet
cache_effective_user squid
cache_effective_group squid
▪ نکته هاي قابل ذکر در اين پارامترها:
acl privatenet * . براي مثال دو شبکه خصوصي در پشت فايروال وجود دارد که از IANA در شماره هاي ۱۹۲.۱۶۸.x.x به آن اختصاص داده شده است.
● نمونه هاي تنظيمات فايل پيکربندي
دقت داشته باشيد که تنظيمات اشاره شده در اينجا تنها بخش کوچکي از آن چه که شما مي خواهيد با پراکسي سرور Squid انجام دهيد را شامل مي شود .
▪ ثبت وقايع (logging)
به طور پيش فرض Squid فعاليت هاي انجام شده را در چندين Log فايل ذخيره مي کند :
cache_access_log var log squid access.log
cache_log var log squid cache.log
cache_store_log none
با اضافه نمودن اين پارامترها Squid پيغام هاي خطا را در مسير var log squid cache.log و پيغام هاي دسترسي به سرور را در var log squid access.log ذخيره مي کند که البته برنامه هايي نيز جهت آناليز access.log قابل دريافت هسنتد که از آن ها مي توان به SARG اشاره نمود ( که با نام sqmgrlog شهرت دارد ).
من چيز مفيدي را در مورد squid&#۰۳۹;s cache_store_log پيدا نکردم که از همين جهت مي توان توسط خط ۳ بالا آن را غير فعال نمود .
▪ Cache Access
شما مي توانيد استفاده از کش را در سرورتان مقدور سازيد که اين کار از طريق http_access امکان پذير است . اين را مد نظر داشته باشيد که خط acl يک شبکه يا يک ابزار شبکه را تعريف مي کند.
● اندکي در مورد Upstream Proxy
شايد يکي از برتري هاي Squid استفاده از Upstream Proxy باشد که مي تواند سرعت دسترسي به اينترنت تا حد قابل ملاحظه اي بالا ببرد. بعنوان مثال وقتي ISP شما داراي کش جهت کاربرانش مي باشد کش سرور شما مي تواند سايت هاي بسياري را در خود ذخيره کند که اين خود تا حد زيادي بازدهي را در مواقع ضروري بالا مي برد.
يکي ديگر از مزاياي Squid پشتيباني به صورت چندگانه است بدين مفهوم که مي توان چندين کش سرور را با ارتباط داد که Squid اين کار را از طريق پروتکول ICP انجام مي دهد . ICP اين اجازه را به کش سرورها مي دهد که که طريق پکت هاي سريع UDP يا هم ارتباط برقرار نمايند .
خوب جهت استفاده از اين مزايا شما اول بايد مد نظر داشته باشيد که آدرس کش سرور ها چيست ( proxyserver.yourisp.com ) و هم چنين از چه پورتي بدين منظور استفاده مي کند . استفاده از Upstream Proxy به راحتي امکان پذير است :
cache_peer proxy.yourisp.com parent ۳۱۲۸ ۳۱۳۰
prefer_direct off
خط cache_peer اسم هاستينگ و نوع کشينگ parent و پورت پراکسي ۳۱۲۸ و پورت ICP ۳۱۳۰ را مشخص مي کند . اگر کش سرور شما پروتکل ICP را پشتيباني نمي کند از اين خط استفاده نماييد :
cache_peer proxy.yourisp.com parent ۳۱۲۸ ۷ no-query default
prefer_direct off
- Sharing Caches
توجه داشته باشيد که در مواقع ضروري که يک شرکت چندين ارتباط را جهت دسترسي به اينترنت را داشته باشد Squid کش نمودن سرور ها در حالت اشتراک گذاري آن ها مي پذيرد ( بدين مفهوم که چندين کش سرور با هم ارتباط داشته باشند ). در اين صورت بايد هر کش سرور اين خط را در فايل پيکربندي خود داشته باشند :
cache_peer theotherproxy.yournetwork.com sibling ۳۱۲۸ ۳۱۳۰
که اگر دقت نماييد يکي از پارامترها به sibling تغيير يافته بدين مفهوم که فايل هاي کش را چنانچه در کش سرور ديگر باشد آن ها را آن ها دريافت مي کند .
▪ رد نمودن فايل هاي آلوده
فايل هايي وجود دارند که به ويروس نيز آلوده هستند مانند WIN-BUGFIX.EXE که مربوط به ويروس Melissa مي شد که با يک پارامتر ساده مي توان دريافت چنين فايل هايي را از سرور رد نمود .
acl nastyfile dstdom_regex -i WIN[.*]BUG[.*]EXE
http_access deny nastyfile
● تنظيمات پيشرفته
ترنفند هايي نيز وجود دارند که شما مي توانيد جهت وب پراکسي خود اعمال نماييد مانند شناسايي کاربر و يا پراکسي ترانسپرنت و يا عدم دسترسي کاربر به فايل هاي غير مجاز در طي ساعات اداري . اما اين را فراموش نکنيد که فايل پيکربندي Squid بسيار آسيب پذير است و با يک تنظيم ناصحيح کوچک کش سرور کار نمي کند!
▪ احراز هويت کاربران
اين مرحله يکي از مهم ترين اجزا جهت مديران شبکه است بعنوان مثال مواقعي که شرکت شما دسترسي به اينترنت را جهت کاربر امکان پذير و يا رد مي کند .
تنظيم نمودن يک acl جهت ورود يا رد نمودن کاربر به راحتي از طريق تغيير زير در فايل پيکربندي امکان پذير است :
authenticate_program your authentication program
acl validusers proxy_auth REQUIRED
http_access allow validusers
و اين را توجه داشته باشيد که يک برنامه مناسب شناساگر پراکسي پيدا نماييد ( proxy authentication ) که قابل ذکر است Squid خود داراي شناساگري به صورت داخلي نمي باشد که شما بايد در خط authenticate_program تنظيمات مناسب را بر طبق برنامه احراز هويت مورد استفاده، تغيير دهيد.
البته Squid همراه با چند برنامه احراز هويت نيز ارائه شده است که در مسير usr lib squid موجود هسنتد که شامل smb_auth ( شناساگر جهت دومين NT ) و squid_ldap_auth ( جهت شناسايي دايرکتوري LDAP ) که در اين ميان شناساگر مورد انتحاب من pam_auth مي باشد که از لايبرري هاي PAM جهت شناسايي کاربران استفاده مي کند.
برتري pam_auth در شناسايي کاربران در روش هاي متعدد است و همه برنامه هاي شما ( نظير XDM, Squid, Apache و .... ) بر روي آن قرار دارند ...
▪ جهت تنظيم pam_auth ( اين روش جهت سيستم هاي ردهت است ):
فايل etc pam.d squid را ايجاد نماييد که بايد اين چنين باشد :
auth required lib security pam_stack.so service=system-auth
auth required lib security pam_nologin.so
account required lib security pam_stack.so service=system-auth
password required lib security pam_stack.so service=system-auth
session required lib security pam_stack.so service=system-auth
▪ اطمينان حاصل نماييد که خط زير را در فايل پيکربندي Squid گذارده ايد:
authenticate_program usr lib squid pam_auth
و اينکه authconfig در سرور شما اجرا شده است تا مشخص نمايد شما از چه سرور شناساگر استفاده مي نماييد که مورد LDAP مناسب به نظر مي رسد ...
● پراکسي به صورت ترانسپرنت
ترانسپرنت نمودن پراکسي يک روش است که شما مي توانيد که يک پراکسي سرور را بين شبکه و اينترنت بگذاريد و بدون اينکه نياز به تنظيمات خاصي باشد ما مستقيما به اينرنت وصل خواهيم شد ( توجه داشته باشيد که اين روش فقط براي پروتکل WWW قابل اجراست ولي جهت سرويس FTP قابل استفاده نمي‌باشد. ) همچنين بايد توجه داشته باشيد که ترانسپرنت نمودن پراکسي و اضافه نمودن احراز هويت که در مرحله قبل توضيح داده شد هر دو با هم امکان پذير نيست.
▪ جهت نصب پراکسي به صورت ترانسپرنت شما به اين موارد نياز خواهيد داشت :
- يک قانون فايروال ( Rule ) و Redirect نمودن ترافيک خروجي شبکه به پراکسي سرور .
- يک قانون Squid جهت فعال کردن Squid تا اينکه به صورت ترانسپرنت عمل نمايد .
جهت اجراي يک قانون فايروال شما به قانوني نظير زير احتياج خواهيد داشت :
sbin ipchains -A input -p tcp -s ۰ ۰ -d ۰ ۰ ۸۰ -j REDIRECT ۳۱۲۸
جهت iptables ( هسته ۲.۴ لينوکس ۲.۴ به بالا ) ممکن است شما مايل به نصب iptables مبني بر فايروال در Squid باشيد . در قستمي از نصب فايروال شما به ايجاد قانون DNAT جهت ارسال ترافيک بر روي پورت ۸۰ به ۳۱۲۸ پراکسي سرور خواهيد داشت . براي اطلاعات بيشتر جهت ايجاد قانون هاي NAT مي توانيد به وب سايت NET FILTER مراجعه کنيد .
تنظيمات مورد نياز Squid جهت فعال کردن Squid به صورت ترانسپرنت در اينجا ذکر شده اند :
httpd_accel_host virtual
httpd_accel_port ۸۰
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
چنانچه در نصب و راه اندازي Squid به مشکلي برخورد نموده ايد مي توانيد از طريق ايميل با من مکاتبه نماييد. هم چنين در اينجا جا دارد ازدوست گراميم علي مصلحي و اعضاي گروه Rayesh در همکاري جهت تهيه اين مقاله تشکر نمايم .

موزيلا فايرفاکس (مخفف شده آن به صورت رسمي Fx، اما به صورت غير رسمي FF) مرورگر وب آزاد و بازمتن برگرفته از موزيلا اپليکيشن سويت است که توسط شرکت موزيلا ...

موزيلا فايرفاکس (مخفف شده آن به صورت رسمي Fx، اما به صورت غير رسمي FF) مرورگر وب آزاد و بازمتن برگرفته از موزيلا اپليکيشن سويت است که توسط شرکت موزيلا ...

شبکه به ارتباط بين کامپيوترها گفته ميشود که در ابتدايي ترين حالت ميتواند دو کامپيوتر به يکديگر متصل شود شايد اين سوال پيش بيايد که با قدرت امروزي کامپ ...

هر کامپيوتر موجود در شبکه به منظور ايجاد ارتباط با ساير کامپيوتر ها ، مي بايست شناسائئ وداراي يک آدرس منحصر بفرد باشد.قطعاً تاکنون به آدرس هاي IP ويا ...

لينوکس با ويندوز چه تفاوتي دارد؟ يکي از نخستين سوالاتي که در ذهن هر کاربري که به تازگي نام لينوکس به گوشش خورده است، مطرح مي شود، اين است که خوب لينوک ...

هر روزه اخبار جديدي در مورد حملات و تهديدات کامپيوتري در رسانه هاي مختلف انتشار مي يابد. اين تهديدات شامل ويروس هاي جديد و يا انواع هک و نفوذ در سيستم ...

● مقدمه مي توان گفت که انگيزه ي ساختن برنامه ي رجيستري از آنجايي شروع شد که کاربران Ms- Dos از اين که عملا هيچگونه اختياري در تنظيم منو ، پنجره ها و … ...

دانلود نسخه PDF - پيکربندي سرويس‌دهنده Squid