بلاک کردن دانلود فایل ها با پسوند شان توسط اسکویید

با اسکویید می توان جلوی دانلود کردن فایل ها با توجه به پسوندشان را گرفت. لازم است که یک acl تعریف کرد و آدرس های lan که نباید فایل ها را دانلود کنند مشخص کرد. سپس یک فایل برای مشخص کردن الگوی پسوند ها ایجاد و الگو ها را در آن ذخیره می کنیم. سپس با acl به نام deny_info یک صفحه پیغام خطا را نشان می دهیم. در نهایت با http_access جلوی دسترسی را می گیریم.نخست فایل پیکربندی اسکویید را باز می کنیم.

vi /etc/squid/squid.conf #in centos

vi /etc/squid3/squid.conf #in ubuntu

خط زیر ACL مربوط به مشخص کردن آدرس های شبکه را نشان می دهد. به جای آدرس می توانید آدرس خود را وارد کنید. دستور زیر کلیه کلاینت های شبکه 192.168.32.0/24 را مشخص می کنید.

acl nodlfiles src 192.168.32.0/24

می توانید مانند زیر تنها یک کلاینت را مشخص کنید.

acl nodlfiles src 192.168.32.120

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

“acl blockfiles urlpath_regex “/etc/squid/no_dl_files.acl

 الگو های مشخص کننده پسوند های فایل مانند شکل زیر هستند. به طور مثال [Pp] یعنی در پسوند فایل یا P بزرگ یا p کوچک باشد. می توانید فایل را از اینجا دانلود کنید و خودتان مانند الگو های زیر و بر اساس کاراکتر های پسوند آنرا گسترش دهید. (چون case sensive است پس باشد هم حروف کوچک و بزرگ هر دو بیایند.)

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

deny_info ERR_DL_FILES blockfiles

ERR_DL_FILES نام فایل HTML ای است که در صورت دانلود کردن هر یک از فایل ها با پسوند مشخص شده توسط الگو های درون فایل blockfiles نشان داده می شوند. محل پیشفرض این فایل ها درون دایرکتوری زیر است.

cd /usr/share/squid/errors/templates # in centos

cd /usr/share/squid3/errors/templates # in ubuntu

لازم است که درون دایرکتوری مورد نظر فایل را ایجاد کنیم. با توجه به اینکه درون دایرکتوری templates هستیم (با اجرای دستور cd بالا)، دستور زیر را اجرا کنید.

vi ERR_DL_FILES

سپس محتوای شکل زیر را در آن وارد کنید. برای ذخیره فایل توسط vi اینجا را بخوانید.

 

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

 http_access deny nodlfiles blockfiles

سپس تغییرات را در فایل squid.conf ذخیره کنید (لینک vi بالا برای چگونگی ذخیره فایل ها) و سپس دستور زیر را برای restart کردن سرویس اجرا کنید. (توجه کنید که از نسخه 13.10 ابونتو یا centos 6 استفاده کرده ایم.)

service squid reload #in centos

OR

service squid restart #in centos

service squid3 reload # in ubuntu

OR

service squid3 restart # in ubuntu

پس به طور کلی خطوط زیر باید در فایل squid.conf وارد شوند.

acl nodlfiles src 192.168.32.0/24

“acl blockfiles urlpath_regex “/etc/squid/no_dl_files.acl

deny_info ERR_DL_FILES blockfiles

 http_access deny nodlfiles blockfiles

برای تنظیم کلاینت ها (مرورگر کلاینت ها) می توانید مطلب “تنظیم پراکسی بر روی کلاینت های لینوکسی” و همچنین اطلاعات بیشتر در مورد اسکویید را از اینجا بخوانید.