۱. نصب
sudo apt update
sudo apt install -y squid
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.orig۲. پیکربندی پایه
بهجای ویرایش فایل بلند اصلی، قوانین خود را در یک فایل جدا بنویسید. Ubuntu فایلهای conf.d را پیش از قوانین پیشفرض میخواند:
sudo nano /etc/squid/conf.d/10-corp.confacl corp_lan src 192.168.10.0/24
acl blocked_sites dstdomain "/etc/squid/blocked-sites.txt"
acl work_hours time SMTWH 07:00-17:00
http_access deny blocked_sites
http_access allow corp_lan work_hours
http_access deny all
http_port 3128
cache_mem 256 MB
maximum_object_size 50 MB
cache_dir ufs /var/spool/squid 5000 16 256فهرست دامنههای مسدود (نقطهی ابتدای نام یعنی همهی زیردامنهها):
printf '.example-games.com\n.example-torrent.org\n' | sudo tee /etc/squid/blocked-sites.txt۳. اعمال
sudo squid -k parse
sudo systemctl restart squid
sudo ufw allow from 192.168.10.0/24 to any port 3128 proto tcp۴. آزمایش از یک کلاینت
curl -x http://192.168.10.5:3128 -I https://www.debian.org
curl -x http://192.168.10.5:3128 -I https://www.example-games.com # باید 403 بدهد۵. گزارش
sudo tail -f /var/log/squid/access.logبرای HTTPS، Squid فقط نام دامنه را میبیند (درخواست CONNECT) و محتوای رمزگذاریشده را نمیبیند. همین برای فیلتر دامنه کافی است.