Do trình độ có hạn nên bài viết còn sơ sài , mong mọi người góp ý.
Squid có khoảng 25 loại ACL khác nhau, một số trong chúng được sử dụng khá phổ biến.
File cấu hình chính của Squid là squid.conf ( /etc/squid/squid.conf ) , mọi thay đổi ở file này bạn cần restart lại squid để có hiệu lực.
1.Hạn chế truy cập web theo thời gian:
Code:
acl home_network src 192.168.1.0/24
acl allow_hours time M T W H F 9:00-17:00
acl RestrictedHost src 192.168.1.23
http_access deny RestrictedHost
http_access allow home_network allow_hours
Nếu bạn có các dòng trên trong file squid.conf thì các máy trong mạng nội bộ chỉ truy cập được vào mạng vào các ngày thứ 3 đến thứ 6 và trong thời gian 9h đến 17h.
Trừ máy 192.168.1.23, vì bị cấm tất cả.
M, T, W, H, F là viết tắt các ngày trong tuần ( chủ nhật : S, thứ bảy : A)
Có thể dùng D để thay bằng các ngày trong tuần ( M - F )
2.Hạn chế truy cập các website được ấn định trước :
Đầu tiên tạo 2 file ở trong thư mục /etc/squid là allowed-sites.squid và restricted-sites.squid để chứa tên các domain cho phép truy cập và cấm truy cập.
Code:
# File: /squid/allowed-sites.squid
www.hvaonline.net
fotech.org
# File: /etc/squid/restricted-sites.squid
www.sex.com
xxx.net
Nếu bạn muốn trong thời gian làm việc, cấm vào một số site và cho phép vào một số site nó thì :
Code:
acl home_network src 192.168.1.0/24
acl work_hours time M T W H F 9:00-17:00
acl GoodSites dstdomain "/etc/squid/allowed-sites.squid"
acl BadSites dstdomain "/etc/squid/restricted-sites.squid"
http_access deny BadSites
http_access allow home_network work_hours GoodSites
Bạn có thể dùng url_regex để hạn chế vào các domain name được ấn định:
Code:
acl domainname url_regex -i ^http://www
http_access deny domainname
3.Hạn chế truy cập web theo địa chỉ ip :
Bạn có thể tạo một access control list để hạn chế truy cập web trên một mạng nào đó.
Code:
acl home_network src 192.168.1.0/255.255.255.0
http_access allow home_network
acl localhost dst 127.0.0.0/8
http_access allow localhost
4.Hạn chế nội dung các file download:
Tạo một file chứ nội dung các phần đuôi của các tập tin mà bạn muốn hạn chế là blocks.files.acl nằm trong /etc/squid
Code:
\.[Ee][Xx][Ee]$
\.[Aa][Vv][Ii]$
\.[Mm][Pp][Gg]$
\.[Mm][Pp][Ee][Gg]$
\.[Mm][Pp]3$
Thêm vào squid.conf dòng
Code:
acl blockfiles urlpath_regex “/etc/squid/blocks.files.acl”
http_access deny blockfiles
5.Hạn chế truy cập theo cổng :
vd
Code:
acl httpports port 80 8000-8010 8080
http_access allow httpports
Các bạn nên duy trì và allow một số cổng. Dưới đây là một số cổng được cho là an toàn ( mặc định tỏng file squid.conf )
Code:
acl safe_ports port 80 # http
acl safe_ports port 21 # ftp
acl safe_ports port 443 563 # https snews
acl safe_ports port 70 # gopher
acl safe_ports port 210 # wais
acl safe_ports port 1025-65535 # unregistered ports
acl safe_ports port 280 # http-mgmt
acl safe_ports port 480 # gss-http
acl safe_ports port 591 # filemaker
acl safe_ports port 777 # multiling http
http_access deny !safe_ports
6.Hạn chế truy cập thep giao thức :
Code:
acl FTP proto FTP
http_access deny FTP
7.Dùng NCSA kiểm định password:
đầu tiên tạo một file password,vd /etc/squid/squid_passwd
Code:
touch /etc/squid/squid_passwd
chmod o+r /etc/squid/squid_passwd
Dùng htpasswd để add user vào pass vào file squid_passwd đó
Code:
htpasswd /etc/squid/squid_passwd vicki
New password:
Re-type new password:
Adding password for user vicki
giờ thêm vào file squid.conf
Code:
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd
acl ncsa_users proxy_auth REQUIRED
http_access allow ncsa_users
Như vậy phải dùng user và pass được add vào file squid_passwd mới có thể truy cập vào internet được.
Cũng có thể kết hợp thời gian để bắt kiểm định pass vào mốc thời gian nhất định ( tham khảo đầu bài )
Nếu bạn muốn mọi deny đều có một thông báo cho người dùng biết thì :
Tạo một file deny.php với nội dung tùy bạn, đặt vào /var/www chẳng hạn.
Code:
acl blacklist url_regex yahoo\.com vietnamnet\.vn
http_access deny blacklist
deny_info domain/deny.php blacklist
Bài viết chỉ lấy VD ở mỗi phần, bạn có thể tùy cơ ứng biến.
Tham khảo thêm nội dung file squid.conf mặc định để hiểu thêm.
Vickizw