صفحه اصلی arrow مقالات arrow نصب Squid به صورت شفاف

نصب Squid به صورت شفاف چاپ ارسال به دوست
رای کاربران: / 2
ضعیفعالی 
نویسنده آقای نقاش زاده   
۱۹ مرداد ۱۳۸۷

فرض کنید یک شبکه داخلی داریم با مشخصات زیر:
شبکه داخلی: ۱۹۲.۱۶۸.۱۰.۰/۲۴ روی کارت شبکه: eth1 اتصال اینترنت از طریق اتصال PPPOE و نام اتصال: ppp0 نشانی سرور: 192.168.10.1
اولین قدم تنظیم کردن سرور برای انجام Routing:
فعال کردن درگاه خروجی برای در دسترس بودن اینترنت در شبکه داخلی

ابتدا جدول NAT را خالی از تنظیمات قبلی خالی می‌کنیم:

iptables --flush -t nat

فعال کردن NAT در IPTable با خروجی ppp0:

iptables -t nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE

اجازه خروج دادن به بسته‌هایی که از کارت شبکه eth1 می‌رسند:

iptables --append FORWARD --in-interface eth1 -j ACCEPT

فعال کردن IP Forwarding در هسته لینوکس:

sysctl net.ipv4.ip_forward=1

به جای اجرای دستور بالا می‌توان در فایل etc/sysctl.conf/ مقدار net.ipv4.ip_forward را برابر یک تنظیم کرد.

در صورتی که دستورات بالا را انجام دهید، رایانه شما به یک Router ساده تبدیل می‌شود و همه رایانه‌های داخل شبکه محلی شما می‌توانند به اینترنت دسترسی پیدا کنند (البته این به این معنی نیست که سایر رایانه‌های متصل به اینترنت هم به رایانه‌های داخل شبکه شما دسترسی دارند)

در صورتی که رایانه شما Reset شود همه این تنظیمات را باید از ابتدا انجام دهید. برای اینکه تنظیمات ماندگار شود و هر بار پس از شروع به کار سرور این تنظیمات انجام شود دستورات را در فایل etc/rc.local/ اضافه کنید.

لازم به توضیح است که در تمامی دستگاه‌های شبکه باید نشانی Gateway روی کامپیوتر Server تنظیم شده باشد. برای راحتی می‌توان از سرویس‌دهنده DHCP استفاده کرد.

برای نصب سرویس‌دهنده DHCP در Ubuntu از دستور:

apt-get install dhcp

استفاده می‌کنیم. قبل از راه اندازی سرویس‌دهنده dhcp باید تنظیمات آن را در فایل etc/dhcpd.conf تنظیم کنیم. توجه داشته باشید در این فایل هر قسمت از تنظیمات با سمی‌کالون از هم مجزا می‌شود.

نام دامنه شبکه:
option domain-name "dsi.local";

مشخص کردن محل سرویس‌دهنده DNS پیش‌گزیده:

option domain-name-servers 192.168.10.1;

مشخص کردن Mask پیش‌گزیده شبکه داخلی:

option subnet-mask 255.255.255.0;

مشخص کردن زمان پیشفرض تمدید:

default-lease-time 18000;

مشخص کردن حداکثر زمانی که IP به یک دستگاه تعلق خواهد گرفت:

max-lease-time 72000;

مشخص کردن یک محدوده برای اختصاص IP به رایانه‌های داخل شبکه:

subnet 192.168.10.0 netmask 255.255.255.0 {

محدوده اختصاص شبکه:

 range 192.168.10.20 192.168.10.99;

تنظیم نشانی Broadcast این شبکه:

 option broadcast-address 192.168.10.255;

تعیین نشانی Router در این شبکه:
option routers 192.168.10.1;

}

برای راه‌اندازی سرور DHCP باید دستور

/etc/init.d/dhcp start

را اجرا کنید. البته از این به بعد بعد از شروع به کار سرور این سرویس‌دهنده به صورت خودکار اجرا خواهد شد.

این تنظیمات به خوبی کار می‌کند اما در صورتی که تعداد کاربران شبکه داخلی زیاد باشد شاید بهتر باشد که با استفاده از یک Cache سرور سرعت مرور وب را بالا ببرید. یکی از معروف‌ترین Cache سرورهای وب، Squid است.

برای نصب Squid در Ubuntu از دستور:

apt-get install squid

استفاده کنید.

برای استفاده از آن ابتدا باید تغییراتی در فایل تنظیمات که در محل etc/squid/squid.conf/ قرار دارد انجام دهیم.

توجه داشته باشید که squid داری تنظیمات بسیار زیادی است و تنظیم آن برای عملکرد بهینه نیاز به تجربه و دانش دارد اما بودند Squid اغلب از نبودنش بسیار بهتر است بخصوص در مکان‌هایی مانند کافی‌نت‌ها که اطلاعات مشترک زیادی توسط کاربران مشاهده می‌شود.

اولین تنظیم مربوط است به مشخص کردن درگاه Squid:

http_port 3128 transparent

کلمه Transparent در اینجا به این معنی است که علاوه بر پاسخ به درخواست‌های مستقیم، از درخواست‌های تغییر مسیر داده شده به منظور استفاده به عنوان transparent proxy پشتیبانی کند. در صورتی که در نظر دارید از DNS سروری بجز DNS سرور پیش فرض کامپیوتر Server برای سرویس‌دهی به درخواست‌ها استفاده کنید اینجا مشخص می‌کنید:

dns_nameservers 127.0.0.1

مهمترین قسمت تنظیمات Squid مشخص کردن سیاست‌های استفاده از Squid است.

ابتدا معرفی شبکه داخلی:

acl dsinet src 192.168.10.0/24

سپس معرفی همه نشانی‌ها و نشانی کامپیوتر محلی:

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8

و البته بعد از آن باید برای استفاده از Squid اجازه دهیم:

http_access allow dsinet

و البته سلب اجازه از بقیه رایانه‌ها (خارج از شبکه داخلی) برای استفاده از Proxy Server ما:

http_access deny all

در تنظیمات پیش‌فرض Squid فقط به تعدادی از Portها که با عنوان Safe_ports می‌شناسید سرویس می‌دهد (از جمله 80 برای سرویس http)

بهتر است برای Proxy Serverمان یک اسم هم انتخاب کنیم. این نام در پیام‌های نمایش داده شده به کاربران Proxy Server نمایش داده می‌شود:

visible_hostname DSI_Cache_Server

همین مقدار تغییرات برای شروع کار ما کافی است. البته شما می‌توانید با تنظیماتی مانند Delay poolها و Refresh patternّها و تغییر میزان حافظه مصرفی Squid و ... در نحوه عملکرد و کارایی Squid تغییراتی ایجاد کنید.

با انجام تغییرات بالا و راه‌اندازی Squid کاربران شبکه می‌توانند با تنظیم Proxy روی سرور شما، سرعت بیشتری در مرور وب را تجربه کنند. شاید مهمترین دلیل استفاده از Cache سرورهایی نظیر Squid صرفه‌جویی در پهنای باند مصرفی یک سازمان باشد. برای همین اغلب بهتر است تنظیمات سرور را به گونه‌ای تغییر دهیم که درخواست کاربران بدون نیاز به تنظیم دستی در Browser از مسیر Cache سرور عبور کند برای این کار باز هم باید از iptables استفاده کنیم:

قبول بسته‌های با مقصد درگاه 80 که از شبکه داخلی می‌آیند

iptables -t nat -A PREROUTING -s 192.168.10.1/32 -p tcp --dport 80 -j ACCEPT

و تغییر مسیر آنها با استفاده از DNAT به درگاه 3128 که Squid به آن پاسخ می‌دهد:

iptables -t nat -A PREROUTING -i eth1 -s 192.168.10.0/24 -p tcp --dport 80 -j DNAT --to 192.168.10.1:3128

در فرمان فوق می‌توانستیم i eth1- را حذف کنیم و فقط با استفاده از سوییچ s- مبدا بسته‌ها را مشخص کنیم.

خوب! ما الان یک شبکه داریم که رایانه‌های متصل به آن تنظیمات مربوط به IP را به صورت خودکار دریافت می‌کنند، همه رایانه‌ها به اینترنت دسترسی دارند و البته به دلیل استفاده از Transparent Cache Serverی که راه‌اندازی کرده‌ایم می‌توانیم در پهنای باند صرفه‌جویی کنیم.

برای بهینه‌سازی سرعت شاید بد نباشد این دو کار را هم انجام دهیم:

الف. نصب یک DNS Cache Server

ب. حذف تبلیغات تجاری از صفحات وب!

نکته پایانی: بد نیست گاهی به عنوان مدیر شبکه به فایل var/log/squid/access.log/ هم نگاهی بیاندازیم و تنظیمات Squid را با استفاده از آن بهینه کنیم.

منبع: ylog.ir

بازدید: 420

اولین یادداشت برای این مطلب
 RSS یادداشت ها

ایجاد یادداشت
  • لطفا نظرات خود را در مورد این مطلب در اینجا ثبت کنید
نام:
پست الکترونیکی شما:
وب سایت شما:
عنوان:
BBCode:Web AddressEmail AddressBold TextItalic TextUnderlined TextQuoteCodeOpen ListList ItemClose List
یادداشت



کد امنیتی: (کد مقابل را داخل کادر وارد کنید)* Code
ارسال یک رونوشت از یادداشت به پست الکترونیک شما

آخرین بروز رسانی ( ۱۹ مرداد ۱۳۸۷ )
<قبل   بعد>