بلاک کردن سایت ها برای برخی از کاربران

توسط اسکویید می توانید کاربرانی را از مشاهده سایت ها، یا عدم دسترسی آنها به سایت در ساعت کاری در اداره منع کنید. با تعریف ACL هایی و استفاده از آدرس IP ماشین آن کاربر و تعیین یک یا چند سایت خاص و یا با استفاده از الگو هایی برای تعیین سایت ها برای کاربران محدودیت ایجاد کنیم. در اسکویید همه ی محدودیت ها توسط ACL و تعریف آنها انجام می شود، می توانید سایت هایی که کاربران یا برخی از آنها می بینند را Cache نکنید، در ساعاتی خاص اجازه دسترسی بدهید، محدودیت بر حجم Download و Upload برای کاربران بگذارید، پهنای باند را کنترل کتید و غیره. در این مطلب قصد داریم با تعریف ACL هایی برخی از کاربران را با استفاده از آدرس IP آنها برای مشاهده سایت هایی محدود کنیم.کاربران می توانن تنها در ساعت اداری (8 صبح تا 12 ظهر و از ساعت 13 ظهر تا 18 عصر) به سایت ها دسترسی داشته و برخی از IP ها نیز مسدود می شوند.فایل squid.conf را باز کنید

vi /etc/squid/squid.conf

و ACL های زیر را در آن تعریف کنید. هر ACL داری یک نام و یک نوع است. همچنین یک مقدار متناسب با نوع آن. دو ACL تعریف شده زیر به نام های morning_hours و evening_hours از نوع time که بازه زمانی ساعت اداری را مشخص می کنند. (میان ساعت 12 تا 13 وقت نماز و ناهار و … هست).

acl morning_hours time M T W H F 8:00-12:00

acl evening_hours time M T W H F 13:00-18:00

از دو ACL زیر نخستین ACL از نوع url_regex و مقدار آن مسیر یک فایل شامل الگوهایی از URL سات ها و دمین ACL از نوع src و مقدار آن فایلی شامل آدرس های کلاینت هایی است که باید بلاک (Deny) شوند.

acl deniedDomains url_regex src “/etc/squid/deniedDomains

acl blacklistIP src “/etc/squid/blacklistIP

با استفاده از دو خط زیر سیاست Deny را بر روی ACL های تعریف شده در بالا اعمال می کنیم. دو خط زیر را اینگونه بخوانید: “آدرس های IP کلاینت های موجود در فایل مشخص شده در blacklistIP در بازه ساعت 8 صبح تا 12 ظهر و از ساعت 13 ظهر تا 18 عصر به آدرس های سایت های درون فایل مشخص شده در deniedDomains دسترسی ندارند”

http_access deny deniedDomains morning_hours blacklistIP

http_access deny deniedDomains evening_hours blacklistIP

محدودیت اعمال شده در بالا قطعن نباید شامل حال مدیران بشود (یا حتی کارمندانی دیگر که کارشان در شرکت با اینترنت است). پس با تعریف ACL زیر و سپس اعمال سیاست http_access allow به بقیه کاربران اجازه دسترسی را در تمامی ساعت ها خواهیم داد.

acl myNetworksrc “/etc/squid/acl

http_access allow myNetwork

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

آخرین گام برای تکمیل این مطلب ایجاد سه فایل است :

  • ایجاد فایل deniedDomains که فهرست الگو های URL سایت ها را نگه می دارد.

vi /etc/squid/deniedDomains

بطور مثال اسامی (الگو های) زیر را وارد کنید.

friendster
metacafe
myspace
videos.google
youtube
facebook
chatenabled.mail.google.com

  • ایجاد فایل blacklistIP که فهرست کلاینت های غیر مجاز را دارد.

vi /etc/squid/blacklistIP

بطور مثال آدرس های زیر را وارد کنید. سه آدرس نخست برای سه کلاینت و آخرین خط کل شبکه 192.168.70.0/24 را شامل می شود.

192.168.0.254
192.168.1.221
192.168.1.236
172.16.70.0/24

  • در انتها ایجاد فایل acl که فهرست کلاینت های مجاز را نشان می دهد.

vi /etc/squid/acl

آدرس های زیر را می توان شامل آن باشد.

192.168.1.0/24
172.16.70.0/24
213.44.2.126

و در نهایت دستور زیر را وارد کنید تا اسکویید را اندازی مجدد شود : (تفاوت restart و reload را در انتهای این مطلب بخوانید)

etc/init.d/squid reload/

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

برای اطلاع بیشتر از ساختار فایل squid.conf و همچنین فرمت ACL ها می توانید این مطلب را از همین سایت و این مطلب را از سایت ویکی اسکویید بخوانید.