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

مشاهده موضوع قبلي مشاهده موضوع بعدي اذهب الى الأسفل

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

پست  Admin في الخميس ديسمبر 17, 2009 7:51 am

● مقدمه
یک پراکسی سرور یک سرویس کارآمد جهت شبکه شما یا شبکه شما و اینترنت است
که امنیت بالاتری را جهت کاربران اینترنت فراهم می کند و هم چنین می تواند
بعنوان یک کش سرور هم استفاده شود که باعث بالا رفتن بازدهی سرور شما و
سرعت آن در دسترسی به اینترنت می شود.
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 در همکاری جهت تهیه این مقاله تشکر نمایم .

Admin
Admin

تعداد پستها : 8
تاريخ التسجيل : 2009-12-14

خواندن مشخصات فردي http://p30world.forumakers.com

بازگشت به بالاي صفحه اذهب الى الأسفل

مشاهده موضوع قبلي مشاهده موضوع بعدي بازگشت به بالاي صفحه


 
صلاحيات هذا المنتدى:
شما نمي توانيد در اين بخش به موضوعها پاسخ دهيد