درخواست های ارتباط
جستجو تنظیمات
لیست دوستان من

آموزش راه اندازی Cache سرور Squid قسمت اول : نصب Squid و تحلیل فایل config

5 نظرات
با سلام خدمت دوستان عزیز ..یکی از سرویس هایی که برای مدیران شبکه ضروری میباشد سرویس پروکسی میباشد که این امکان را به مدیران شبکه میدهد که بتوانند مدیریت بهتری روی درخواست های کاربران را داشته باشند . در این آموزش قصد داریم نصب و کانفیگ یکی از محبوبترین و بهترین نرم افزارهایی که میتوان با آن پروکسی سرور راه اندازی کرد به نام Squid را آموزش دهیم .

پروکسی سرور چیست ؟


در توضیح ساده میتوان گفت پروکسی سرور وظیفه دارد درخواست هایی که از سمت کلاینت به آن ارسال میشود را دریافت کرده و تحلیل های لازم را برروی آن انجام داده و به سمت مقصد ارسال کند و اگر مقصد پاسخی برای این درخواست ارسال کرد پس از دریافت پاسخ و تحلیل آن به سمت کلاینت ارسال کند .جهت آشنایی بهتر و بیشتر پروکسی سرور مقاله زیر را مطالعه فرمایید :
آشنایی با پروکسی سرور

نصب Squid


ابتدا دستور زیر را وارد کنید تا پکیج Squid نصب شود
sudo yum install squid

جهت کانفیگ کردن Squid باید فایل squid.conf که فایل کانفیگ اصلی squid میباشد را ویرایش کرد ، برای ویرایش دستور زیر را وارد کنید
sudo vim /etc/squid/squid.conf

تحلیل فایل کانفیگ


در ابتدای فایل کانفیگ های زیر را مشاهده خواهید کرد
# Recommended minimum configuration:
#

# 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 fc00::/7       # RFC 4193 local private network range
acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines


خطهایی که با acl شروع شده است جهت تعیین کردن دسترسی ها میباشد که چه آی پی هایی درخواست هایی را که میفرستند پروکسی سرور ما بپذیرد و پردازش انجام دهد که شما میتوانید جهت امنیت بیشتر خطهایی که از پیش نوشته شده را comment کنید و به صورت دستی یک Access list برای شبکه خودتان تعریف کنید
# Recommended minimum configuration:
#

# 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 fc00::/7       # RFC 4193 local private network range
#acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines
acl localnet src 192.168.1.0/24

در اینجا فقط رنج 192.168.1.1 تا 192.168.1.254 میتوانند درخواست خود را به پروکسی سرور ارسال کنند . در اینجا ما متغیر localnet را هم تعریف کرده ایم که در ادامه به آن میپردازیم.
به همین صورت میتوانید Access list تعیین کنید .


acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT

#
# Recommended minimum Access Permission configuration:
#
# Deny requests to certain unsafe ports
http_access deny !Safe_ports

# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports


در اینجا مشخص شده است که درخواست هایی که پورت مقصد آنها پورت های بالا میباشند مورد تحلیل قرار میگیرند . نحوه کار هم به این صورت است که ۲ متغیر تعریف شده به نام های SSLports و Safeports و شماره پورت ها داخل این متغیر ریحته شده است و در دو خط پایین فقط به این پورت ها اجازه دسترسی داده شده .

# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access deny manager


در اینجا مشخص شده است که چه کسانی به Cachemanager دسترسی دارند که به صورت پیش فرض فقط localhost میباشد .Cache Manager : کامپوننتی میباشد در Squid که به ما گزارش ها و آمارهایی در مورد درخواست و کارهای Squid به صورت زنده به ما نمایش میدهد که ۲ ابزار برای اتصال به آن وجود دارد به نام های Cachmgr.cgi و Squidclient .

# from where browsing should be allowed
http_access allow localnet
http_access allow localhost
# And finally deny all other access to this proxy
http_access deny all


در اینجا متغیر گفته شده که localhost و رنج آی پی که در متغیر localnet ریخته شده است اجازه دسترسی به پروکسی سرور ما را دارند و در خط آخر هم گفته شده است که کسی به جز اینها نمیتواند وصل شود .

# Squid normally listens to port 3128
http_port 3128

نشان دهنده اینکه Squid با چه پورتی در روی سیستم ما به درخواست ها گوش میکند .

# Uncomment and adjust the following to add a disk cache directory.
#cache_dir ufs /var/spool/squid 100 16 256

مشخص کننده این میباشد که object هایی که Squid میخواهد Cache کند با چه متدی و در کدام دایرکتوری ذخیره شود .که در اینجا گفته شده با متد ufs و در دایرکتوری varspool/squid ذخیره شود و حجم آن ۱۰۰ مگابایت باشد و ابتدا ۱۶ دایرکتوری ساخته شود و در هر دایرکتوری ۲۵۶ دایرکتوری دیگر ساخته شود و در هر کدام از این فولدرها به ترتیب ذخیره سازی انجام شود .دلیل اینکار هم به این جهت میباشد که Cache Server ما سریعتر کار کند. زیرا اگر به عنوان مثال ۱۰۰۰ فایل داشته باشیم و آنهارا در چند دایرکتوری تقسیم کنیم نسبت به زمانی که در یک دایرکتوری قرار دهیم سریعتر سرچ میشود.

# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid

آدرس ذخیره سازی فایل های مربوط به Crash نرم افزار را مشخص میکند.

# Add any of your own refresh_pattern entries above these.
#
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320


refresh pattern مشخص کننده این میباشد که Object هایی که روی دیسک ذخیره شده و داخل Header خود زمانی جهت تاریخ انقضا تعیین نشده است تا چه مدتی Cache Server ما میتواند از آن استفاده کند .
قاعده نوشتاری آن به صورت زیر میباشد
refresh_pattern [-i] regex min percent max [options]

  • Regex : مشخص میکند که این قواعد روی چه Object هایی باید اعمال شود.
  • min : مدت زمان تازه بودن آن Object را مشخص میکند که برحسب دقیقه میباشد که زمانی که کلاینتی خواست از این Object استفاده کند این عدد مدنظر گرفته میشود که اگر مدت زمان ذخیره فایل کمتر از این باشد فایل تازه تلقی میگردد و تحویل کلاینت داده خواهد شد .
  • max : اگر مدت زمان ذخیره فایل از این عدد بیشتر بود فایل کهنه تلقی میگردد و سرور ما درخواست دیگری جهت دانلود این فایل به سرور مقصد ارسال خواهد کرد و بعد از دانلود فایل تحویل کلاینت میدهد .
  • percent : این عدد هم بر حسب درصد میباشد و زمانی به کار می آید که مدت ذخیره فایل در سرور ما مابین min و max باشد . در این حالت از lm-factor جهت محاسبه استفاده خواهد شد .

در بخش دوم راه اندازی Squid در حالت Full Proxy به همراه Authentication را خواهیم گفت .

پایان بخش اول
مهرداد سامی
موفق باشید
آیا این مطلب را پسندیدید؟
ردیف عنوان قیمت
1 آموزش راه اندازی Cache سرور Squid قسمت اول : نصب Squid و تحلیل فایل config رایگان
2 آموزش راه اندازی Cache سرور Squid قسمت دوم : راه اندازی Squid در حالت Full Proxy و Cache Server رایگان
3 آموزش راه اندازی Cache سرور Squid قسمت سوم : راه اندازی Basic Authenticate رایگان
4 آموزش راه اندازی Cache سرور Squid قسمت چهارم : راه اندازی Squid در حالت Transparent رایگان
  • مطلب خوبي بود بهتر هست اضافه كنم يكي از راه هاي ديگه نصب و مديريت آسان squid از طريق پنل webmin لينوكس هست كه فقط كافيه به اينترنت وصل باشيد و گزينه squid رو انتخاب كنيد و نصب رو بزنيد
    Image

    Image

    Image

  • مهرداد جان خیلی خوبه ، منتظر مطالب جدیدت هستیم و استفاده می کنیم
  • مهرداد جان بحث و آموزش خیلی خوبی رو شروع کردی امیدوارم تخصصی تر و مطالب بیشتری در خصوص این نوع پروکسی ها بر روی سایت بزاری من به شخصه خیلی مشتاق یادگیری جزییات این بحث هستم و فکر میکنم واقعا هر مهندس کامپیوتر حتما باید اطلاعات عملی کاملی از این نوع موضوع ها داشته باشه
    منتظر مطالب بعدی شما هستیم..
  • ممنون از نظرت بهروز جان ....
    من هم خودم همین قصد رو دارم که جزییات این بحث رو هم مطرح کنم و تا جایی که میتونم کامل و جامع توضیح بدم ....

    بازم ممنون ....
  • سلام ممنون بابت اموزشتون
    طبق اموزشتون پیش رفتم و squid را نصب و کانفیگ کردم ولی وقتی میخوام استفاده کنم با این ارور مواجه میشم :

    The following error was encountered while trying to retrieve the URL: http://www.google.com/

    Access Denied.

    Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect.

    اسکرین شات از ارور squid server




    Your cache administrator is root.

برای ارسال نظر ابتدا به سایت وارد شوید

arrow