Internet PC2 192.168.9.2/24 PC1 172.16.8.9/24 .1 .2 .2 Proxy ADSL 192.168.9.1/24 172.16.8.2/24 Hình 4.40- Mô hình Proxy 2 nhánh mạng.
Cấu hình squid cho phép các client của nhánh mạng 192.168.9.0/24 và 172.16.8.0/24 được truy cập web. Thêm vào dòng 2518 trong file cấu hình
acl Mang9 src 192.168.9.0/24 http_access allow Mang9
acl Mang8 src 172.16.8.0/24 http_access allow Mang8
- restart dịch vụ
#service squid restart
- Kiểm tra: trên mạng 192.168.9.0/24 và 172.16.8.0/24 dùng một máy có cấu hình Proxy truy cập vào internet.
4.2.3.2 Kiểm soát truy cập:
Để kiểm soát truy cập cần tạo ra các tập luật ACL (Access List)
4.2.3.2.1Hạ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
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)
4.2.3.2.2Hạ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
4.2.3.2.3Hạ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.2.3.2.4Hạ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
4.2.3.2.5Hạn chế truy cập theo cổng :
Ví dụ xây dựng Access List cho truy cập http bằng các port 80, 8000 đến 8010 và 8080
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 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
4.2.3.2.6Hạn chế truy cập thep giao thức :
Code:
acl FTP proto FTP http_access deny FTP
4.2.3.2.7Dùng NCSA kiểm định password:
Đầu tiên tạo một file password,vd /etc/squid/squid_passwd
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 đó
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
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.
acl blacklist url_regex yahoo\.com vietnamnet\.vn http_access deny blacklist
deny_info domain/deny.php blacklist
4.3 Xuất bản dịch vụ nội bộ ra ngoài mạng