نمایش نتایج: از شماره 1 تا 1 از مجموع 1
سپاس ها 3سپاس

موضوع: نصب و پیکربندی Squid

  
  1. #1
    نام حقيقي: Peyman Yousefi

    عضو ویژه شناسه تصویری darklove
    تاریخ عضویت
    Oct 2005
    محل سکونت
    ABHAR
    نوشته
    3,330
    سپاسگزاری شده
    1005
    سپاسگزاری کرده
    318
    نوشته های وبلاگ
    7

    نصب و پیکربندی Squid

    نصب و راه اندازی سرویس Squid
    یک پراکسی سرور یک سرویس کارآمد جهت شبکه شما یا شبکه شما با اینترنت است که امنیت بالاتری را جهت کاربران اینترنت فراهم می کند و هم چنین می تواند بعنوان یک کش سرور استفاده شود که باعث
    صرفه جویی در پهنای باند و بالا رفتن سرعت اینترنت شما شود.
    Squid یکی از بسته های لینوکس میباشد که لینوکس را به عنوان یک پروکسی سرور یا همان کش سرور نتظیم میکند
    حالا میرویم Squid را نصب کنیم
    اگر داخل CD Linux قرار داشت این دستورات را در ترمینال لینوکس وارد میکنیم با کاربر ریشه وارد میشویم و بعد دستورات زیر را وارد میکنیم
    # mount /media/cdrom
    # rpm –ivh /media/cdrom/Fedora Core/RPMS/squid-*.rpm
    توجه کنید این مسیر بر حسب مثال بوده شما باید مسیر کامل را وارد کنید
    و بعد ار نصب این دستور را در ترمینال وارد میکنید
    umount /media/cdrom
    اگر شما RPM یا Pack Squid را نداشتید میتوانید Source برنامه را از سایت www.squid-cache.org دریافت نموده و آن را Compile کرده و استفاده نمایید
    موقعی که شما Source برنامه را دریافت میکنید این فایل یک فایل فشرده میباشد که باید ابتدا آن را Extract نمایید که با دستور زیر این کار را میکنیم
    # tar -zxf squid-2.5.STABLE4-src.tar.gz
    حالا فایل فشره باز شده و فولدر با نام فایل به وجود آمده داخل فولدر شده و عملیات Compile را شروع میکنیم
    # cd squid-2.5.STABLE4
    # ./configure
    # make all
    # make install
    بعد از وارد کردن دستورات بالا Squid بر روی سیستم ما نصب شده و ما میخواهیم فایل squid.conf را پیکربندی کنیم
    تذکر: برای نصب Squid بهتر است همیشه RPM Squid را نصب کنیم.
    حالا بسته به نوع روش نصب ما squid.conf در مسیرهای مختلفی قرار میگیرد که ما با دستور
    locate squid.conf
    فایل squid.conf را پیدا میکنیم و میریم سراغ پیکربندی (در اینجا مسیر را /etc/squid/squid.conf در نظر میگیریم)
    فایل squid.conf دارای صد و بیست وپنح برچسب(Tag) جهت انجام تنظیمات است که ما در اینجا به همه آن ها اشاره نخواهیم داد و به اصلی ترین آن ها اشاره خواهیم نمود
    خود فایل squid.conf دارای توضیحاتی میباشد که میتوانید برای کمک از آنها هم استفاده نمایید.
    حالا فایل مورد نظر(squid.conf) را پیکربندی میکنیم
    http_port
    از این گزینه برای مشخص کردن پورت پروکسی استفاده میشود یا به عبارتی آدرس درگاهی را که squid از آن به درخواست های سرویس‌گیرنده‌ها گوش می دهد که پیش فرض 3128 میباشد که ما میتوانیم از چندین پورت استفده کنیم اگر از پروکسی سرور به عنوان وب سرور نیز استفاده میشود پورت 80 را نیز قرار میدهیم و یا اگر سیستم شما چند IP دارد و میخواهید به یک رنج گوش دهد به این صورت عمل میکنید
    http_port 8080 3128
    http_port 80 3128
    http_port 45.58.69.8 3128
    icp_port
    مخفف Internet Cache Portocol میباشد که از این برچسب موقعی استفاده میشود که بخواهیم چند کش سرور را به هم متصل نمایم تا از اطلاعات همدیگر استفاده نماین که پورت پیش فرض آن 3130 میباشد
    icp_port 3130
    cache_peer Ip Or ProxyDomain parent 3128 3130
    از این گزینه برای ارتباط با با کش سرورهای دیگر استفاده میشود که IP Or ProxyDomain کش سرور دیگر داده میشود Parent نوع کشینگ که سه حالت میباشد و پورت کش با پورت ICP که به شکل زیر استفاده میکنیم
    cache_peer 217.218.155.147 parent 3128 3130
    cache_peer 214.215.155.14 sibling 3128 3130
    که sibling فقط Object های کش شده را Share میکند
    hierarchy_stoplist
    این برچسب یکی از برچسب های مهم Squid میباشد که میگوید مثلا
    hierarchy_stoplist cgi-bin ?
    پوشه های cgi-bin کش به همراه? هر فایلی داخل این پوشه(cgi-bin) بود کش نشود که پیش فرض آن این است
    hierarchy_stoplist cgi-bin ?

    acl QUERY urlpath_regex cgi-bin \?
    no_cache deny QUERY
    این دو خط هم از برچسب های مهم Squid میباشند که برای این میباشد که پوشه cgi-bin و آدرس بعد این پوشه \? به هیچ وضح کش نشود no_cache
    پوشه cgi-bin فایلهای با پسوند *.cgi را دارد که این فایلها مانند سایت Dynamic میباشند و بهتر است هیچ وقت کش نشوند چون اطلاعات این فایلها همیشه تغییر میکند این آدرس داخل فایل squid.conf قرار ندهید این مثال از cgi-bin میباشد.
    http://55.59.57.52/cgi-bin/cachemgr.cgi
    پیش فرض همین برچسبها خودشان میباشد
    acl QUERY urlpath_regex cgi-bin \?
    no_cache deny QUERY

    cache_mem
    مقدار حافظه ای که Squid برای عملیات خود در احتیاج دارد که بهتر است این مقداربسته به اندازه Ram شما بیشتر از 200-128 نباشد و از مقدار بر حسب MB میباشد
    cache_mem 64 MB

    maximum_object_size
    بیشترین حجم فایلی که Squid میتواند کش کند را مشخص میکند که اگر این حجم زیاد باشد کش سرور شما از لحاظ امنیتی دچار ضعف شده و هکرها به راحتی میتوانند با درخواست های سنگین سرور شما را از پا در بیارند و مقدار فایل را شما با KB یا MB میتوانید مشخص کنید سعی کنید حجم فایل بیشتر از 128 MB نباشد
    maximum_object_size 100 MB

    minimum_object_size
    کمترین حجم فایلی که Squid میتواند کش کند که سعی شود این را همیشه 0 KB بگذارید اگر Bit یا Byte گذاشته شود Squid اخطار میدهد و Run نخواهد شد
    minimum_object_size 0 KB

    cache_dir Type Directory-Name Fs-specific-data L1 L2
    محل ذخیره objectهای Cache شده را مشخص میکند که Type مشخ کننده فرمت ذخیره شدن میباشد (Format Cache Dir) Directory-Name محل ذخیره شدن یا مسیر ذخیره کردن Object Fs حجم داده‌ها بر روی دیسک بر حسب (مگابایت) را مشخص می کند پارامترهای چهارم و پنجم تعداد زیر شاخه ها (اولین و دومین رده) برای ایجاد در این مسیر را مشخص می‌کنند.
    فرمت به ترتیب عبارتند از
    ufs فرمت قدیمی Squid میباشد
    aufs فرمت که بعد از ufs وارد شد
    diskd بهترین فرمت Squid که دارای 2 Option میباشد که از این مثال خواهم زد.
    cache_dir diskd /var/spool/squid 3000 32 128 Q1=64 Q2=72
    Q1 وQ2 از Option فرمت diskd میباشد که پیش فرض 64 و72 میباشند
    cache_access_log
    cache_store_log
    cache_log
    این سه برچسب برای گرفتن Log از کارکرد Squid و اینکه کاربران به چه سایتی میروند و کدام Object در حال کش شدن میباشد که Log مقداری از حجم هارد دیسک شما را خواهد گرفت اگر هارد شما حجم کمی دارد بهتر است این Log ها را None کنید تا هارد شما فضای خالی داشته باشد برای none کردن به این شکل عمل میکنیم
    cache_access_log none
    cache_store_log none
    cache_log none
    و اگر هارد شما فضا زیاد دارد و میخواهید Log داشته باشید به این شکل عمل کنید
    cache_access_log /var/log/squid/access.log
    cache_store_log /var/log/squid/store.log
    cache_log /var/log/squid/cache.log
    که اگر این کار را انجام دهید احتیاج به یک برچسب دیگری به نام
    logfile_rotate
    دارید که این برچسب بر حسب روزی که مشخص میکنید Log فایلهای شما را فشره کرده تا حجمی که Log فایل میگیرد کم شود اگه این برچسب گذاشته نشود Squid شما بعد از مدتی به خاطر یاد شدن Log میخوابد و تا موقعی که Log ها را پاک نکرده Run نمیشود
    logfile_rotate 4

    ftp_user
    برای انتقال فایلهای که از سور سرور FTP احتیاج به نام کاربر دارند مورد استفاده میشوند که شما میتوانید ایمیل خود را داده یا از کاربر میهمان anonymous استفاده نمایید
    ftp_user anonymous@

    dns_nameservers
    Squid از DNS های که در فایل /etc/resolv.conf استفاده میکند شما با این برچسب میتوانید از DNS های دیگر استفاده نمایید
    dns_nameservers 192.9.9.3 4.2.2.2

    auth_param
    از این ابزار برای احزار هویت کاربران استفاده میشود که پیش فرض آن چند خط میباشد
    auth_param basic children 5
    auth_param basic realm Squid proxy-caching web server
    auth_param basic credentialsttl 2 hours
    auth_param basic casesensitive off
    که از لحاظ امنیتی باید 2 برچسب دیگر اضافه نماییم تا امنیت سرور بالا رود
    authenticate_ttl 1 hour
    authenticate_ip_ttl 2 seconds
    پارامتر authenticate_ttl تعریف کننده این مورد است که تا چه مدت زمان Squid اطلاعات Authenticate کلاینت را به خاطر بسپارد . این تنظیم در واقع کلاینت را وادار می‌نماید که تا بعد از یک دوره زمانی خود را دوباره Authenticate کند
    request_header_max_size
    این پارامتر در این رابطه استفاده می‌شود که تا مقدار سایز قابل پذیرش HTTP Header را محدود نماید . مقدار پیش فرض در اینجا ۱۰ کیلو بایت بوده که از مقدار منطقی بیشتر به نظر میرسد به این دلیل که سایز متوسط header ۵۱۲ بایت است در صورتی که سنگین ترین header ممکن است در حد کیلوبایت باشند. بیشتر حملات DoS نسبت به پراکسی سرورها اینگونه رخ می‌دهد که headerهایی برای آن‌ها فرستاده شود که از مقداری که پراکسی سرور می‌تواند جوابگو باشد بیشتر باشد که شما میتوانید مقدار آن را تغییر دهید سعی منید بیشتر از 10 KB نباشد
    request_header_max_size 8 KB

    refresh_pattern
    این برچسب یکی از مهمترین برچسب های Squid میباشد که برای Refresh کردن سایتهابه کار برده میشود که موقعی که سایت به روز شد یا تغییراتی در آن اعمال شد و موقعی که کاربر آن سایت را درخواست کرد این برچسب سایت را مجددا سایت را بازبینی Refresh میکند اگر این برچسبها درست باشد موقعی که سایت در خواست شد سایت فورا سایت باز میشود حتی اگر به روز شده باشد نیز نشان داده میشود اگر اشتباه باشد در باز شدن سایت تاخیر به وجود می آید و یا اگر سایت به روز شده باشد چیزی نشان داده نمیشود.
    من چند خط اینجا قرار میدهم که درست میباشد و شما میتوانید از آنها استفاده نمایید
    refresh_pattern ^ftp: 1440 60% 10080
    refresh_pattern ^gopher: 1440 20% 1440
    refresh_pattern . 0 30% 4320
    اینها هم Refresh_pattern های Microsoft که تغییراتی داده ام تا درست کار کنند
    refresh_pattern http://*.windowsupdate.microsoft.com/ 0 60% 20160
    refresh_pattern http://office.microsoft.com/ 0 60% 20160
    refresh_pattern http://windowsupdate.microsoft.com/ 0 60% 20160
    refresh_pattern http://wxpsp2.microsoft.com/ 0 60% 20160
    refresh_pattern http://xpsp1.microsoft.com/ 0 60% 20160
    refresh_pattern http://w2ksp4.microsoft.com/ 0 60% 20160
    refresh_pattern http://download.microsoft.com/ 0 60% 20160

    Time Out
    در این قسمت تعدادی برچسب وجود دارد که Time Out انها در اینجا تعیین میشود که میتوانید اینها را بدین شکل پیکربندی نمایید
    negative_ttl 5 minutes
    positive_dns_ttl 30 minutes
    negative_dns_ttl 1 minute
    connect_timeout 1 minute
    read_timeout 15 minutes
    request_timeout 5 minutes
    client_lifetime 14 hours
    pconn_timeout 120 seconds
    shutdown_lifetime 10 seconds
    که اینجا به توضیح دو برچسب میپردازیم که از لحاظ امنیتی مهم هستند
    برچسب client_lifetime بیشترین زمانی است که کلاینت می‌تواند به عنوان یک پروسه Squid قرار گرفته باشد. در واقع این تنظیم سرور شما را از باز بودن تعداد زیادی سوکت محافظت می‌نماید . بستگی به شرایط شما ممکن است 8 ساعت مناسب باشد در صورتی که پیش فرض آن 1 روز کمی‌زیاد به نظر می‌رسد. با بررسی در مورد وصل شدن کلاینت‌ها می‌توان زمان مناسب را تشخیص داد یک نفوذگر می‌تواند با استفاده از lifetime طولانی تعداد زیادی سوکت را باز نماید و این خود باعث نوعی حمله DoS می‌گردد. اما پارامتر pconn_timeout شبیه به client_lifetime می‌باشد با این تفاوت که فقط شامل ارتباط بیکار(Idle Connection) ها می‌گردد.
    acl
    مخفف Access Control List میباشد جهت کنترل دسترسی به Cache مورد استفاده قرار می گیرد. در کنترل دسترسی دو عنصر وجود دارد: کلاس ها و عملگرها
    کلاس ها: یک کلاس معمولا به مجموعه ای از کاربرها ارجاع داده می‌شود(IP Range)
    عملگرها: روی مجموعه ای از acl ها برای ICP و HTTP عمل می کند. یعنی شما می توانید مجموعه های مختلفی از پروتکل های مختلف داشته باشید. برای هر پروتکل یک acl_operator متفاوت وجود دارد. به عنوان مثال برچسب های icp_access و http_access و snmp_access

    برای رد نمودن ویروسهایی که از CMD برای انتقال اسفاده میکنند
    acl VIRCMD urlpath_regex winnt/system32/cmd.exe?
    http_access deny VIRCMD
    برای تعریف یک رنج IP
    acl mynet src 217.218.0.0/24
    http_access allow mynet
    برای مسدود کردن سایتهای که حاوی کلمات خاصی هستند
    acl badurl url_regex –i sx
    http_access deny badurl
    برای مسدود کردن پورتهای که از کش سرور رد میشوند
    acl badports port 7 20 81
    http_access deny badports
    اجازه دسترسی در زمان خاص(روز-ساعت)
    acl shab time 17:00-24:00
    http_access allow shab
    به طور پیش فرض در Squid چند خط acl وجود دارد که میتوانید از آنها استفده نمایید
    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 local src 192.168.0.0/24
    acl SSL_ports port 443 563
    acl Safe_ports port 80 # http
    acl Safe_ports port 21 # ftp
    acl Safe_ports port 443 563 # https, snews
    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

    http_access allow manager localhost
    http_access deny manager
    http_access deny !Safe_ports
    http_access deny CONNECT !SSL_ports
    http_access allow localhost
    http_access allow local
    http_access deny all
    icp_access allow all
    که من این چند خط رو در این مقاله قرار دادم تا شما به راحتی بتوانید استفده متید تنها کافی است که شما Ip خود را در acl مربوط به local قرار دهید
    reply_body_max_size
    با استفاده از این برچسب میتوانید یک رنج را محدود به استفاده از اینترنت نمایید که بر حسب bytes میباشد
    acl net src 192.168.1.0/24
    reply_body_max_size 800000000000 allow net

    cache_mgr
    اگر Squid از کار بیفتد، یک e-mail به آدرس مشخص شده با برچسب cache_mgr ارسال می شود. همچنین این آدرس به انتهای صفحه های خطایی که به کاربران ارسال می‌شود، اضافه می شود
    cache_mgr Metal_S2004@Yahoo.CoM

    cache_effective_user
    cache_effective_group
    Squid اگر به عنوان root شروع شود، تنها می تواند به پورت های شماره پایین (مثل پورت80 ) بچسبد. در ضمن از لحاظ امنیتی هم صحیح نیست که پروسه‌ای به عنوان root در حال اجرا باشد. Squid به محض چسبیدن به پورت شبکه ID های گروه و کاربر را تغیر می دهد. این ID ها را به صورت زیر مشخص می کنیم
    cache_effective_user squid
    cache_effective_group squid

    visible_hostname
    برای پروکسی سرور یک نام مشخص میکنیم
    visible_hostname CacheServer

    httpd_accel_host
    اگر ما بخواهیم از Squid برای پروکسی استفاده کنیم باید این برچسب را در squid.conf گذاشته این برچسب به این معنی است که پروکسی برای کجا استفده میشود که پیش فرض آن virtual میباشد که همه کس از هر جای دنیا میتوانند استفاده کنند یا میتوانید IP بدهید تا فقط یک رنج بتواند به عنوان پروکسی استفده کنید
    httpd_accel_host virtual
    httpd_accel_host 217.218.155.140

    httpd_accel_port
    مشخص کننده این است که به چه پورتهایی جواب بدهم که پیش فرض آن 80 میباشد
    httpd_accel_port 80

    httpd_accel_with_proxy
    مشخص کننده این است که آیا به عنوان پروکسی سرور در شبکه عمل کنم یا نه اگر پهنای باند شما کم میباشد بهتر است این گزینه را off کنید زیرا که اگر on باشد همه میتوانند از پروکسی سرور شما استفاده نمایند
    httpd_accel_with_proxy off
    httpd_accel_uses_host_header
    این برچسب کنترل کننده کاربرانی هست که از پروکسی سرور شما استفاده میکنند که همیشه این برچسب باید on باشد
    httpd_accel_uses_host_header on
    این 4 برچسب همیشه باید در squid.conf باشد تا بتوان کش سرور را run کرد

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



    موضوعات مشابه:
    ویرایش توسط darklove : 2006-07-15 در ساعت 04:43 PM
    FireWall، Iman.gh و mesripoor6 سپاسگزاری کرده‌اند.

کلمات کلیدی در جستجوها:

نصب squid proxy

تغییر پورت ccproxy

تغییر پورت squid

پیکربندی squidپيكربندي اسكوئيدكشينگ در فولدرsquid حجم هاردهويت کاربران در اسکوئیدتغيير پورت اسكوئيدپروکسی سرور اسکوئیدتعویض پورت کش squidبرای مشخص کردن تعداد روز در ccproxyccproxy.rpmنتايج كشينگ در اسكوئيد تنظیم و پیکربندی کش سرور اسکوئیدsquid persiannetworks.comرای تغغر رمز پروکسیتغییر پورت سرور پراکسی لینوکسدستورات کامل squidدستور لینوکسsgidفرق proxy server squidنصب https روی لینوکسنصب کامل squidlinux محل ادرس پورت های ذخیره شده در احراز هویت با استفاده از وب در اسکوئید

برچسب برای این موضوع

مجوز های ارسال و ویرایش

  • شما نمی توانید موضوع جدید ارسال کنید
  • شما نمی توانید به پست ها پاسخ دهید
  • شما نمی توانید فایل پیوست ضمیمه کنید
  • شما نمی توانید پست های خود را ویرایش کنید
  •