| ext_time_quota_acl(8) | System Manager's Manual | ext_time_quota_acl(8) |
نام (NAME)
ext_time_quota_acl - برنامهی کمکی ACL خارجی سهمیه زمانی اسکوئید
نسخه 1.0
خلاصه دستور (SYNOPSIS)
ext_time_quota_acl [-b database] [-d level] [-p pauselen] [-h] configfile
توضیحات (DESCRIPTION)
ext_time_quota_acl به مدیر سیستم امکان میدهد تا برای کاربران اسکوئید بودجههای زمانی تعریف کند تا مدتزمان استفاده از اسکوئید را محدود سازد.
این ویژگی برای تخصیص زمان ناهار در شرکتها، راهاندازیهای پرتال وایفای با پرداخت بر دقیقه یا کنترل والدین بر فرزندان مفید است. مدیر سیستم میتواند یک بودجه زمانی (بهعنوان مثال ۱ ساعت در روز) تعیین کند که از طریق این برنامهی کمکی اعمال میشود.
گزینهها (OPTIONS)
- -b database
- نام فایل پایگاهداده پایدار. این مقدار بهطور پیشفرض ext_time_quota.db در دایرکتوری وضعیت اسکوئید است.
- -p pauselen
- pauselen بر حسب ثانیه مشخص میشود و فاصلهی زمانی بین دو درخواست را تعیین میکند تا به عنوان بخشی از همان نشست در نظر گرفته شوند. وقفههای کوتاهتر از این مقدار جزء سهمیه محاسبه خواهند شد و وقفههای طولانیتر نادیده گرفته میشوند. مقدار پیشفرض ۳۰۰ ثانیه (۵ دقیقه) است.
- -d
- سطح پرگویی را برای بخش اشکالزدایی ۸۲ تنظیم میکند (۰ تا ۹؛ پیشفرض ۱ است؛ debug_options را ببینید).
- -h
- نمایش یک راهنمای کوتاه در خط فرمان.
- configfile
- این فایل حاوی تعریف بودجههای زمانی برای کاربران است.
پیکربندی (CONFIGURATION)
سهمیههای زمانی کاربران در یک فایل متنی تعریف میشوند که معمولاً در مسیر /etc/squid/time_quota قرار دارد. هر خطی که با «#» شروع شود، حاوی توضیح است و نادیده گرفته میشود. هر خط باید با یک کاربر شروع شود و به دنبال آن یک بودجه زمانی و دوره زمانی متناظر که با «/» جدا شدهاند، بیاید. در ادامه یک نمونه فایل آورده شده است:
john 8h / 1d
littlejoe 1h / 1d
babymary 30m / 1w
کاربر john دارای بودجه زمانی ۸ ساعت در هر روز است، littlejoe فقط مجاز به ۱ ساعت است و babymary بینوا تنها ۳۰ دقیقه در هفته فرصت دارد.
میتوانید از «s» برای ثانیه، «m» برای دقیقه، «h» برای ساعت، «d» برای روز و «w» برای هفته استفاده کنید. مقادیر عددی میتوانند به صورت عدد صحیح یا همراه با بخش اعشاری باشند؛ برای نمونه «0.5h» به معنای ۳۰ دقیقه است.
این برنامهی کمکی در فایل squid.conf با استفاده از دستورالعمل external_acl_type پیکربندی میشود و سپس کنترلهای دسترسی که از آن برای مجاز یا رد کردن استفاده میکنند تعریف میگردند.
در ادامه یک نمونه آورده شده است:
acl users proxy_auth REQUIRED
http_access deny !users
# Define program and quota file
external_acl_type time_quota ttl=60 children-max=1 %LOGIN /usr/libexec/ext_time_quota_acl /etc/squid/time_quota
acl noquota src all
acl time_quota external time_quota
deny_info ERR_ACL_TIME_QUOTA_EXCEEDED noquota
http_access deny !time_quota noquota
در این مثال، پس از راهاندازی مجدد اسکوئید، دسترسی تنها تا زمانی برای کاربران مجاز خواهد بود که از بودجه زمانی آنها باقی مانده باشد. اگر بودجه تمام شود، یک صفحه خطا به کاربر نمایش داده خواهد شد و به او اطلاع میدهد.
در این مثال ما از کنترل دسترسی مجزای users و لیست کنترل دسترسی noquota استفاده میکنیم تا اعلان درخواست نام کاربری و گذرواژه از پیامهای اتمام سهمیه جدا بماند.
شناسه کاربر صرفاً یک مقدار کلید یکتا است. مثال بالا از %LOGIN و نام کاربری استفاده میکند، اما هر یک از تگهای فرمت external_acl_type میتواند به جای آن جایگزین شود. %EXT_TAG, %LOGIN, %EXT_USER, %SRC, %SRCEUI48 و %SRCEUI64 همگی از گزینههای محتمل برای شناسایی کلاینت هستند. ویکی اسکوئید نمونههای بیشتری در https://wiki.squid-cache.org/ConfigExamples دارد.
محدودیتها (LIMITATIONS)
این برنامهی کمکی تنها دسترسی به اینترنت از طریق پروتکل HTTP را کنترل میکند و سایر پروتکلها مانند VOIP، ICQ، IRC، FTP، IMAP، SMTP یا SSH را کنترل نمیکند.
مرورگرهای دسکتاپ معمولاً قادر به مدیریت احراز هویت با پروکسیهای HTTP مانند squid هستند. اما امروزه برنامهها و دستگاههای مختلف و متعددی (گوشیهای هوشمند، بازیهای دستگاههای تلفن همراه و...) از اینترنت بر بستر HTTP استفاده میکنند. این دستگاهها اغلب قادر به کار از طریق یک پروکسی نیازمند احراز هویت نیستند. برای اعتبارسنجی این دستگاهها و نرمافزارها، روشهایی غیر از احراز هویت با %LOGIN مورد نیاز است.
یک راهکار عمومیتر برای کنترل دسترسی به اینترنت میتواند رویکرد پرتال اسیر (کپتیو پرتال مانند pfSense یا ChilliSpot) با استفاده از %SRC، %SRCEUI48 و %SRCEUI64 به عنوان کلید، یا شاید یک راهکار مبتنی بر 802.11X باشد؛ هرچند مورد آخر اغلب توسط دستگاههای تلفن همراه پشتیبانی نمیشود.
پیادهسازی (IMPLEMENTATION)
هنگامی که این برنامهی کمکی فراخوانی میشود، از آن پرسیده میشود که آیا کاربر فعلی مجاز به دسترسی به اسکوئید هست یا خیر. برنامهی کمکی بودجه زمانی باقیمانده این کاربر را کاهش میدهد و در صورت باقی ماندن بودجه، مقدار OK را بازمیگرداند؛ در غیر این صورت، مقدار ERR را بازخواهد گرداند.
پارامتر ttl=N در فایل squid.conf تعیین میکند که این برنامهی کمکی هر چند وقت یکبار فراخوانی شود؛ در پیکربندی نمونه از یک TTL یک دقیقهای استفاده شده است. سازوکار تعامل بدین صورت است که اسکوئید تنها زمانی برنامهی کمکی را برای درخواستهای جدید فراخوانی میکند اگر بیش از مقدار TTL ثانیه از آخرین بررسی گذشته باشد. این نحوه برخورد باعث مقداری لغزش و عبور از سهمیه به هر میزانی که پیکربندی شده است میشود. مقدار TTL را میتوان به هر میزان کوتاهی که لازم است تنظیم کرد، حتی تا صفر؛ هرچند به دلیل تفکیکپذیری یکثانیهای سهمیه، مقادیر ۱ یا بیشتر توصیه میشوند.
اگر دوره زمانی پیکربندیشده (مانند «1w» برای babymary) به پایان برسد، بودجه زمانی به مقدار پیکربندیشده بازگردانده میشود و به کاربر امکان میدهد با بودجهای تازه به اسکوئید دسترسی داشته باشد.
اگر زمان بین درخواست فعلی و درخواست قبلی بیشتر از pauselen باشد (پیشفرض ۵ دقیقه است و با پارامتر خط فرمان -p قابل تنظیم است)، درخواست فعلی به عنوان یک درخواست جدید در نظر گرفته میشود و بودجه زمانی کاهش نمییابد. اگر این زمان کمتر از pauselen باشد، هر دو درخواست به عنوان بخشی از همان دوره زمانی فعال در نظر گرفته میشوند و بودجه زمانی به میزان اختلاف زمان کاهش خواهد یافت. این قابلیت به کاربر اجازه میدهد تا وقفههای دلخواهی را در طول استفاده از اینترنت داشته باشد بدون اینکه بودجه زمانی خود را از دست بدهد.
ایدههای بیشتر (FURTHER IDEAS)
ایدههای زیر میتوانند این برنامهی کمکی را بیشتر بهبود دهند. آیا کسی مایل به کمک است؟ از هرگونه پشتیبانی یا بازخوردی استقبال میشود!
- باید روشی برای مشاهده بودجه زمانی پیکربندیشده و باقیمانده توسط کاربر وجود داشته باشد. این امر میتواند با پیادهسازی یک صفحه وب که به پایگاهدادهی برنامهی کمکی دسترسی داشته باشد و دادههای متناظر را نشان دهد محقق شود. یکی از مسائلی که باید حل شود احراز هویت کاربران است.
- ما میتوانیم همیشه «OK» برگردانیم و از این ماژول صرفاً به عنوان یک ردیاب استفاده از اینترنت استفاده کنیم تا مشخص شود چه کسی چه مدت در وب مانده است.
نویسنده (AUTHOR)
این برنامه و مستندات توسط Dr. Tilmann Bubeck <t.bubeck@reinform.de> نوشته شده است.
حق نشر (COPYRIGHT)
* Copyright (C) 1996-2026 The Squid Software Foundation and
contributors
*
* Squid software is distributed under GPLv2+ license and includes
* contributions from numerous individuals and organizations.
* Please see the COPYING and CONTRIBUTORS files for details.
حق نشر این برنامه و مستندات برای نویسندگان نامبرده در بالا محفوظ است.
تحت مجوز عمومی همگانی گنو (GNU GPL) نسخه ۲ یا بالاتر (GPLv2+) توزیع شده است.
پرسشها (QUESTIONS)
پرسشها
در مورد
استفاده از
این برنامه
را میتوان
به لیست
ایمیل
کاربران
اسکوئید
ارسال کرد:
Squid Users mailing list <squid-users@lists.squid-cache.org>
گزارش باگها (REPORTING BUGS)
گزارشهای باگ باید به زبان انگلیسی ارسال شوند. برای اطلاع از جزئیات مواردی که باید در گزارش باگ خود بگنجانید، https://wiki.squid-cache.org/SquidFaq/BugReporting را ببینید.
گزارش باگها یا اصلاحیهها را در https://bugs.squid-cache.org ثبت کنید.
گزارش باگهای امنیتی جدی را به Squid Bugs <squid-bugs@lists.squid-cache.org> ارسال نمایید.
پیشنهادها
و ایدهها
برای
پیشرفتهای
جدید را به
لیست ایمیل
توسعهدهندگان
اسکوئید
ارسال کنید:
Squid Developers mailing list
<squid-dev@lists.squid-cache.org>
همچنین ببینید (SEE ALSO)
squid(8), GPL(7),
ویکی
پرسشهای
متداول
اسکوئید:
https://wiki.squid-cache.org/SquidFaq
راهنمای
پیکربندی
اسکوئید:
http://www.squid-cache.org/Doc/config
| 22 March 2011 |