• مقایسه برنامه های حسابداری ترافیک رایگان SQUID. پیکربندی و پارامترهای اساسی SQUID پارامترهای جفت شده مدل ماهی مرکب

    اخیراً شرکت ما نیاز به انتقال سرورهای پروکسی از سرور MS ISA به نرم افزار رایگان داشت. انتخاب یک سرور پروکسی (Squid) زمان زیادی طول نکشید. با استفاده از چند توصیه عملی، پروکسی را برای نیازهایمان پیکربندی کردم. هنگام انتخاب یک برنامه برای ترافیک حسابداری، برخی از مشکلات به وجود آمد.

    الزامات این بود:

    1) نرم افزار رایگان
    2) توانایی پردازش لاگ ها از پراکسی های مختلف در یک سرور
    3) توانایی ساخت گزارش های استاندارد ارسال شده از طریق پست یا پیوند به یک وب سرور
    4) ایجاد گزارش برای بخش های جداگانه و ارسال چنین گزارش هایی به روسای بخش ها یا ارائه دسترسی از طریق پیوند در یک وب سرور

    برای برنامه‌های حسابداری ترافیک، توسعه‌دهندگان اطلاعات بسیار کمیاب را ارائه می‌کنند: شرح مختصری از هدف برنامه، به‌علاوه چند تصویر از صفحه به عنوان یک جایزه اختیاری. بله، واضح است که هر برنامه ای میزان ترافیک در روز/هفته/ماه را محاسبه می کند، اما ویژگی های جالب دیگری که یک برنامه را از برنامه های دیگر متمایز می کند، توضیح داده نشده است.

    تصمیم گرفتم این پست را بنویسم که در آن سعی می کنم مزایا و معایب چنین برنامه هایی و همچنین برخی از "تراشه های" کلیدی آنها را شرح دهم تا در انتخاب کسانی که باید این کار را انجام دهند، کمی کمک کنم.

    نامزدهای ما:

    SARG
    free-sa
    ماهی نورانی
    اسکویدانالایزر
    ScreenSquid

    عقب نشینی

    اطلاعات مربوط به "سن" برنامه و انتشار آخرین نسخه، پارامتر مقایسه نیست و صرفا جهت اطلاع ارائه شده است. من سعی خواهم کرد فقط عملکرد برنامه را با هم مقایسه کنم. همچنین، من عمداً برنامه های خیلی قدیمی را که سال هاست به روز نشده اند در نظر نگرفتم.

    لاگ ها به شکلی که توسط ماهی مرکب ایجاد شده اند برای پردازش به آنالیزور منتقل می شوند و برای ایجاد تغییرات در آنها تحت هیچ گونه پیش پردازشی قرار نمی گیرند. پردازش سوابق نادرست و کلیه تغییرات احتمالی فیلدهای گزارش باید توسط خود آنالیزور انجام شود و فقط در گزارش موجود باشد. این مقاله یک راهنمای راه اندازی نیست. مسائل مربوط به پیکربندی و استفاده را می توان در مقالات جداگانه پوشش داد.

    پس بیایید شروع کنیم.

    SARG - تولید کننده گزارش تجزیه و تحلیل ماهی مرکب

    قدیمی ترین در میان برنامه های پشتیبانی شده این کلاس (توسعه در سال 1998 آغاز شد، نام سابق - sqmgrlog). آخرین نسخه (نسخه 2.3.10) آوریل 2015 است. پس از آن، چندین بهبود و اصلاح وجود داشت که در نسخه اصلی موجود است (با استفاده از git از sourceforge قابل دانلود است).

    برنامه به صورت دستی یا توسط cron شروع می شود. می‌توانید آن را بدون پارامتر اجرا کنید (سپس تمام پارامترها از فایل پیکربندی sarg.conf گرفته می‌شوند)، یا می‌توانید پارامترهایی را در خط فرمان یا اسکریپت مشخص کنید، برای مثال، تاریخ‌هایی را که گزارش برای آن تولید می‌شود.

    گزارش ها به صورت صفحات html تولید می شوند و در فهرست /var/www/html/squid-reports (به طور پیش فرض) ذخیره می شوند. می توانید پارامتری را تنظیم کنید که تعداد گزارش هایی را برای ذخیره در فهرست مشخص می کند. به عنوان مثال 10 روزانه و 20 هفتگی، قدیمی ترها به طور خودکار حذف می شوند.

    امکان استفاده از چندین فایل پیکربندی با پارامترهای مختلف برای گزینه‌های گزارش مختلف وجود دارد (مثلاً برای گزارش‌های روزانه، می‌توانید پیکربندی خود را ایجاد کنید که در آن گزینه ایجاد نمودار غیرفعال می‌شود و دایرکتوری متفاوتی برای آن مشخص می‌شود. خروجی گزارش).

    به تفصیل

    هنگام ورود به صفحه اصلی با گزارش ها، می توانیم دوره ای که برای آن ایجاد شده است (تعریف شده در پارامترهای ایجاد گزارش)، تاریخ ایجاد آن، تعداد کاربران منحصر به فرد، کل ترافیک دوره، میانگین مقدار ترافیک به ازای هر کاربر

    هنگام انتخاب یکی از دوره‌ها، می‌توانیم گزارش بازدیدکنندگان را برای این دوره دریافت کنیم. در مرحله بعد، من توضیحات و نمونه هایی از انواع گزارش هایی را که SARG می تواند انجام دهد، ارائه خواهم داد.

    1) topusers - کل ترافیک توسط کاربران. کاربر یا نام میزبانی است که به آن دسترسی به اینترنت داده شده است یا ورود کاربر. مثال گزارش:


    آدرس های IP در اینجا نمایش داده می شود. هنگامی که برای فعال کردن گزینه مربوطه پیکربندی می شود، آدرس های IP به نام دامنه تبدیل می شوند.

    آیا از احراز هویت استفاده می کنید؟ حساب ها به نام های واقعی تبدیل می شوند:

    ظاهر را می توان در فایل css سفارشی کرد. ستون های نمایش داده شده نیز قابل تنظیم هستند، می توانید موارد غیر ضروری را حذف کنید. مرتب سازی ستون پشتیبانی می شود (sortable.js).

    وقتی روی نماد نمودار در سمت چپ کلیک کنید، نمودار مشابهی را مشاهده خواهید کرد:


    وقتی روی نماد سمت راست کلیک کنید، گزارش 5 را دریافت می کنیم.

    2) سایت های برتر - در مورد محبوب ترین سایت ها گزارش دهید. به طور پیش فرض، لیستی از 100 سایت محبوب نمایش داده می شود (مقدار تنظیم شده است). با استفاده از عبارات منظم یا تنظیم نام مستعار، می توانید ترافیک را از دامنه های سطح 3 و بالاتر به دامنه سطح 2 (مانند تصویر صفحه) ترکیب کنید یا هر قانون دیگری را تنظیم کنید. برای هر دامنه، می توانید یک قانون جداگانه تنظیم کنید، به عنوان مثال، برای yandex.ru و mail.ru، تا سطح 3 ترکیب کنید. معنی فیلدها کاملاً واضح است.


    3) sites_users - گزارشی در مورد اینکه چه کسی از یک سایت خاص بازدید کرده است. همه چیز در اینجا ساده است: نام دامنه و اینکه چه کسی به آن دسترسی داشته است. ترافیک اینجا نمایش داده نمی شود.


    4) users_sites - گزارشی از سایت های بازدید شده توسط هر کاربر.


    اینجا هم همه چیز مشخص است. اگر روی نماد ستون اول کلیک کنید، یک گزارش دریافت خواهید کرد. viii).

    5) date_time - توزیع ترافیک کاربر بر اساس روز و ساعت.


    6) رد شد - درخواست ها توسط ماهی مرکب مسدود شدند. این نشان می دهد که چه کسی، چه زمانی و کجا دسترسی به آن ممنوع شده است. تعداد ورودی ها قابل تنظیم است (پیش فرض 10 است).


    7) auth_failures - خرابی های احراز هویت. HTTP/407.
    تعداد ورودی ها قابل تنظیم است (پیش فرض 10 است).


    8) site_user_time_date - نشان می دهد که کاربر در چه زمانی از کدام سایت و از کدام دستگاه بازدید کرده است.

    9) دانلودها - لیست دانلودها.


    10) useragent - گزارشی از برنامه های مورد استفاده

    قسمت اول گزارش آدرس IP و عوامل کاربری استفاده شده را نمایش می دهد.


    در دوم - یک لیست کلی از عوامل کاربر با توزیع درصد، با در نظر گرفتن نسخه ها.


    11) redirector - گزارش نشان می دهد که دسترسی به چه کسانی با استفاده از مسدود کننده مسدود شده است. Squidguard، dansguardian، rejik پشتیبانی می شوند، قالب لاگ قابل تنظیم است.


    SARG دارای بیش از 120 تنظیمات است، پشتیبانی از زبان (100٪ پیام ها به روسی ترجمه می شوند)، پشتیبانی از عبارات منظم، کار با LDAP، امکان دسترسی کاربران فقط به گزارش های خود در وب سرور (از طریق htaccess). توانایی تبدیل لاگ ها به فرمت خود برای صرفه جویی در فضا، صادرات گزارش ها به یک فایل متنی برای تکمیل بعدی پایگاه داده، کار با فایل های لاگ squid (تقسیم یک یا چند فایل گزارش در روز).

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

    می‌توانید گزارش‌ها را از طریق ایمیل ارسال کنید، با این حال، در حال حاضر فقط گزارش topusers پشتیبانی می‌شود و خود نامه یک پیام متنی ساده بدون پشتیبانی HTML خواهد بود.

    می‌توانید کاربران یا میزبان‌های خاصی را از پردازش مستثنی کنید. شما می توانید نام مستعار را برای کاربران تنظیم کنید، ترافیک چندین حساب را در یک حساب ترکیب کنید، به عنوان مثال، همه افراد خارجی. همچنین می توانید برای سایت ها نام مستعار تنظیم کنید، به عنوان مثال چندین شبکه اجتماعی را در یک نام مستعار ترکیب کنید، در این صورت تمام پارامترهای دامنه های مشخص شده (تعداد اتصالات، حجم ترافیک، زمان پردازش) خلاصه می شود. یا با استفاده از یک عبارت منظم، می‌توانید دامنه‌های بالاتر از سطح 3 را «رد کنید».
    این امکان وجود دارد که لیست کاربرانی را که از حجم معینی برای این دوره فراتر رفته اند در فایل های جداگانه آپلود کنید. خروجی چندین فایل خواهد بود، به عنوان مثال: userlimit_1G.txt - بیش از 1 گیگابیت، userlimit_5G.txt - بیش از 5 گیگابایت، و غیره - در مجموع 16 محدودیت.

    SARG همچنین دارای چند صفحه PHP در زرادخانه خود است: برای مشاهده اتصالات فعلی به squid و برای افزودن نام دامنه به لیست های بلوک squidguard.

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

    free-sa

    توسعه داخلی. از نوامبر 2013 هیچ نسخه جدیدی وجود ندارد. ادعا می شود که سریعتر از برنامه های رقیب گزارش تولید می کند و فضای کمتری را برای گزارش های تمام شده اشغال می کند. بیایید بررسی کنیم!

    طبق منطق کار، این برنامه به SARG نزدیکتر است (و خود نویسنده با این برنامه مقایسه می کند (مثلاً))، بنابراین ما با آن مقایسه می کنیم.

    از حضور چندین موضوع خوشحالم. موضوع شامل 3 فایل css و 4 آیکون png مربوط به آنها می باشد.

    گزارش ها واقعا سریعتر ساخته می شوند. گزارش روزانه در ساعت 4:30 زمانی که SARG 12 دقیقه وقت داشت ایجاد شد. درست است، معلوم شد که در مورد حجم اشغال شده اینطور نیست: حجم اشغال شده توسط گزارش ها 440 مگابایت (رایگان-sa) و 336 مگابایت (SARG) است.

    بیایید سعی کنیم کار دشوارتری را انجام دهیم: پردازش یک فایل گزارش 3.2 گیگابایتی در 10 روز، که در آن 26.3 میلیون خط وجود دارد.

    Free-sa همچنین گزارش را سریعتر کرد، در 46 دقیقه، گزارش 3.7 گیگابایت فضای دیسک را اشغال می کند. SARG 1 ساعت و 10 دقیقه صرف کرده است، گزارش 2.5 گیگابایت است.

    اما خواندن هر دوی این گزارش ها ناخوشایند خواهد بود. به عنوان مثال، چه کسی می خواهد به صورت دستی شمارش کند که کدام دامنه محبوب تر است - vk.com یا googlevideo.com و به صورت دستی ترافیک همه زیر دامنه های خود را شمارش کند؟ اگر فقط دامنه های سطح 2 در تنظیمات SARG باقی مانده باشند، ایجاد گزارش تقریباً به همان اندازه طول می کشد، اما اکنون خود گزارش 1.5 گیگابایت روی دیسک اشغال می کند (روزانه از 336 مگابایت به 192 مگابایت کاهش یافته است). .

    به تفصیل

    وقتی وارد صفحه اصلی می شوید، چیزی شبیه به زیر می بینیم (تم بلوز انتخاب شده است):


    راستش هدف از خروجی سال و ماه ها مشخص نیست وقتی روی آنها کلیک می کنید هیچ اتفاقی نمی افتد. می توانید چیزی را در قسمت جستجو بنویسید، اما دوباره هیچ اتفاقی نمی افتد. شما می توانید دوره مورد علاقه را انتخاب کنید.

    لیست URL های مسدود شده:

    گزارش متد CONNECT:


    گزارش روش PUT/POST:



    سایت های محبوب:


    گزارش کارآمدی سرور پروکسی جالب به نظر می رسید:


    گزارش کاربر:


    وقتی روی نماد نمودار در ستون دوم کلیک می کنید، نموداری از استفاده از اینترنت توسط یک کاربر خاص دریافت می کنیم:


    وقتی روی آیکون دوم کلیک می کنید، جدولی از بارگیری ساعتی کانال اینترنت دریافت می کنیم:

    هنگام انتخاب یک آدرس IP، لیستی از سایت ها را بر اساس کاربر به ترتیب نزولی ترافیک دریافت می کنیم:


    تمام آمار بر حسب بایت نمایش داده می شود. برای تغییر به مگابایت، باید پارامتر را تنظیم کنید

    Reports_bytes_divisor="M"

    این برنامه فایل های گزارش فشرده را نمی پذیرد، بیش از یک فایل با پارامتر -l را نمی پذیرد، از انتخاب فایل ها با ماسک پشتیبانی نمی کند. نویسنده برنامه پیشنهاد می کند با ایجاد لوله های نامگذاری شده، این محدودیت ها را دور بزند.

    یک اشکال آزاردهنده پیدا شد - زمانی که طول خط گزارش بیش از حد بزرگ است، به جای آدرس ها، مهرهای زمانی وارد می شوند:


    هنگام مشاهده ترافیک این "کاربر"، می توانید دامنه را با منبع خطا مشاهده کنید:


    بنابراین تعداد کاربران چندین برابر افزایش یافته است.

    اگر این دو برنامه را با هم مقایسه کنیم، free-sa یک گزارش را کمی سریعتر ایجاد می کند. افزایش 20 برابری سرعت، همانطور که نویسنده بیان کرد، نتوانستم پیدا کنم. شاید در شرایط خاصی بتوان آن را دید. من فکر می کنم مهم نیست که چقدر طول می کشد تا یک گزارش هفتگی در شب ایجاد شود - 30 دقیقه یا 50. از نظر میزان فضای اشغال شده توسط گزارش ها، free-sa هیچ مزیتی ندارد.

    ماهی نورانی

    شاید محبوب ترین شمارنده ترافیک. سریع کار می کند، گزارش ها فضای دیسک زیادی را اشغال نمی کنند. اگرچه مدت زیادی است که این برنامه به روز نشده است، اما همچنان تصمیم گرفتم در این مقاله قابلیت های آن را در نظر بگیرم.

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

    اشکالاتی وجود داشت: پردازش گزارش ها از سرورهای مختلف و جمع آوری آمار در یک مکان غیرممکن است: هنگام پردازش یک گزارش برای یک روز از سرور دیگر، آمار موجود برای آن روز پاک می شود.

    محدودیت عجیبی وجود دارد: lightsquid فایل های log غیر فشرده و همچنین فایل های فشرده (gz - دقیقا) را "درک" می کند، اما در حالت دوم، نام فایل باید به این فرمت باشد: access.log.X.gz، فایل هایی با فرمت access.log- YYYYMMDD.gz نمی پذیرد.

    با دستکاری های ساده، بر این محدودیت غلبه می کنیم و می بینیم که چه اتفاقی افتاده است.

    به تفصیل

    گزارش ماه (کل ترافیک 3 ترابایت، 110 میلیون خط) 1 گیگابایت روی دیسک اشغال کرد.

    در صفحه اصلی، ترافیک روزانه را برای ماه جاری مشاهده می کنیم.


    هنگام انتخاب یک روز، گزارشی برای روز برای همه کاربران می بینیم:


    اگر گروه ها تعریف شده باشند، نام گروهی که کاربر به آن تعلق دارد در ستون سمت راست نمایش داده می شود. کاربرانی که عضو هیچ گروهی نیستند در گروه 00 no در گروه ترکیب می شوند (در این گزارش با علامت سوال مشخص شده اند).

    وقتی grp را در صفحه اصلی برای تاریخ مربوطه انتخاب می کنید، به صفحه گزارش کاربر می رسیم که به گروه ها تقسیم شده است. ابتدا غیر گروه ها و سپس گروه ها به ترتیب فهرست می شوند.


    با کلیک بر روی نام گروه در جدول سمت راست، به محلی در صفحه که گزارش این گروه شروع می شود، پایین می رویم:


    وقتی روی "گزارش سایت های برتر" کلیک می کنید، گزارشی در مورد سایت های محبوب روز دریافت می کنیم:


    گزارش پرونده های بزرگ:


    بیایید به جدول سمت راست برویم.
    در اینجا می توانید لیستی از سایت های برتر برای ماه و کل سال (به نظر یکسان هستند، بنابراین بدون اسکرین شات)، آمار کلی برای سال و ماه، و همچنین آمار سال و ماه را دریافت کنید. توسط گروه

    آمار ماهانه:


    با کلیک بر روی نماد ساعت، جدولی از سایت ها، زمان دسترسی و ترافیک مصرف شده در ساعت را مشاهده می کنیم:


    آمار روز در اینجا نمایش داده می شود، اما برای ماه و سال تقریباً یکسان است، آمار ساعتی بر اساس دامنه ها خلاصه می شود.

    با کلیک بر روی نماد نمودار، میزان مصرف ترافیک کاربر را در طول ماه مشاهده می کنیم:


    ستون های نمودار قابل کلیک هستند: وقتی روی یک ستون کلیک می کنید، به آمار کاربر برای یک روز دیگر می روید.

    با کلیک بر روی [M] گزارشی از میزان مصرف ترافیک کاربر در طول ماه دریافت می کنیم که میزان حجم را برای هر روز و برای کل هفته نشان می دهد.

    وقتی روی نام کاربری کلیک می‌کنید، لیستی از سایت‌های بازدید شده توسط کاربر به ترتیب نزولی ترافیک دریافت می‌کنیم:


    خب، به نظر می رسد که تمام است. همه چیز ساده و مختصر است. آدرس های IP را می توان به نام دامنه تبدیل کرد. با کمک عبارات منظم، نام دامنه را می توان در دامنه های سطح 2 ترکیب کرد، فقط در صورتی که یک عبارت منظم ارائه دهم:

    $url =~ s/(+://)??(+.)(0,)(+.)(1)(+)(.*)/$3$4/o;

    با مهارت در پرل، می توانید آن را برای خود تغییر دهید.

    اسکویدانالایزر

    برنامه ای شبیه به lightsquid و همچنین به زبان Perl نوشته شده است. دکور زیباتر آخرین نسخه 6.4 در اواسط دسامبر سال جاری منتشر شد، پیشرفت های زیادی انجام شده است. وب سایت برنامه: squidanalyzer.darold.net.

    Squidanalyzer می‌تواند از چندین پردازنده کامپیوتری استفاده کند (گزینه -j)، که گزارش‌دهی را سریع‌تر می‌کند، اما این فقط برای فایل‌های فشرده‌نشده اعمال می‌شود. برای بسته بندی ها (فرمت gz پشتیبانی می شود)، پردازش با استفاده از یک هسته پردازنده انجام می شود.

    و یک مقایسه دیگر با lightsquid: همان گزارش در همان سرور برای حدود یک روز ساخته شد، 3.7 گیگابایت روی دیسک طول می کشد.

    درست مانند lightsquid، squidanalyzer نمی تواند دو یا چند فایل log را از سرورهای مختلف در یک دوره ادغام کند.

    بیشتر

    صفحه اصلی - می توانید سال گزارش را انتخاب کنید.

    هنگام انتخاب هر دوره (سال، ماه، هفته، روز)، ظاهر صفحات وب مشابه خواهد بود: در بالای صفحه منویی با گزارش های زیر وجود دارد: انواع MIME، شبکه ها، کاربران، رد شده های برتر، URL های برتر، دامنه های برتر . درست در زیر آمار پراکسی برای دوره انتخاب شده: درخواست ها (Hit/Miss/Denied)، مگابایت ها (Hit/Miss/Denied)، مجموع (درخواست ها/مگابایت ها/کاربران/سایت ها/دامنه ها). در زیر نموداری بر اساس تعداد درخواست‌ها برای دوره و ترافیک آمده است.

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


    تقویم قابلیت انتخاب یک هفته را دارد. پس از انتخاب، آمار مشابهی را مشاهده خواهیم کرد:


    هنگام انتخاب یک روز، آمار ساعت را می بینیم:


    گزارش نوع محتوا:


    گزارش شبکه


    گزارش کاربر


    وقتی کاربر انتخاب می شود، آمار او را برای دوره دریافت می کنیم.



    منابع ممنوعه:


    گزارش در مورد دامنه های سطح 2.


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

    ماهی اسکرین

    این برنامه منطق متفاوتی دارد: لاگ به پایگاه داده MySQL وارد می شود، سپس هنگام کار در رابط وب، داده ها از آن درخواست می شود. پایگاه داده با گزارش ده روزه پردازش شده که قبلا ذکر شد 1.5 گیگابایت طول می کشد.

    بیشتر

    این برنامه نمی تواند فایل های گزارش را با نام دلخواه وارد کند و فقط به access.log متصل می شود.

    صفحه اصلی:


    آمار مختصر:


    می توانید برای آدرس های IP نام مستعار ایجاد کنید:


    ... و سپس می توان آنها را در گروه های زیر ترکیب کرد:


    بیایید به گزارش های اصلی برویم.

    منوی سمت چپ با انواع گزارش:

    ورود کاربران به ترافیک
    ترافیک کاربر آدرس IP
    ترافیک وب سایت
    سایت های برتر
    کاربران برتر
    آدرس های IP برتر
    بر اساس ساعت روز
    ورود ترافیک کاربر پیشرفته است
    ترافیک کاربر آدرس IP افزایش یافته است
    ترافیک آدرس IP حل شد
    سایت های محبوب
    چه کسی فایل های حجیم را دانلود کرد
    ترافیک بر اساس دوره (روز)
    ترافیک بر اساس دوره (نام روز)
    ترافیک بر اساس دوره (ماه)
    وضعیت های HTTP
    آدرس های IP ورود به سیستم
    ورود از آدرس های IP

    نمونه هایی از گزارش ها

    ترافیک آدرس IP کاربر:


    ترافیک وب سایت:


    سایت های برتر:


    ... بیشتر، صادقانه بگویم، من حوصله کشف احتمالات را نداشتم، زیرا صفحات در عرض 3-5 دقیقه شروع به تولید کردند. گزارش "بر اساس ساعت روز" برای یک روز، که گزارش آن اصلا وارد نشده بود، بیش از 30 ثانیه ایجاد شد. برای یک روز با ترافیک - 4 دقیقه:


    همین. امیدوارم این مطالب برای کسی مفید باشد. از توجه همه شما متشکرم.

    وقت بخیر، خوانندگان و مهمانان عزیز! با این مقاله شرح کار را آغاز می کنم پروکسی ذخیره SQUID. این مقاله بیشتر به صورت تئوری مقدماتی خواهد بود.

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

    من با اصول اولیه شروع می کنم. ماهی مرکباست سرور پروکسی کشبرای پروتکل های HTTP، FTP و دیگر. سرور پروکسی برای HTTPبرنامه ای است که درخواست های HTTP را از طرف یک برنامه مشتری (چه مرورگر یا نرم افزار دیگر) انجام می دهد. پروکسی می تواند باشد ذخیره سازییا ذخیره نشدن. ذخیره سازی،بر این اساس، تمام درخواست‌ها را برای بازگشت سریع‌تر به مشتریان در نوعی فضای ذخیره‌سازی ذخیره می‌کند ذخیره نشدن- به سادگی HTTP، ftp یا سایر درخواست ها را ترجمه می کند. پیش از این، کش ترافیک امکان دستیابی به صرفه جویی قابل توجهی در ترافیک را فراهم می کرد، اما امروزه با رشد سرعت اینترنت، این امر کمی اهمیت خود را از دست داده است. Proxy serverA را می توان در آن تعبیه کرد سلسله مراتببرای پردازش درخواست ها در همان زمان، سرورهای پراکسی A از طریق با یکدیگر تعامل دارند پروتکل ICP.

    ماهی مرکبطراحی شده و می تواند بر روی اکثر سیستم عامل ها (هم یونیکس و هم ویندوز) اجرا شود. تحت مجوز GNU GPL. قابلیت پردازش و ذخیره سازی HTTP، FTP، Gopher، SSL و WAIS (حذف شده در 2.6) و همچنین DNS. بیشترین درخواست ها در RAM ذخیره می شوند. در حال حاضر وجود دارد 2 نسخه پایدار از ماهی مرکب: 2.7 و 3.1 . تفاوت ها را می توان در پیوندهای انتهای مقاله یافت. همه وابستگی ها هنگام نصب از بسته ها یکسان هستند. فایل پیکربندی نسخه 2 با نسخه 3 سازگار است، اما نسخه 3 گزینه های جدیدی را اضافه می کند. در مقاله ای که در نظر خواهم گرفت نسخه squid3. همچنین شایان ذکر است که اگر squid3 را نصب کنید، فایل های پیکربندی خود را در آن نگه می دارد. /etc/squid3و همچنین لاگ های پیش فرض در squid3 در دایرکتوری قرار دارند /var/log/squid3/، اما نه /var/log/squid/، همانطور که بسیاری از تحلیلگرهای گزارش "دوست دارند شمارش کنند".

    چند بار کلمه " ذخیره سازی". و در واقع این چیست - ذخیره سازی? این راهی برای ذخیره اشیاء درخواست شده از اینترنتروی سروری که به کامپیوتر درخواست کننده نزدیکتر از کامپیوتر اصلی است. یک شی اینترنت یک فایل، سند یا پاسخ به تماس با برخی از خدمات ارائه شده در اینترنت (مانند FTP، HTTP یا Gopher) است. کلاینت یک شی اینترنت را از کش پروکسی درخواست می کند. اگر شی هنوز کش نشده باشد، سرور پروکسی شیء را دریافت می کند (از میزبان مشخص شده در URL درخواستی، یا از حافظه پنهان مادر یا همسایه) و آن را به مشتری تحویل می دهد.

    حالت های پروکسی Squid

    پروکسی Squid می تواند در سه حالت اصلی زیر کار کند:

    حالت شفاف

    در این حالت HTTP، اتصال ایجاد شده توسط کلاینت ها بدون اطلاع آن ها یا پیکربندی صریح به یک سرور پراکسی هدایت می شود. در این حالت، نیازی به پیکربندی مشتری نیست. معایب این روش: پیکربندی NAT و هدایت مجدد ترافیک مورد نیاز است، احراز هویت مشتری کار نمی کند، درخواست های FTP و HTTPS هدایت نمی شوند.

    حالت احراز هویت

    برای کار در این حالت، کلاینت ها باید برای کار با یک سرور پراکسی پیکربندی شوند (آدرس سرور پراکسی باید در تنظیمات اتصال مشخص شود). مشتریان را می توان از طریق Kerberos، Ldap، NTLM، IP و Radius احراز هویت و مجوز داد. امکان ایجاد تعامل با سرورهای Microsoft Active Directory با احراز هویت مشتریان - اعضای دامنه با استفاده از پروتکل Kerberos و سپس مجوز دادن به اعضای گروه دامنه با استفاده از LDAP در حالت شفاف (کاربر فقط هنگام ثبت نام در دامنه رمز عبور خود را وارد می کند) امکان پذیر است. برای گروه های مجاز، امکان اعمال تنظیمات مختلف برای کنترل دسترسی و QoS (پول های تاخیر) وجود دارد.

    پروکسی معکوس

    سرور پروکسی داده های خروجی را ذخیره می کند. سرور پروکسی معکوس Squid داده ها را از طرف مشتری از سرور HTTP دریافت می کند و آن را به مشتری (مثلاً به اینترنت) ارسال می کند. این حالت به شما امکان می دهد:

    • استفاده از کش، که بار روی سرور HTTP را کاهش می دهد.
    • تعادل بار بین سرورهای HTTP.
    • پوشاندن سرورهای HTTP و ویژگی های آنها.
    • جلوگیری از حملات وب به سرورها

    نمودارهای حالت عملیاتی SQUID

    حالت شفاف

    حالت معکوس

    حالت تأیید اعتبار

    در نمودارهای بالا، فلش های سبز نشان دهنده جریان ترافیک پروکسی است. حرکت این جریان ها در لینوکس اغلب توسط نیروها و تنظیمات مرورگر کنترل می شود. علاوه بر این، اغلب، عملکرد روتر و پروکسی توسط یک دستگاه انجام می شود.

    نصب SQUID

    قبل از نصب و پیکربندی squid، همچنین باید مطمئن شوید که دستگاهی که squid روی آن اجرا می شود به شبکه خارجی دسترسی دارد و کلاینت هایی که از این پروکسی استفاده می کنند به این دستگاه دسترسی دارند. نصب پروکسی سرور squid مانند سایر نرم افزارهای لینوکس به روش های مختلفی امکان پذیر است که در مقاله توضیح داده شده است. من راه نصب را از مخزن در دبیان لمس خواهم کرد. بنابراین، برای نصب squid، باید بسته squid3 را نصب کنید، برای انجام این کار، دستور زیر را اجرا کنید:

    Gw ~ # aptitude install squid3 بسته های جدید زیر نصب خواهند شد: libltdl7(a) squid-langpack(a) squid3 squid3-common(a) 0 بسته ارتقا یافته، 4 بسته جدید نصب شده، 0 بسته برای حذف علامت گذاری شده است، و 0 بسته ارتقاء نیافته است . باید 2 آرشیو 157 کیلوبایتی دریافت کنید. پس از باز کردن بسته بندی 10.3 مگابایت استفاده می شود. می خواهید ادامه دهید؟ y دریافت:1 http://ftp.ru.debian.org/debian/squeeze/main libltdl7 i386 2.2.6b-2 Get:2 http://ftp.ru.debian.org/debian/squeeze/main squid- langpack all 20100628-1 Get:3 http://ftp.ru.debian.org/debian/squeeze/main squid3-common all 3.1.6-1.2+squeeze2 Get:4 http://ftp.ru.debian.org /debian/ squeeze/main squid3 i386 3.1.6-1.2+squeeze2 دریافت 2157 کیلوبایت در 9 ثانیه (238 کیلوبایت بر ثانیه) انتخاب بسته libltdl7 که قبلاً انتخاب نشده بود. (در حال خواندن پایگاه داده... در حال حاضر 41133 فایل و دایرکتوری نصب شده است.) باز کردن بسته libltdl7 (از فایل.../libltdl7_2.2.6b-2_i386.deb)... انتخاب بسته squid-langpack که قبلا انتخاب نشده بود. بسته squid-langpack باز شده است (از فایل.../squid-langpack_20100628-1_all.deb)... انتخاب یک بسته squid3-common که قبلا انتخاب نشده بود. بسته squid3-common باز شده است (از فایل.../squid3-common_3.1.6-1.2+squeeze2_all.deb)... انتخاب بسته squid3 انتخاب نشده قبلی. در حال بازکردن بسته squid3 (از فایل.../squid3_3.1.6-1.2+squeeze2_i386.deb)... پردازش محرک های man-db... راه اندازی بسته libltdl7 (2.2.6b-2)... راه اندازی squid-langpack بسته (20100628-1) ... پیکربندی بسته squid3-common (3.1.6-1.2+squeeze2) ... پیکربندی بسته squid3 (3.1.6-1.2+squeeze2) ... ایجاد پراکسی Squid HTTP 3.x ساختار دایرکتوری spool 2012/02/15 21:29:41| ایجاد دایرکتوری های Swap راه اندازی مجدد Squid HTTP Proxy 3.x: squid3Creating Squid HTTP Proxy 3.x ساختار کش ... (هشدار). 1391/02/15 21:29:43| ایجاد دایرکتوری های Swap.

    همانطور که می بینید، هنگام نصب بسته، تلاشی برای ایجاد وجود داشت دایرکتوری کش، اما به دلیل پیکربندی نشده است، هشدار از بین رفت. همچنین، ماهی مرکببه راه اندازی، اجرا و پذیرش اتصالات اضافه شده است در تمام اینترفیس ها. اما از آنجایی که پیکربندی نشده است، دسترسی به صفحات اینترنت از طریق سرور محدود است. پیکربندی ماهی مرکبواقع شده است در /etc/squid3/squid.confو از بیش از 5.5 هزار خط تشکیل شده است و سینتکس آن عملاً مانند پیکربندی هر سرویس دیگری است. عجله برای تغییر برخی تنظیمات در یک برش ارزش آن را ندارد. سپس چنگک نزنید. بیایید به پیکربندی که به طور پیش فرض بدون نظرات و خطوط خالی ارائه می شود نگاه کنیم:

    Gw ~ # grep -v ^# /etc/squid3/squid.conf | grep -v ^$ acl manager proto cache_object acl localhost src 127.0.0.1/32::1 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32::1 acl SSL_ports پورت 443 acl پورت Safe_0 پورت 443 acl Safe_port # 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 # پورت های ثبت نشده acl Safe_ports پورت 280 # http-mgmt ports Safe_8 port 280 #http-mgmt aclsafe_8ports 1 # filemaker acl Safe_ports port 777 # multiling http acl روش CONNECT CONNECT http_access اجازه می دهد مدیر localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access اجازه می دهد لوکال هاست http_access رد کردن همه http_8_portergi3 ? coredump_dir /var/spool/squid3 refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% refresh_pattern 0 refresh. 0 20% 4320

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

    Gw ~ # # مرورگر را با صفحه ya.ru اجرا کنید: gw ~ # http_proxy=http://127.0.0.1:3128 lynx ya.ru در جستجوی "ya.ru" اولین gw ~ # # در گزارش ما یک مرجع می بینیم به صفحه داده شده: gw ~ # cat /var/log/squid3/access.log 1329527823.407 110 127.0.0.1 TCP_MISS/200 9125 GET http://ya.ru/ - DIRECT/93.158.134.134.20

    برخی از گزینه های موجود در فایل پیکربندی squid را می توان چندین بار استفاده کرد (به عنوان مثال acl). برخی از پارامترها، به ویژه آنهایی که دارای یک مقدار واحد هستند، فقط یک بار قابل استفاده هستند. در این حالت هنگام استفاده از این پارامتر 2 بار یا بیشتر از آخرین مقدار استفاده خواهد شد. مثلا:

    Logfile_rotate 10 # مقادیر چندگانه - نهایی 5 logfile_rotate 5 خواهد بود

    مدیریت ماهی مرکب

    پارامترهایی که ماهی مرکب توزیع شما با آن ساخته شده است را می توان با دستور squid3 -v مشاهده کرد. به عنوان مثال، در Debian squeezy، squid با گزینه های زیر ساخته می شود:

    پیشوند=/usr - پیشوند کلیدهای دیگر: --mandir=$(پیشوند)/share/man - فهرست ذخیره‌سازی صفحه man -libexecdir=$(پیشوند)/lib/squid3 - فهرست با ماژول‌های اجرایی (شامل کمک‌کننده‌ها) -- sysconfdir=/etc/squid3 - دایرکتوری برای ذخیره پیکربندی --with-logdir=/var/log/squid3 - دایرکتوری برای ذخیره گزارش‌ها و موارد دیگر. دیگر...

    راه اندازی ماهی مرکب

    توضیحات تنظیمات squid3من با شروع تنظیمات پایه، که مطلوب است هنگام تنظیم هر پیکربندی سرور پروکسی انجام شود. پیکربندی Squid در قرار دارد /etc/squid3/squid.conf، این فایل پیکربندی اصلی است که شامل تمام تنظیمات است. (در توزیع‌های Debian و RedHat، پارامترهای فایل‌های پیکربندی راه‌اندازی نیز هنگام راه‌اندازی مشاهده می‌شوند. /etc/default/squid3و /etc/sysconfig/squid3، به ترتیب). همچنین، من اشاره کردم که بیش از 5 هزار خط وجود دارد و ارزش آن را ندارد که بلافاصله برای تنظیم چیزی بدون درک آن عجله کنید. نحو پیکربندی squid3کلاسیک: خطوط با # نظرات هستند، پارامترها خطوط هستند. مقدار پارامتر"، می توانید استفاده کنید. فایل پیکربندی برای راحتی به بخش ها تقسیم شده است، اما مهم است که به یاد داشته باشید که پارامترها به ترتیب اولویت "از بالا به پایین" تجزیه می شوند. همچنین، با استفاده از شامل پارامترشما می توانید فایل های پیکربندی خارجی را اضافه کنید.

    به طور پیش فرض، وضوح نام میزبانی که Squid در آن اجرا می شود با آن انجام می شود gethostname()،بسته به تنظیمات DNS، گاهی اوقات نمی تواند به طور واضح نامی را که در گزارش ها و خروجی های خطا ظاهر می شود تعیین کند. تولید شده توسط server.com (squid/3.0.STABLE2)". برای ثبت صحیح نام میزبان، باید این نام (FQDN??) را در پارامتر وارد کنید:

    Visible_hostname myproxy

    به طور پیش فرض، squid اتصالات را در تمام اینترفیس ها می پذیرد. اگر سرور ما با یکی از اینترفیس های شبکه به دنیای خارج نگاه می کند، پس مطلوب است که اتصالات را فقط در رابط LAN محدود کنیم (مثلاً 10.0.0.10/24). مسئول این امر است پارامتر http_port:

    Http_port 10.0.0.10:3128

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

    Gw ~ # # دیمون را قبل از راه اندازی آزمایش کنید: gw ~ # netstat -antp | grep squ tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN 25816/(Squid) gw ~ # # تغییرات انجام شده: gw ~ # grep ^http_port /etc/squid3/squid.conf http_0.0.10:3 http_0.10.0 # # بارگذاری مجدد پیکربندی اصلاح شده gw ~ # /etc/init.d/squid3 بارگیری مجدد بارگیری مجدد فایل های پیکربندی Squid HTTP Proxy 3.x. انجام شده. gw ~ # # عملیات بررسی با پیکربندی تغییر یافته: gw ~ # netstat -antp | grep squ tcp 0 0 10.0.0.10:3128 0.0.0.0:* LISTEN 25816/(Squid)

    همانطور که می بینید، اکنون دیمون فقط روی رابط شبکه مشخص شده کار می کند. همچنین شایان ذکر است که نسخه های جدید ماهی مرکب (<3.1) поддерживают задание нескольких параметров http_port. При этом, у разных параметров могут быть указанны дополнительные ключи такие как intercept, tproxy, accel и др., например:

    Gw ~ # grep ^http_port /etc/squid3/squid.conf http_port 10.0.0.10:3128 http_port 10.0.0.10:3129 tproxy

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

    اکنون باید یک کامپیوتر مشتری راه اندازی کنید و از اینترنت استفاده کنید. اما به طور پیش فرض دسترسی فقط از لوکال هاست مجاز است و در هنگام تلاش برای دسترسی به وب، کاربر با خطای «دسترسی رد شده» مواجه می شود. گزارش /var/log/squid3/access.log حاوی چیزی شبیه به این خواهد بود:

    1329649479.831 0 10.0.1.55 TCP_DENIED/403 3923 GET http://ya.ru/ - NONE/- text/html

    برای اینکه کلاینت های LAN کار کنند، باید مجوزها را با لیست های کنترل دسترسی پیکربندی کنید.

    راه اندازی دسترسی ماهی مرکب

    در حقیقت تنظیمات دسترسینهفته در شرح شیدسترسی از طریق پارامتر acl، و سپس وضوحیا ممنوعیت کارتوصیف شیء acl با پارامتر "http_access".. ساده ترین فرمت داده های پیکربندی به شرح زیر است:

    Acl list_name selection_type features_selection_type

    جایی که acl- توصیف پارامتر لیست کنترل دسترسی، که نام آن با مقدار داده شده است list_name. نام به حروف بزرگ و کوچک حساس است. انتخاب_نوعنوع بعدی را مشخص می کند مشخصه انتخاب_نوع. این مشخصه می تواند مقادیر پرکاربردی مانند src(از منبع) - منبع درخواست، dst- آدرس مقصد، arp- آدرس مک، srcdomainو dstdomain- نام دامنه منبع و مقصد به ترتیب، بندر- بندر، پروتو- پروتکل، زمان- زمان و بسیاری دیگر. بر این اساس، ارزش انتخاب_نوع_ویژگیهابسته به تشکیل خواهد شد انتخاب_نوع.

    شما می توانید چندین رشته acl را با نام ها و انتخاب_انواع یکسان مشخص کنید، در این صورت داده های acl با یک عملیات OR منطقی در یک لیست ترکیب می شوند. مثلا:

    سایت acl dstdomain site.com سایت acl dstdomain site.org # مشابه: سایت acl dstdomain site.com site.org

    در کلمات، به نظر می رسد این است: لیست دسترسی به نام سایت دارای تمام درخواست های ارسال شده به سایت site.com یا site.org است. همچنین، escape_names به حروف کوچک و بزرگ حساس هستند، یعنی سایت acl و سایت acl 2 لیست دسترسی متفاوت هستند.

    پس از تشکیل لیست های دسترسی، با استفاده از پارامتر http_accessاجازه یا رد دسترسی به ACL مشخص شده. فرمت تماس عمومی به صورت زیر است:

    Http_access اجازه می دهد|[!]list_name را رد کنید

    جایی که، http_access- پارامتری که قانون مجوز بعدی را مشخص می کند ( اجازه) یا ممنوعیت ها ( انکار) دسترسی مشخص شده در زیر list_name. در این حالت، علامت تعجب اختیاری مقدار نام لیست را معکوس می کند. یعنی با علامت تعجب مقدار list_nameصدا خواهد شد همه به جز کسانی که به این لیست تعلق دارند. علاوه بر این، می توانید چندین لیست را که با یک فاصله از هم جدا شده اند، مشخص کنید، سپس در صورتی که به همه لیست های مشخص شده تعلق داشته باشد، دسترسی مجاز خواهد بود. در این مورد، همه قوانین مجاز باید قبل از رد کردن ALL مشخص شوند:

    http_access همه را رد کنید

    ممکن است یک سوال معقول پیش بیاید: چرا این قانون را تعیین می کنیم اگر، برای مثال، ما فقط به acls انتخاب شده اجازه دسترسی به ماهی مرکب را می دهیم؟ پس از همه، بقیه، که به این acl نمی افتد، بنابراین "گذر از کنار" ... این ساده است. به طور پیش فرض، ماهی مرکب از قانون اجازه/انکار مخالف استفاده می کند. مثلا:

    # ما یک قانون اجازه واحد برای برخی از کاربران acl داریم: http_access اجازه کاربر # را می دهد اگر مشتری هنگام دسترسی به squid در این acl نباشد، عمل رد کردن روی آن اعمال می شود. # و اگر دو قانون داشته باشیم http_access به کاربر اجازه می دهد http_access deny user2 # و کلاینت در هیچکدام از کاربران acl یا acl user2 قرار نگیرد، اجازه به آن اعمال می شود. # یعنی عمل مخالف آخرین http_access deny user2

    این، همانطور که می گویند - پایه های بنیادها. بیایید به یک مثال ساده نگاه کنیم. فرض کنید 2 شبکه 10.0.1.0/24 و 10.0.0.0/24 و همچنین هاست 10.0.4.1 داریم که باید اجازه دسترسی به اینترنت را داشته باشند. برای اجازه دسترسی، باید در بخش «ACCESS CONTROL» در فایل squid.conf توضیحی از لیست دسترسی جدید ایجاد کنید:

    acl lan src 10.0.1.0/24 10.0.0.0/24 acl lan src 10.0.4.1

    برای راحتی بیشتر، می توانید این قوانین را در یک فایل جداگانه تنظیم کنید و مسیر رسیدن به آن را در جای خود مشخص کنید ویژگی های انتخاب_نوع. اینجا:

    Gw ~ # # یک دایرکتوری جداگانه برای ذخیره لیست های دسترسی ایجاد کنید gw ~ # mkdir /etc/squid3/acls/ gw ~ # # زیر شبکه ها و هاست های خود را در یک فایل جداگانه قرار دهید gw ~ # vim /etc/squid3/acls/lan.acl gw ~ # cat /etc/squid3/acls/lan.acl 10.0.1.0/24 10.0.0.0/24 10.0.4.1 gw ~ # # فایل ایجاد شده را در پیکربندی توصیف کنید (مسیر باید در گیومه قرار داده شود) gw ~ # grep lan.acl /etc /squid3/squid.conf acl lan src "/etc/squid3/acls/lan.acl"

    به لیست دسترسی lan ایجاد شده اجازه دسترسی به اینترنت را بدهید و به Squid بگویید فایل پیکربندی را دوباره بخواند:

    Gw ~ # grep lan /etc/squid3/squid.conf | grep acce http_access اجازه می دهد lan gw ~ # سرویس squid3 بارگیری مجدد بارگیری مجدد فایل های پیکربندی Squid HTTP Proxy 3.x. انجام شده.

    برای خلاصه کردن این بخش، به طور خلاصه، acl یک درخواست وب را شناسایی می کند و http_access درخواست شناسایی شده را مجاز یا رد می کند. اکنون مشتریان محلی ما از استفاده از اینترنت خوشحال هستند، زیرا قبلاً مرورگر را پیکربندی کرده اند!

    پیکربندی تنظیمات کش ماهی مرکب

    یک نکته مهم در راه اندازی ماهی مرکب این است تنظیم گزینه های ذخیره سازی در ماهی مرکب. مکان کش تنظیم شده است پارامتر cache_dirدر squid.conf. فرمت پارامتر به شرح زیر است:

    نوع مسیر Cache_dir اندازه L1 L2

    جایی که، نوع- این الگوریتم تولید حافظه پنهان است، شاید: ufs (سیستم فایل یونیکس)، aufs (ufs async)، diskd(فرآیندهای خارجی برای جلوگیری از مسدود کردن ماهی مرکب در ورودی/خروجی دیسک). استفاده از آن توصیه می شود ufsاگرچه برخی تحسین aufs. مسیر- مکان کش را در سیستم فایل مشخص می کند (باید وجود داشته باشد و برای کاربری که squid تحت آن اجرا می شود دسترسی به نوشتن داشته باشد - معمولاً یک پروکسی). اندازه- حداکثر اندازه را تنظیم می کند که پس از آن کش شروع به پاک شدن می کند. هولیوارهای زیادی برای این پارامتر در شبکه وجود دارد. اندازه کش ایده آل بسته به تعداد کلاینت ها بین 2 تا 10 گیگابایت است. تقریباً 1 گیگابایت کش برای هر 100 هزار درخواست در روز. من با 5 گیگ می چسبم. در Squid، هر شی ذخیره شده در یک فایل جداگانه قرار دارد، خود فایل ها در یک مکان ریخته نمی شوند، بلکه از یک سلسله مراتب دایرکتوری دو سطحی استفاده می شود. تعداد کاتالوگ های 1 و 2 سطح و تعیین پارامترها L1 و L2. این مقادیر را می توان به عنوان پیش فرض باقی گذاشت. اما برای جهت گیری در موقعیت، از bog.pp.ru نقل قول می کنم:

    آزمایش نشان داد که با حافظه نهان 700 مگابایتی، تنها از 2 دایرکتوری سطح اول استفاده می شود. یعنی برای یک ساختار دایرکتوری کش استاندارد، یک میلیون شی (9 گیگابایت) به راحتی در آن قرار می گیرد، اگر تعداد آنها بیشتر باشد، باید تعداد دایرکتوری های سطح بالا را افزایش دهید.

    می توانید از چندگانه استفاده کنید cache_dir. این تأثیر مثبتی بر عملکرد دارد، به خصوص اگر حافظه پنهان را روی دیسک های مختلف قرار دهید. می توانید با قرار دادن کش در tmpfs سرعت کش را بیشتر کنید. برای هر پارامتر cache_dirممکن در بخش گزینه هاگزینه های فقط خواندنی (فقط خواندنی) و حداکثر اندازه (حداکثر اندازه شی) را تعریف کنید.

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

    حداکثر_اندازه_شیء 61440 کیلوبایت

    به همین ترتیب؟ دارند و پارامتر minimal_object_sizeمسئول حداقل اندازه شی است، به طور پیش فرض مقدار آن "0" است، یعنی غیرفعال است. من توصیه می کنم مقدار این پارامتر را به 2-3 کیلوبایت افزایش دهید، که باعث کاهش بار روی دیسک هنگام جستجو برای اشیاء کوچک می شود.

    رم، استفاده شده توسط ماهی مرکب تنظیم شده است پارامتر cache_mem، مقدار پیش فرض 256 مگابایت (در نسخه 3.1) است. من این مقدار را به عنوان پیش فرض گذاشتم. فقط در صورتی ارزش دارد که ماهی مرکب از شما در مورد آن در سیاهههای مربوط بپرسد. پس از این تغییرات، باید squid را مجددا راه اندازی کنید، این ساختار دایرکتوری را ایجاد می کند:

    Gw ~ # سرویس squid3 شروع راه اندازی Squid HTTP Proxy 3.x: squid3Creating Squid HTTP Proxy 3.x cache ساختار ... (هشدار). 1391/02/19 22:58:21| ایجاد دایرکتوری های مبادله 2012/02/19 22:58:21| /var/spool/squid3 وجود دارد 2012/02/19 22:58:21| ساخت دایرکتوری در /var/spool/squid3/00 2012/02/19 22:58:21| ساخت دایرکتوری در /var/spool/squid3/01 2012/02/19 22:58:21| ساخت دایرکتوری در /var/spool/squid3/02 2012/02/19 22:58:21| ساخت دایرکتوری در /var/spool/squid3/03 2012/02/19 22:58:21| ساخت دایرکتوری در /var/spool/squid3/04 2012/02/19 22:58:21| ساخت دایرکتوری در /var/spool/squid3/05 2012/02/19 22:58:21| ساخت دایرکتوری در /var/spool/squid3/06 2012/02/19 22:58:21| ساخت دایرکتوری در /var/spool/squid3/07 2012/02/19 22:58:21| ساخت دایرکتوری در /var/spool/squid3/08 2012/02/19 22:58:21| ساخت دایرکتوری در /var/spool/squid3/09 2012/02/19 22:58:21| ساخت دایرکتوری در /var/spool/squid3/0A 2012/02/19 22:58:21| ساخت دایرکتوری در /var/spool/squid3/0B 2012/02/19 22:58:21| ساخت دایرکتوری در /var/spool/squid3/0C 2012/02/19 22:58:21| ساخت دایرکتوری در /var/spool/squid3/0D 2012/02/19 22:58:21| ساخت دایرکتوری در /var/spool/squid3/0E 2012/02/19 22:58:21| ساخت دایرکتوری در /var/spool/squid3/0F.

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

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

    چیست پروکسی شفاف? این حالت عملکرد سرور پروکسی در هنگام مشتری است قابل تنظیم نیستبرای کار از طریق یک پروکسی و ارسال درخواست ها به شبکه با استفاده از پروتکل HTTP، گویی مشتری مرورگر مستقیماً با سرور وب کار می کند. در همان زمان، توسط نیروهای (در لینوکس - ) درخواست های HTTP خروجی به پورتی که پروکسی در آن اجرا می شود هدایت می شود. سرور پروکسی به نوبه خود درخواست های HTTP را به درخواست های پروتکل سرور پروکسی تبدیل می کند و مانند یک وب سرور پاسخ ها را برای مشتری ارسال می کند. که کلاینت به طور شفاف با سرور پروکسی تعامل دارد.

    مهم فهمیدن و دانستن است!این روش پشتیبانی می کند فقط پروتکل HTTP، و از gopher، FTP یا سایر پروکسی ها پشتیبانی نمی کند. همچنین Squid نمی تواند همزمان در حالت شفاف و در حالت احراز هویت کار کند.

    برای تنظیم حالت شفاف، باید:

    1. حالت شفاف را تنظیم کنیددر تنظیمات پروکسی این کار در پارامتر http_port، مثلا:

    Http_port ip:port transparent

    2. Wrap Usersقانون مربوط به پورت مورد نظر با استفاده از iptables:

    Iptables -t nat -A PREROUTING -i incoming_interface_name -s LAN_subnet -p tcp --dport 80 -j REDIRECT --to-port squid_port، به عنوان مثال: iptables -t nat -A PREROUTING -i eth1 -s 10.024 -0. p tcp --dport 80 -j REDIRECT --to-port 3128

    همه. این امکان وجود دارد که از کاربران پیچیده و ناآگاه در سرور پروکسی ما لذت ببرید.

    عیب یابی

    اول از همه، تشخیص عملیات ماهی مرکبنهفته در مشاهده سیاهههای مربوطواقع در /var/log/squid3. اکثر مشکلات از این طریق حل می شود. اگر این به حل مشکل کمک نکرد، دیمون را با دستور به حالت اشکال زدایی تغییر دهید اشکال زدایی squid3 -kپیدا کردن مشکل راحت تر خواهد بود در واقع چوب ماهی مرکب چیست؟ فایل های لاگ حاوی اطلاعات مختلفی در مورد بارگذاری و عملکرد Squid هستند. علاوه بر دسترسی به اطلاعات، /pre همچنین برای ثبت خطاهای سیستم و اطلاعات مربوط به مصرف منابع، مانند، به عنوان مثال، حافظه یا فضای دیسک، می نویسد.

    فرمت فایل لاگ Squidرشته ای از مقادیر است که با یک یا چند فاصله از هم جدا شده اند:

    time.ms answer_time ip_src Squid_req_status/HTTP_status روش byte_snd URL کاربر squid_her_status/ip_dst MIME

    • زمان- زمان در فرمت یونیکس (تعداد ثانیه از 00:00 1970.01.01)
    • ام‌اس- میلی ثانیه تا 3 رقم
    • زمان پاسخ- زمان پاسخگویی، میلی ثانیه
    • ip_src- آدرس IP منبع
    • Squid_req_status- وضعیت درخواست ماهی مرکب (به عنوان مثال، TCP_HIT برای اشیاء ذخیره شده قبلی، TCP_MISS اگر شی درخواستی از حافظه پنهان محلی گرفته نشده باشد، UDP_HIT و UDP_MISS برای درخواست های خواهر و برادر یکسان است)
    • HTTP_status- وضعیت پروتکل http (200 برای موفقیت، 000 برای درخواست UDP، 403 برای تغییر مسیر، 500 برای خطا)
    • byte_snd- ارسال، بایت در پاسخ از جمله هدر HTTP
    • روش- روش درخواست GET یا POST
    • URL- آدرس درخواستی
    • کاربر- نام کاربری مجاز
    • squid_her_status- وضعیت سلسله مراتب ماهی مرکب - نتیجه درخواست ها به حافظه پنهان خواهر و برادر/والد
    • ip_dst- آدرس IP گره درخواستی
    • MIMEمیم نوع

    بیایید به یک مثال نگاه کنیم:

    1329732295.053 374 10.0.1.55 TCP_MISS/200 1475 دریافت http://www.youtube.com/live_comments؟ - DIRECT/173.194.69.91text/xml

    همانطور که می بینید درخواست به شماره 1329732295.053 انجام شد، پاسخ سرور راه دور 374 میلی ثانیه بود، میزبانی که صفحه را درخواست کرده دارای IP 10.0.1.55 است، شی درخواستی از حافظه نهان محلی (TCP_MISS) سرور منتقل نشده است. کد پاسخ 200 بود، 1475 بایت با استفاده از روش GET برای مشتری ارسال شد، URL http://www.youtube.com/live_comments? درخواست شد، نام کاربری تعریف نشد، شی مستقیماً از سرور با IP دریافت شد. 173.194.69.91، متن منتقل شد، زیرا mime-text/xml. اینجا.

    چند نکته پایانی در مورد squid3

    در مقاله، من اصول اولیه سرور پراکسی و همچنین تنظیمات اساسی را بررسی کردم که به شما امکان می دهد ساده ترین سرور کش را پیاده سازی کنید و همچنین عملکرد ماهی مرکب را در حالت شفاف (شفاف) سازماندهی کنید. Squid از چندین گزینه مجوز (از طریق IP، LDAP، MySQL، NTLM و غیره)، توانایی محدود کردن پهنای باند کانال و کنترل دسترسی به منابع اینترنتی پشتیبانی می کند. کار یک ماهی مرکب را با روش های مختلف مجوز و نمونه هایی از کنترل تردد در مقالات بعدی بررسی خواهم کرد.

    مقاله بسیار مفید، قابل درک و کاملاً مفصل است
    برای نگهداری از اینجا گرفته شده http://www.opennet.ru/base/net/squid_inst.txt.html

    کلمات کلیدی: squid proxy acl
    از: Zabudkin Lev Miroslavovich
    تاریخ: جمعه، 14 ژانویه 2005، 15:04:58 +0500 (YEKT)
    موضوع: راه اندازی Squid برای مبتدیان

    راه اندازی Squid for Dummies
    (نسخه مقاله 1.0 از 10/29/2004)

    زابودکین لو میروسلاوویچ،
    روسیه، منطقه تیومن،
    G. Nizhnevartovsk،
    رمزگذار سرب
    MU "کتابخانه و سیستم اطلاعاتی"
    [ایمیل محافظت شده]
    http://zabudkin.com

    معرفی
    ———-

    بسیاری از مدیران با مشکل استفاده منطقی روبرو هستند
    زمان و کانال دسترسی به اینترنت، به این امکان فکر کنید
    صرفه جویی در زمان و هزینه، محدودیت سرعت برای انواع خاصی
    فایل ها یا شخصیت ها، در پایان در مورد ذخیره همه چیز مربوط به
    جنبه های خاصی از دسترسی به شبکه جهانی

    با کمک این مقاله سعی می کنم به طور واضح و قابل فهم در مورد آن توضیح دهم
    تنظیمات رایج ترین سرور پروکسی - پروکسی
    سرورهای Squid.

    تنظیمات اولیه SQUID برای دسترسی کاربر
    —————————————————

    ما وارد فرآیند راه اندازی یک سرور پروکسی Squid نمی شویم، اما
    بیایید به راه اندازی آن برویم.

    ابتدایی ترین کاری که باید بعد از نصب انجام دهیم این است
    اجازه دسترسی به کاربران شبکه محلی ما را می دهد. برای این خدمت می کنند
    پارامترهای http_port، http_access. علاوه بر این، acl (فهرست
    کنترل دسترسی) برای شبکه محلی ما.

    و بنابراین، تا آنجا که سرور پروکسی ما Squid است، به http_port نیاز داریم
    باید فقط رایانه های موجود در شبکه محلی ما را ارائه دهد و باشد
    برای دنیای خارج نامرئی است، تا امکان "بد" را رد کند
    افراد» از شبکه خارجی برای استفاده از کانال یا ترافیک ما، و
    در صورتی که "حفره" در کد سرور پروکسی یافت شود
    ماهی مرکب، از آنها استفاده کنید.

    پارامتر http_access برای اجازه یا رد دسترسی استفاده می شود
    به منابع خاص، آدرس های خاص یا از برخی منابع خاص
    آدرس ها، به سایت های خاص، طبق پروتکل های خاص، پورت ها و
    هر چیزی که مستقیماً با استفاده از Acl مشخص شده است (لیست های کنترلی
    دسترسی).

    جدول N 1. برخی از زیرشبکه ها.

    |محدوده آدرس |فرم بلند |فرم کوتاه
    192.168.0.1-192.168.0.254 192.168.0.0/255.255.255.0 192.168.0.0/24
    192.168.20.1-192.168.20.254 192.168.20.0/255.255.255.0 192.168.20.0/24
    192.168.0.1-192.168.254.254 192.168.20.0/255.255.0.0 192.168.20.0/16
    10.0.0.1-10.254.254.254 10.0.0.0/255.0.0.0 10.0.0.0/8

    فرض کنید یک شبکه با آدرس های 192.168.0.1 تا 192.168.0.254 دارید،
    سپس یک Acl جدید اضافه کنید (جدول N1 را ببینید):

    acl LocalNet src 192.168.0.0/24

    بیایید فرض کنیم که شما یک سرور پراکسی Squid دارید که در آن قرار دارد
    192.168.0.200 در پورت 3128، سپس در فایل پیکربندی می نویسیم:

    http_port 192.168.0.200:3128

    اقدام بعدی ما غیرفعال کردن استفاده از پروکسی خواهد بود
    سرورهای غیر از کاربران شبکه محلی ما:

    http_access اجازه LocalNet را می دهد
    http_access همه را رد کنید

    در این صورت کلمه اجازه جواز است و کلمه منکر
    رد کنید، یعنی اجازه دسترسی به سرور پراکسی Squid را می دهیم
    آدرس های شبکه محلی ما و عدم دسترسی به دیگران.

    هنگام تعیین http_access مراقب باشید زیرا Squid از آنها استفاده می کند
    به ترتیبی که شما مشخص کرده اید

    LEARNING ACL (لیست های کنترل دسترسی)
    ————————————-

    سیستم کنترل دسترسی در سرور پروکسی Squid بسیار منعطف است
    و گسترده این شامل عناصر با مقادیر و لیست های دسترسی c
    تعیین اجازه (اجازه) یا انکار (ممنوعیت).

    فرمت ACL به شرح زیر است:

    فهرست عناصر نام acl

    فرمت لیست دسترسی:

    http_access با تعیین acl_name

    ما به برخی از عناصری که به شما اجازه استفاده از پروکسی را می دهد نگاه خواهیم کرد
    سرور Squid، البته با مثال:

    * لیست src نام acl

    با این عنصر (src) آدرس IP منبع را مشخص می کنیم، یعنی.
    مشتری که از آن درخواست به سرور پروکسی ما آمده است.

    در مثال زیر به Vasya Pupkin و بخش اجازه می دهیم
    دسترسی برنامه نویسی (Progs) به سرور پراکسی ما و همه
    بقیه ممنوع خواهد بود:

    acl Progs src 192.168.0.1-192.168.0.9
    acl Pupkin src 192.168.0.10
    http_access به Progs اجازه می دهد
    http_access اجازه می دهد تا Pupkin
    http_access همه را رد کنید

    * لیست نام acl dst

    این عنصر (dst) آدرس IP مقصد، یعنی آدرس IP را مشخص می کند
    سروری که سرویس گیرنده سرور پروکسی می خواهد به آن دسترسی داشته باشد.

    در مثال زیر، دسترسی Vasya به زیرشبکه 194.67.0.0/16 (به
    به عنوان مثال، حاوی همان aport.ru است):

    acl Net194 dst 194.67.0.0/16
    http_access انکار Pupkin Net194

    * لیست نام دامنه acl dst

    با این عنصر (dstdomain) دامنه، دسترسی به را مشخص می کنیم
    که کلاینت سرور پروکسی می خواهد دریافت کند.

    در مثال زیر، دسترسی Vasya به سایت warez nnm.ru و
    kpnemo.ru:

    acl SitesWarez dstdomain .nnm.ru .kpnemo.ru
    http_access رد Pupkin SitesWarez

    اگر لازم است دامنه منبع را مشخص کنید، از آن استفاده کنید
    srcdomain.

    * نام acl [-i] لیست srcdom_regex
    * نام acl [-i] لیست dstdom_regex

    تفاوت این عناصر با srcdomain و dstdomain فقط در این است که در آنها وجود دارد
    از عبارات منظم استفاده می شود که در این مقاله از آنها استفاده نمی کنیم
    بیایید نگاهی بیندازیم، اما این یک مثال است:

    Acl SitesRegexSex dstdom_regex sex
    Acl SitesRegexComNet dstdom_regex \.com$ \.net$
    http_access رد سایت های Pupkin RegexSex
    http_access رد Pupkin SitesRegexComNet

    در این مثال، ما دسترسی Vasily Pupkin را به همه دامنه‌ها رد کردیم.
    حاوی کلمه sex و به همه دامنه ها در مناطق .com و .net.

    سوئیچ -i برای نادیده گرفتن حروف حروف در عبارات منظم طراحی شده است.

    * نام acl [-i] فهرست url_regex

    با این عنصر (url_regex) یک الگوی منظم را مشخص می کنیم
    عبارات URL

    نمونه ای از مشخص کردن فایل هایی با پسوند avi که با کلمه sex شروع می شود:

    acl NoAviFromSex url_regex -i sex.*\.avi$

    در صورتی که بخواهید الگویی را فقط برای مسیر URL مشخص کنید، به عنوان مثال.
    پروتکل و نام میزبان (دامنه) را حذف کنید، سپس از urlpath_regex استفاده کنید.

    مثالی برای تعیین فایل های موسیقی:

    رسانه acl urlpath_regex -i \.mp3$ \.asf$ \.wma$

    * لیست پورت acl acl_name

    نشان دادن شماره پورت مقصد، یعنی پورتی که می خواهد
    مشتری سرور پروکسی ما متصل خواهد شد.

    به عنوان مثال، ما همه را از استفاده از برنامه Mirc از طریق پروکسی خود منع خواهیم کرد
    سرور:

    پورت Acl Mirc 6667-6669 7770-7776
    http_access همه Mirc را رد کنید

    * لیست پروتو acl acl_name

    پروتکل انتقال را مشخص کنید.

    به عنوان مثال، ما استفاده از پروتکل FTP توسط Vasya فوق الذکر را ممنوع خواهیم کرد
    از طریق سرور پروکسی ما:

    acl ftpproto proto ftp
    http_access انکار Pupkin ftpproto

    * لیست متد acl acl_name

    تعیین روش درخواست http توسط مشتری (GET، POST).

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

    acl SiteMailRu dstdomain .mail.ru
    روش acl روش پست POST
    http_access رد روش Pupkin SiteMailRu

    محدودیت های کاربر
    ————————-

    اغلب در کشور ما شرایطی وجود دارد که کانال دسترسی در آن قرار دارد
    شبکه جهانی اینترنت برای همه کاربران کافی نیست و وجود دارد
    تمایل به دادن حداکثر به همه، اما در عین حال به کانال ندادن
    "خم" به دلیل دوستداران آپلود فایل.

    ابزارهای پروکسی Squid این امکان را به چندین روش می دهند:

    - راه اول بهینه سازی کش کردن اشیا است.

    - دوم محدودیت زمانی برای کاربران خاص است که اینطور نیست
    کاملا درسته

    - راه سوم محدود کردن سرعت برای انواع خاصی است
    فایل ها، کاربران و هر چیزی که توسط ما از طریق Acl تعریف شده است.

    محدودیت های زمانی
    ———————-

    به صورت زیر می توانید کاربران را از نظر زمان محدود کنید:

    روز نام acl hh:mm-hh:mm

    جایی که روز است: M - دوشنبه، T - سه شنبه، W - چهارشنبه، H - پنجشنبه، F -
    جمعه، A - شنبه، S - یکشنبه.

    در این حالت hh:mm باید کمتر از HH:MM باشد، یعنی می توانید با آن مشخص کنید
    00:00-23:59، اما نمی توانید ساعت 20:00-09:00 را مشخص کنید.

    همین واسیا را از 10 تا دسترسی به اینترنت ممنوع کنیم
    هر روز 15 ساعت:

    Acl TimePupkin ساعت 10:00-15:00
    http_access deny Pupkin TimePupkin

    اگر می خواهید به واسیا اجازه دهید از برنامه Mirc از 13 تا 14 استفاده کند
    ساعت، ما می نویسیم:

    Acl TimePupkin ساعت 13:00-14:00
    http_access اجازه Pupkin TimePupkin Mirc را می دهد
    http_access رد Pupkin Mirc

    و اگر در روزهای خاصی نیاز به ممنوعیت یا اجازه داشته باشید چه می شود
    هفته؟ Squid همچنین به شما این امکان را می دهد که مثلاً از ساعت 13 تا 14 این کار را انجام دهید
    دوشنبه و یکشنبه:

    Acl TimePupkin زمان MS 13:00-14:00

    همانطور که می بینید، هیچ چیز پیچیده ای در این مورد وجود ندارد.

    محدودیت سرعت
    ————————

    کنترل سرعت در سرور پروکسی Squid با استفاده از آن انجام می شود
    استخرها استخر نوعی بشکه آبجو است که دائماً آبجو در آن است
    تا لبه پر می شود و مشتریان در لیوان ها یا سایر ظروف خود می ریزند
    برای مصرف داخلی بیشتر در صورت نیاز از طریق آنها
    شیرهای شخصی

    استخرها با استفاده از سه پارامتر تنظیم می شوند: delay_class،
    delay_parameters، delay_access. تعداد استخرها با استفاده از آن مشخص شده است
    پارامتر delay_pools.

    استخرها می توانند سه کلاس باشند:

    1. کل جریان آبجو به یک شیر (برای کل شبکه) محدود می شود.

    2. کل جریان آبجو به یک شیر محدود می شود، اما شیر تقسیم می شود
    برای جرثقیل ها (برای هر IP).
    3. کل جریان آبجو به یک شیر محدود می شود، اما شیر به تقسیم می شود
    جرثقیل ها (به زیر شبکه ها) که به جرثقیل های کوچک نیز تقسیم می شوند (به
    هر IP).

    delay_pools number_of_eclared_pools
    اقدام delay_access pool_number acl_name

    عمل می تواند مجاز (اجازه) و انکار (منع) باشد. که در آن،
    این استخر برای کسانی که مجاز است معتبر است و برای کسانی که مجاز هستند صدق نمی کند
    که بر آنها حرام است. در صورتی که اجازه همه مشخص شود، و سپس Pupkin را رد کنید،
    سپس این کلاس همچنان بر Pupkin تأثیر می گذارد، زیرا آدرس IP Pupkin
    اعلام شده در acl Pupkin در لیست تمام آدرس های acl قرار دارد. آن را داشته باشید
    در نمایش.

    delay_class pool_number pool_class
    delay_parameters پارامترهای pool_number

    پارامترها بسته به کلاس استخر متفاوت است:

    برای کلاس اول:

    delay_parameters 1 byte_to_whole_network

    برای کلاس دوم:

    delay_parameters 1 per_network per_client

    برای کلاس سوم:

    delay_parameters 1 per_whole_network per_subnet per_client

    به عنوان مثال، ما یک کانال 128 کیلوبایتی داریم (میانگین 15 کیلوبایت در ثانیه) و ما
    ما آرزو می کنیم واسیا (پاپکین) فقط 4 کیلوبایت در ثانیه (برای همه چیز در مورد همه چیز یک) بدهد
    شیشه کوچک)، به بخش برنامه نویسی (Prog) در مجموع 10 عدد بدهید
    KB/sec و فقط 5 KB/sec برای هر (فقط دو لیوان)، همه
    بقیه را به 2 کیلوبایت در ثانیه برای هر کدام و 10 کیلوبایت بر ثانیه برای همه محدود کنید، و
    فایل های mp3 (رسانه) به 3 کیلوبایت در ثانیه برای همه (برای کل بشکه) محدود می شود
    آبجو چنین شیر کوچک). سپس می نویسیم:

    acl Prog src 192.168.0.1-192.168.0.9
    acl Pupkin src 192.168.0.10
    acl LocalNet src 192.168.0.0/255.255.255.0
    رسانه acl urlpath_regex -i \.mp3$ \.asf$ \.wma$

    delay_pools 4
    # اولین محدودیت mp3
    delay_class 1 1
    delay_parameters 1 3000/3000
    delay_access 1 اجازه رسانه را می دهد
    delay_access 1 رد کردن همه
    # واسیا بیچاره را محدود کنید
    delay_class 2 1
    delay_parameters 2 4000/4000
    delay_access 2 به Pupkin اجازه می دهد
    delay_access 2 همه را رد کنید
    # بخش برنامه نویسی را محدود کنید
    delay_class 3 2
    delay_parameters 3 10000/10000 5000/5000
    delay_access 3 اجازه Prog
    delay_access 3 همه را رد کنید
    # و حالا بقیه را محدود می کنیم (کلاس دوم استخر)
    تاخیر_کلاس 4 2
    delay_parameters 4 10000/10000 2000/2000
    delay_access 4 انکار رسانه
    delay_access 4 رد پاپکین
    delay_access 4 deny Prog
    delay_access 4 به LocalNet اجازه می دهد
    delay_access 4 همه را رد کنید

    اغلب این سوال پیش می آید که بهترین راه برای استفاده از چنین کوچکی چیست؟
    کانال به طوری که به طور خودکار بین همه کسانی که در حال حاضر هستند به اشتراک گذاشته شود
    آیا چیزی در حال بارگذاری است؟ یک پاسخ صریح برای این سوال وجود دارد -
    انجام این کار با استفاده از سرور پراکسی Squid امکان پذیر نیست، اما همچنان
    کاری که می توانید انجام دهید:

    delay_class 1 2
    delay_parameters 1 -1/-1 5000/15000
    delay_access 1 اجازه LocalNet را می دهد
    delay_access 1 رد کردن همه

    بنابراین، ما حداکثر را برای کل شبکه و برای زیرشبکه ها اختصاص می دهیم
    کانال (-1 به معنای نامحدود است) و برای هر کاربر می دهیم
    حداکثر سرعت 5 کیلوبایت بر ثانیه پس از دانلود در حداکثر
    سرعت 15 کیلوبایت اول سند.

    بنابراین، مشتری کل کانال را نمی خورد، اما به سرعت دریافت می کند
    15 کیلوبایت اول

    بهینه سازی ذخیره اشیاء در SQUID
    ——————————————

    انواع مختلفی از فایل ها وجود دارد که به اندازه کافی به روز نمی شوند
    اغلب به سرور پروکسی اجازه می دهد تا به هدرها پاسخ دهد
    سرورهای وب که این شی در معرض ذخیره سازی قرار نمی گیرد یا اینکه بوده است
    به طور شگفت انگیزی فقط تغییر کرده است این یک وضعیت نسبتاً رایج است.

    برای حل چنین شرایطی، پارامتر refresh_pattern در فایل
    تنظیمات پراکسی Squid، اما کاملا با فرمول و غیره. ما او
    در نظر گرفته نخواهد شد.

    refresh_pattern [-i] رشته MINV درصد پارامترهای MAXV

    این پارامتر برای تعیین سن یک شی استفاده می شود.
    (خواندن فایل) در حافظه نهان که آیا باید رفرش شود یا نه.

    MINV (حداقل زمان) - زمان بر حسب دقیقه که شی در دسترس است
    کش تازه در نظر گرفته می شود.

    MAXV (حداکثر زمان) - حداکثر زمان در دقیقه که جسم
    تازه در نظر گرفته می شود.

    گزینه ها یک یا چند مورد از گزینه های زیر هستند:

    - override-expire - نادیده گرفتن اطلاعات مربوط به انقضای تازگی جسم
    و از minv استفاده کنید.

    - override-lastmod - نادیده گرفتن اطلاعات تاریخ اصلاح فایل و
    از MINV استفاده کنید

    - reload-into-ims - به جای درخواست یک درخواست مشتری "کش نکنید
    اسناد" (بدون کش) درخواست "در صورت تغییر از" را ارسال کنید
    (اگر-تغییر شده-از زمان)

    - نادیده گرفتن-بارگذاری مجدد - نادیده گرفتن درخواست های مشتری "اسناد کش نباشید"
    (بدون کش) یا "بارگذاری مجدد سند" (بارگذاری مجدد).

    و بنابراین، به مهمترین چیز می رسیم. خوب، چه نوع فایل هایی کمتر رایج هستند؟
    همه به روز شده؟ به عنوان یک قاعده، اینها فایل های موسیقی مختلف هستند و
    تصاویر.

    برای این کار برای عکس ها و فایل های موسیقی، تازگی اشیا را تنظیم کنید
    مثلاً 30 روز (43200 دقیقه) را فرض کنید:

    refresh_pattern -i \.gif$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.png$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.jpg$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.jpeg$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.pdf$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.zip$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.tar$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.gz$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.tgz$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.exe$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.prz$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.ppt$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.inf$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.swf$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.mid$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.wav$ 43200 100% 43200 override-lastmod override-expire
    refresh_pattern -i \.mp3$ 43200 100% 43200 override-lastmod override-expire

    تنظیمات نشان داده شده در بالا فقط یک مثال است، برای وضوح.
    ذات.

    اکنون می توانید کارایی سرور پروکسی خود را بررسی کنید
    قطعا افزایش خواهد یافت.

    نتیجه
    ———-

    سرور پراکسی Squid تنها پراکسی رایج نیست
    سرور، دیگران وجود دارد. اما آمار نشان می دهد که بیشتر
    از این سرور پروکسی خاص استفاده کنید، اما هنوز هم بسیار است
    مبتدی ها در تنظیم مشکل دارند.

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

    ارسال شده در: ,
    برچسب زده شده: , ,اکنون محدودیت سرعت دانلود برای گروه های مختلف افراد وجود خواهد داشت. خوب، آماده ای؟ :) برو…

    شروع کنید. یک ACL ایجاد کنید

    ایجاد گروه های ACL:
    acl mp3_deny src "/etc/squid/lists/mp3_deny_users"
    acl super_users src "/etc/squid/lists/super_users"
    acl deny_all src "/etc/squid/lists/deny_all_users"

    بنابراین ما لیست ها یا بهتر است بگوییم سه گروه از کاربران را ایجاد کرده ایم که آدرس آنها در فایل ها موجود است. از آنجایی که آی‌پی‌ها قبل از من تعیین شده‌اند، و آنها بر سر رزولوشن این که چه چیزی دانلود شود و چه چیزی به توافق نرسیده‌اند، نوشتن IP آنها در یک فایل راحت‌تر از ایجاد محدوده‌ها خواهد بود، اما هر چه بخواهید :)
    acl mego_super_user src 192.168.0.0-256 # =) فقط مراقب این محدوده باشید
    نمونه محتوای فایل لیست
    nano "/etc/squid/lists/mp3_deny_users"
    192.168.0.213
    192.168.0.75
    192.168.0.52
    195.168.0.254

    اکنون زمان ایجاد لیستی از مجوزهای رد شده است:
    acl mobile urlpath_regex -i (\.thm|\.sis|\.swf|\.jad|\.jar|\.3gp|\.mp4)((\#|\&|\?|\s)(1 )|$)
    acl چند رسانه ای urlpath_regex -i (\.swf|\.mp3|\.m3u|\.flv|\.wav|\.vqf|\.avi|\.wmv|\.mpeg|\.mp|\.asf| \.mpe|\.dat|\.mpg|\.wma|\.midi|\.aiff|\.au|\.qt|\.ram|\.rm|\.iso|\.raw|\. mov)((\#|\&|\?|\s)(1)|$)
    بایگانی acl urlpath_regex -i (\.tar.gz|\.gz|\.tar|\.zip|\.rar|\.cab|\.arj|\.lzh|\.ace|\.7-zip| \.gzip|\.uue|\.bz2|\.iso)((\#|\&|\?|\s)(1)|$)
    acl soft urlpath_regex -i (\.exe|\.msi|\.rpm)((\#|\&|\?|\s)(1)|$)
    acl mp3 urlpath_regex -i (\.wav|\.mp3|\.mp4)((\#|\&|\?|\s)(1)|$)

    این همه چیز است، سطل ششم بیشترین علاقه را دارد:
    هر یک از آنها همه چیز را با سرعت 10 پمپ می کند، اگر سرعت در زیرشبکه بیشتر شود، کانال برش شروع می شود.
    اگر آنها از زیر شبکه های دیگر نیز دانلود می کنند و بیش از دو مورد از آنها وجود دارد، حتی در آن صورت سرعت شروع به کاهش می کند ...
    اگر این کار را روی فریاها انجام می دهید، پس هنگام ساخت ماهی مرکب، حتما آن را با گزینه --enable-delay-pools بسازید!
    P.S. من تمام تلاشم را کردم تا آن را تا حد امکان شفاف کنم. اگر من به شما کمک کردم تا آن را بفهمید، پس این موضوع را بیهوده ننوشتم. من خیلی خوشحال خواهم شد. اگر چیزی مشخص نیست سوال بپرسید حتما جواب میدم.
    P.S.S. پیکربندی پیش‌فرض Squid به نوشتن همه اینها در خواب کمک کرد، اگر شروع به خواندن آن کنید، می‌توانید چیزهای جدید زیادی پیدا کنید!
    P.S.S.S KorP عزیز، متأسفانه اکنون زمانی برای دامنه نیست، بنابراین فعلاً آنچه را که در ذهنم دارم می نویسم
    UPD.
    reply_body_max_size 1000 اجازه می دهد همه فایل های بزرگتر از 1 کیلوبایت دانلود نمی شود

    SQUID برنامه ای است که درخواست های HTTP/FTP را از کلاینت ها دریافت می کند و از آنها برای دسترسی به منابع اینترنتی استفاده می کند. استفاده از سرور پروکسی (Squid) امکان استفاده از آدرس های IP ساختگی را در شبکه داخلی (Masquerading - maskerading) فراهم می کند، سرعت پردازش درخواست را در هنگام دسترسی مجدد (caching) افزایش می دهد و همچنین امنیت بیشتری را فراهم می کند.

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

    SQUID چیزی بیش از یک سرور پروکسی است. این یک نوع استاندارد برای ذخیره اطلاعات در اینترنت است. با توجه به فراگیر بودن SQUID، من به پیکربندی آن در کتاب توجه زیادی کرده ام.

    سرور پروکسی Squid توسط چندین برنامه تشکیل شده است، از جمله: خود برنامه سرور squid و همچنین برنامه dnsserver، یک برنامه پردازش پرس و جو DNS. هنگامی که برنامه squid راه اندازی می شود، ابتدا تعداد معینی از فرآیندهای dnsserver را شروع می کند که هر کدام به تنهایی اجرا می شوند و فقط می توانند یک جستجوی DNS را انجام دهند. این باعث کاهش زمان کلی پاسخ DNS می شود.

    15.2. نصب SQUID

    SQUID را می توان از منبع یا به عنوان بسته RPM نصب کرد. نصب بسته SQUID RPM بسیار آسان است - تنها کاری که باید انجام دهید این است که دستور را وارد کنید

    rpm –ih squid-2.3.STABLE2-3mdk.i586.rpm

    من از Squid نسخه 2.3 استفاده می کنم. نسخه جدیدتر به عنوان کد منبع موجود است. منابع را می توان از ftp://ftp.squid.org دریافت کرد. برای باز کردن کدهای منبع، دستورات زیر را اجرا کنید:

    gunzip squid-2.3.STABLE2-3-src.tar.gz
    tar xvf squid-2.3.STABLE2-3-src.tar.gz

    حالا بیایید مستقیم به نصب برویم:

    ./configure --prefix=/usr/local/squid

    SQUID در دایرکتوری مشخص شده توسط کلید پیشوند - /usr/local/squid نصب می شود. علاوه بر پیشوند، می توانید از کلیدهای ارائه شده در جدول استفاده کنید. 15.1.

    پیکربندی گزینه های اسکریپت جدول 15.1

    15.3. تنظیم SQUID

    سرور SQUID از فایل پیکربندی squid.conf استفاده می‌کند که معمولاً در فهرست /etc/squid (یا /usr/local/squid/etc در نسخه‌های قبلی) قرار دارد. آن را با هر ویرایشگر متنی مانند joe/usr/local/squid/etc/squid.conf باز کنید. بعد، دنباله اقدامات زیر را انجام دهید:

    1. پروکسی ارائه دهنده را مشخص کنید:

    در این مورد، پروکسی .isp.ru به "همسایه" ما تبدیل می شود (همسایه، همتا).

    2. مقدار حافظه موجود برای squid و فهرست کش را تنظیم کنید:

    cache_dir /usr/local/squid/cache 1024 16 256

    جایی که: 65536 - مقدار RAM بر حسب بایت که می توان برای کش استفاده کرد.

    1024 - تعداد مگابایت تخصیص داده شده روی دیسک در دایرکتوری مشخص شده برای کش. این دایرکتوری فایل های کش شده را ذخیره می کند. نیازی به گفتن نیست، اگر چندین هارد دیسک دارید، کش باید روی سریعترین هارد قرار گیرد.

    3. میزبان هایی را که مجاز به دسترسی به سرور پروکسی هستند را مشخص کنید:

    میزبان های مجاز acl src 192.168.1.0/255.255.255.0
    acl localhost src 127.0.0.1/255.255.255.255

    4. پورت های SSL مجاز را مشخص کنید:

    http_access انکار CONNECT !SSL_ports

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

    http_access مجاز به میزبانی_هاست

    6. کاربرانی که مجاز به استفاده از ماهی مرکب هستند را مشخص کنید (در این مثال، اینها den، admin، developer هستند):

    acl allow_users user den admin developer
    http_access به مجاز_users اجازه می دهد

    تگ های maxium_object_size و maxium_object محدودیت هایی را برای اندازه اشیاء ارسال شده تعیین می کنند.

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

    15.4. دویدن SQUID

    اکنون که تنظیمات اولیه SQUID را کامل کرده اید، باید آن را اجرا کنید: /usr/local/squid/bin/squid -z

    گزینه -z برای ایجاد (به صفر رساندن) دایرکتوری حاوی حافظه نهان مورد نیاز است. معمولاً این پارامتر فقط در اولین شروع مورد نیاز است. برخی دیگر از پارامترهای مفید SQUID در جدول 1 نشان داده شده است. 15.2.

    پارامترهای SQUID جدول 15.2

    پارامتر شرح
    -یک بندر پورت درخواست های HTTP ورودی را مشخص می کند
    خروجی اشکال زدایی را به خطای استاندارد فعال می کند (در stderr)
    فایل -f یک فایل پیکربندی را مشخص می کند
    -h اطلاعات کمکی را ارائه می دهد
    -k پیکربندی مجدد یک سیگنال HUP ارسال می کند
    -k خاموش شدن خاموش کردن سرور پروکسی
    -k بکش تکمیل بدون بستن گزارش‌ها
    پورت -u پورت درخواست های ICP ورودی را مشخص می کند
    -s ورود به سیستم را با syslog فعال کنید
    -v اطلاعاتی در مورد نسخه SQUID می دهد
    -دی هنگام راه اندازی تست DNS انجام ندهید
    تبدیل به دیمون نشو (فرآیند پس‌زمینه)
    بازیابی سریعتر بلایا

    15.5. فرمت فایل squid.conf

    فایل squid.conf شامل گزینه های مختلف پیکربندی سرور پراکسی است. بیایید همه آنها را به ترتیب بررسی کنیم.

    15.5.1. تنظیمات شبکه

    پورت برای درخواست های مشتری (شکل 15.1 را ببینید):

    برنج. 15.1. تنظیمات پروکسی


    اگر "همسایه" وجود ندارد (همتا)، سپس icp_port 0 را تنظیم کنید

    پورت برای ارتباط با همسایگان - ICP - از طریق TCP. هنگام استفاده از این گزینه، هنگام تنظیم htcp_port 4827 باید سوئیچ --enable-htcp را تنظیم کنید.

    پارامتر بعدی مشخص می کند که اگر هاست دارای چندین رابط باشد، بسته های ورودی را در کدام آدرس دریافت کند. نسخه 2.3 این گزینه را ندارد:

    هنگام ارسال اطلاعات، از آدرس مشخص شده به عنوان منبع استفاده می شود:

    یکسان است، اما برای ICP:

    (به طور مشابه، برای ICP)

    یکسان است، اما برای ICP (هنگام دریافت):

    به طور پیش فرض، این حالت فعال است، اما اگر سرور پراکسی پشت یک سنگر (دیوار آتش) باشد، پارامتر passive_ftp باید غیرفعال شود:

    15.5.2. گزینه های همسایه

    همسایگان در قالب زیر توصیف می شوند:

    cache_peer نام میزبان گزینه های icp-port proxy-port را تایپ کنید

    کجا: نام میزبان - نام همسایه؛

    نوع - نوع همسایه: والدین - ارشد، خواهر و برادر - همان سطح؛

    proxy-port - پورت سرور پروکسی;

    icp-port - پورت ICP;

    گزینه ها - گزینه ها.

    در این حالت هر همسایه در یک خط جداگانه نوشته می شود.

    والد - اگر هیچ درخواستی در حافظه پنهان محلی وجود نداشته باشد، به والد هدایت می شود. یکی، اگر درخواست در حافظه پنهان خود نباشد، آن را بیشتر فوروارد می کند و غیره. پاسخ آماده شده را به برده برمی گرداند. اگر squid TCP_DENIED را از والدین دریافت کند، آنگاه مستقیماً به منبع دسترسی پیدا خواهد کرد.

    خواهر و برادر - اگر درخواست در حافظه پنهان محلی نباشد، درخواست به خواهر و برادر هدایت می شود. اگر درخواستی در آن وجود نداشته باشد، پیامی در مورد آن برمی گرداند، هیچ اقدام دیگری انجام نمی شود.

    15.5.3. مدیریت کش

    هنگامی که به این سطح پر شدن حافظه پنهان (به صورت درصد) رسید، یک فرآیند سریع حذف اشیاء قدیمی آغاز می شود.

    فرآیند حذف با رسیدن به این سطح متوقف می شود.

    حداکثر اندازه شیئی که باید ذخیره شود.

    فایل های کوچکتر ذخیره نمی شوند.

    15.5.4. چوب بری

    حالت‌های ثبت SQUID به همراه گزارش‌های مربوطه در زیر فهرست شده‌اند. اگر به گزارشی نیاز ندارید، هیچ گزارشی را به جای نام فایل تنظیم کنید.

    cache_access_log /usr/local/squid/logs/access.log

    هر درخواست به SQUID ثبت می شود. گزارش /usr/local/squid/logs/access.log است.

    cache_log /usr/local/squid/logs/cache.log

    شروع فرآیند ثبت می شود. گزارش /usr/local/squid/logs/cache.log است.

    cache_store_log /usr/local/squid/logs/store.log

    ورودی های شی در حافظه پنهان ثبت می شوند. گزارش /usr/local/squid/logs/store.log است.

    15.5.5. گزینه های برنامه خارجی

    ایمیل مشخص شده در اینجا به جای رمز عبور برای دسترسی ناشناس به سرورهای ftp استفاده می شود.

    dns_nameservers لیست آدرس های IP

    مقدار این پارامتر به جای لیست سرورهای DNS تعریف شده در فایل /etc/resolv.conf استفاده می شود. پیش فرض هیچ کدام است.

    cache_dns_program /usr/local/squid/bin/dnsserver

    این پارامتر برنامه ای را برای حل آدرس های IP به نام ها (سرور DNS) مشخص می کند.

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

    authenticate_program /usr/local/squid/bin/ncsa_auth /usr/local/squid/etc/passwd

    برنامه احراز هویت سنتی در ../auth_modules/NCSA تعریف شده است.

    15.5.6. ACL ها

    ACL (لیست های کنترل دسترسی) - لیست های کنترل دسترسی. اغلب اوقات نیاز به گروه بندی پارامترهای یک نوع در یک کل واحد برای پردازش بعدی آنها وجود دارد. برای حل موثر این مشکل از لیست های کنترل دسترسی (ACL) استفاده می شود. مثلا:

    این ورودی به این معنی است که لیستی از پورت های SSL از نوع پورت ایجاد می شود. موارد لیست شماره پورت 443 و 563 هستند.

    شما می توانید یک عنصر جدید به یک لیست موجود (افزودن پارامتر) مانند این اضافه کنید:

    می توانید یک عنصر غیر ضروری را با استفاده از پارامتر del حذف کنید: acl del SSL_ports 999

    پارامتر ren (از تغییر نام) به شما امکان می دهد نام لیست را تغییر دهید:

    acl ren SSL_ports Allowed_ports

    گزینه flush به شما امکان می دهد تمام لیست ها را به همراه محتوای آنها حذف کنید:

    استاندارد ACL مستلزم آن است که نام لیست باید قبل از نماد $ باشد. به عبارت دیگر، تمام مثال‌های بالا باید به طور کلی اشتباه باشند. به عنوان مثال، برای ایجاد یک لیست، باید از ورودی استفاده کنید:

    با این حال، اکثر فیلترها، مانند SQUID، این الزام را نادیده می گیرند و می توانید نام لیست را بدون علامت دلار مشخص کنید.

    بنابراین، ACL تعریف یک لیست دسترسی است. فرمت زیر را دارد:

    نام acl نوع رشته

    کجا: type نوع شی است.

    رشته یک عبارت منظم است.

    می توانید از یک لیست استفاده کنید:

    نام acl نوع نام فایل

    پارامترها در هر خط یک پارامتر برشمرده می شوند. انواعی که می توان هنگام کامپایل ACL استفاده کرد در جدول 1 فهرست شده است. 15.3.

    انواع ACL جدول 15.3

    تایپ کنید توضیحات را تایپ کنید
    src ip-address/netmask آدرس IP مشتریان را مشخص می کند
    src addr1-addr2/netmask محدوده ای از آدرس ها را مشخص می کند
    Dst ip-address/netmask URL های میزبان را مشخص می کند
    زمان زمانی که روز یک حرف از SMTWHFA است
    بندر لیست بندر
    پورت پورت 1 – پورت 2 محدوده بندر
    پروتو پروتکل - HTTP یا FTP
    روش روش - GET یا POST
    مرورگر [-i] regexp هدر User-Agent مقایسه می شود

    [-i] - مورد حروف نادیده گرفته می شود.

    15.5.7. گزینه های دسترسی

    http_access اجازه می دهد|نام اکلی را رد کنید

    اجازه دسترسی به پروکسی HTTP.

    icp_access اجازه می دهد | انکار نام مستعار

    اجازه دسترسی به پروکسی از طریق ICP.

    miss_access اجازه | انکار نام مستعار

    اجازه دهید پاسخ MISS را از شما دریافت کند.

    cache_peer_access cache-host allow|انکار نام مستعار

    محدود کردن درخواست ها به این همسایه - پسوند برای cache_peer_domain.

    proxy_auth_realm وب سرور Squid-caching proxy

    رشته ای از متن که هنگام درخواست نام/گذرواژه دسترسی به حافظه پنهان روی صفحه مشتری نمایش داده می شود.

    15.5.8. گزینه های مدیریت

    این پارامتر آدرس ایمیلی را مشخص می‌کند که در صورت توقف عملکرد Squid، ایمیل به آن ارسال می‌شود.

    هنگام اجرای SQUID به عنوان root، UID را به موردی که در پارامتر cache_effective_user مشخص شده است تغییر دهید.

    هنگام اجرای SQUID به عنوان root، GID را به چیزی که در پارامتر cache_effective_group مشخص شده است تغییر دهید.

    Visual_hostname نام میزبان

    این نام در پیام های خطا ذکر خواهد شد.

    این پارامتر فهرستی از نام مستعار را برای نام میزبان مشخص می کند.

    15.6. انصراف از تبلیغات فیلتر بنر

    آیا نمی خواهید وقت اضافی را برای دانلود بنرهای تبلیغاتی تلف کنید؟ من هم همینطور. خوشبختانه SQUID حل این مشکل را نسبتاً آسان می کند. فقط خطوط زیر را در فایل /usr/local /etc/squid/squid.conf خود قرار دهید:

    acl good_url url_regex "/usr/local/etc/squid/acl/good_url"
    acl bad_urlpath urlpath_regex "/usr/local/etc/squid/acl/bad_urlpath"
    acl bad_url url_regex "/usr/local/etc/squid/acl/bad_url"
    http_access انکار bad_urlpath !good_url
    http_access deny bad_url !good_url

    بر این اساس، سه فایل باید ایجاد شود: good_url، bad_url_path و bad_url. در فایل bad_url، باید URL های "بد" را قرار دهید، به عنوان مثال:

    ^http://.*-ad.flycast.com/server/img/
    ^http://1000-stars-ru/cgi-bin/1000-cgi
    ^ http://1000.stars.ru/cgi-bin/1000.cgi

    و در فایل bad_url_path - یک مسیر "بد"، به عنوان مثال:

    معمولا چنین نام هایی دارای بنر هستند.

    نمونه هایی از فایل های good_url، bad_url_path و bad_url را می توانید در صفحه اصلی من پیدا کنید - http://dkws.narod.ru

    15.7. جداسازی کانال

    فرض کنید باید یک سرور پراکسی را به گونه ای تنظیم کنید که یک گروه از رایانه ها بتوانند با یک سرعت و گروهی دیگر با سرعت دیگری کار کنند. این ممکن است برای تمایز بین کاربرانی که از کانال برای کار استفاده می‌کنند و کاربرانی که از منابع کانال برای اهداف خانگی استفاده می‌کنند، ضروری باشد. طبیعتاً پهنای باند کانال برای اولی مهمتر از دومی است. با استفاده از پروکسی SQUID، می توانید کانال را تقسیم کنید.

    برای شروع، در فایل پیکربندی مشخص کنید که چه تعداد Pool، یعنی گروه های کاربری خواهید داشت:

    سپس کلاس های Pool را تعریف کنید. در کل سه کلاس وجود دارد:

    1. محدودیت پهنای باند یک کانال برای همه استفاده می شود.

    2. یک محدودیت کلی و 255 فردی برای هر گره شبکه کلاس C.

    3. هر زیرشبکه کلاس B محدودیت خاص خود و یک محدودیت جداگانه برای هر میزبان خواهد داشت.

    دستورات زیر را به فایل squid.conf اضافه کنید:

    delay_class 1 1 # اولین استخر کلاس 1 را برای کاربران خانگی تعریف می کند
    delay_class 2 2 # یک استخر کلاس دوم را برای کارمندان تعریف می کند

    اکنون گره هایی را که به استخرها تعلق دارند را تنظیم کنید:

    سپس محدودیت ها را مشخص کنید:

    delay_parameters 1 14400/14400
    delay_parameters 2 33600/33600 16800/33600

    همانطور که در بالا اشاره کردم، برای یک استخر کلاس 1، یک محدودیت برای تمام رایانه های موجود در استخر استفاده می شود - 14400 بایت. عدد اول میزان پر شدن کل استخر (بایت/ثانیه) را مشخص می کند. دوم حداکثر حد است.

    برای یک استخر کلاس 2، به ترتیب، محدودیت ها برای کل زیر شبکه و به طور جداگانه برای هر کاربر استفاده می شود. اگر ما یک استخر کلاس 3 تعریف کرده بودیم، محدودیت های آن چیزی شبیه به این خواهد بود:

    delay_parameters 3 128000/128000 64000/128000 12800/64000

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

    15.8. نرم افزار حسابداری ترافیک

    برای نظارت بر عملکرد SQUID و به طور کلی برای محاسبه ترافیک، می توانید از برنامه های زیر استفاده کنید:

    sqmgrlog - http://www.ineparnet.com.br/orso/index.html

    mrtg - http://www.switch.ch/misc/leinen/snmp/perl/

    iptraf - http://dkws.narod.ru/linux/soft/iptraf-2.4.0.tar.gz

    bandmin - http://www.bandmin.org

    webalizer (تحلیل آپاچی) - http://www.mrunix.net/webalizer/

    اسناد کاملاً خوانا با این برنامه ها ارائه شده است، بنابراین من در مورد استفاده از آنها با جزئیات صحبت نمی کنم. برنامه MRTG در بخش 8.5 توضیح داده شده است.

    15.9. راه اندازی مشتریان

    اکنون که سرور پراکسی را راه‌اندازی کردید، بیایید به راه‌اندازی کلاینت‌ها، یعنی مرورگرهای کاربر برویم. من شک ندارم که شما می دانید چگونه این یا آن مرورگر را پیکربندی کنید، من فقط روند پیکربندی برخی از مرورگرهای رایج را به شما یادآوری می کنم.

    اینترنت اکسپلورر 5

    ابزارهای منو → گزینه های اینترنت → برگه اتصال → تنظیمات شبکه. در پنجره ای که ظاهر می شود، پارامترهای مورد نیاز، یعنی نام سرور پراکسی و پورت آن را تنظیم کنید (شکل 15.2 را ببینید).

    برنج. 15.2. راه اندازی اینترنت اکسپلورر


    Netscape Communicator

    منوی ویرایش → تنظیمات → پیشرفته → پراکسی ها → پیکربندی دستی پروکسی → مشاهده (شکل 15.3 را ببینید).

    برنج. 15.3. پیکربندی Netscape Communicator


    فاتح

    تنظیمات منو → تنظیمات → پروکسی (شکل 15.4 را ببینید).

    برنج. 15.4. راه اندازی Konqueror