Giới thiệu về Squid Proxy Server và các bài toán ứng dụng
I. Proxy server là gì
Proxy Server có thể được hiểu như là một server trung gian chiụ tránh nhiệm điều hướng những yêu cầu từ người dúng đến tài nguyên trên Internet, cung cấp các giải pháp khác nhau về bảo mật và tính riêng tư phù hợp với chính sách của công ty, doanh nghiệp...
Proxy servers hoạt động như một tường lửa, hoặc là lớp lọc các yêu cầu truy cập web, chia sẻ các kết nối mạng và cache lại dữ liệu để cải thiện tốc độ truy cập.
Một proxy server tốt sẽ bảo vệ người dùng và mạng nội bộ khỏi các tác nhân không mong muốn trên Internet
II. Giới thiệu về Squid
Squid ilà một proxy server:
- Cung cấp môi trường quản lý truy cập.
- Hệ thống log rõ ràng..
- Cung cấp các tuỳ chọn để tối ưu hoá mạng, cài đặt đơn gỉan và cho hiệu qủa cao.
Ưu điểm
Squid cho phép các nhà cung cấp dịch vụ Internet tiết kiệm băng thông thông qua việc lưu trữ lại nội dung truy cập. Điều này có nghĩa là dữ liệu được lưu trữ lại tại proxy server và phục vụ trong nội bộ và người sử dụng sẽ thấy điều này thông qua tốc độ tải nhanh hơn đối với những nội dung được truy cập thường xuyên.
Ví dụ:
Khi 100 người dùng cùng gửi các yêu cầu tương tự nhau đến Squid-server, Squid sẽ chỉ lấy dữ liệu từ server một lần và lưu trữ lại dữ liệu đó rồi phục vụ cho 100 người dùng này.
III. Một vài bài toán bạn có thể áp dụng squid server để giải quyết vấn đề
Bài toán 1: Bạn có 2 lớp mạng A và B, tuy nhiên chúng lại không thể trao đổi thông tin với nhau. Tuy nhiên, ở giữa 2 mạng này bạn lại có 1 máy X ( hay nói cách khác X thuộc cả 2 lớp mạng A,B).
Vậy để 2 lớp mạng A, B có thể giao tiếp với nhau, bạn có thể cài đặt Squid server trên X
Bài toán 2: Chặn những trang web không mong muốn
Về việc quản lý nhân viên của mình, chính sách công ty quy định là sẽ chặn một vài trang web không mong muốn như facebook, twitter....bạn có thể cài đặt 1 Squid server cho việc quản lý truy cập tập trung này
Bài toán 3: Nếu hệ thống của bạn phục vụ cho số lượng lớn người dùng thì việc xây dựng một proxy server đặt trước Server dịch vụ cũng không phải là 1 ý tồi
IV. Cài đặt Squid
Cài đặt Squid trên CentOS 7/8
Squid đã được tồn tại trong kho ứng dụng của Centos nên việc cài đặt tương đối dễ dàng
# yum -y update # yum -y install squid
Khởi động Squid như sau .
# systemctl start squid # systemctl enable squid
Kiểm tra trạng thái của dịch vụ
# systemctl status squid
Những file quan trọng
- Squid configuration file: /etc/squid/squid.conf
- Squid Access log: /var/log/squid/access.log
- Squid Cache log: /var/log/squid/cache.log
Config file
Các cấu hình trong squid.conf
sẽ trông như thế này
acl localnet src 10.0.0.0/8
acl localnet src 172.16.0.0/12
acl localnet src 192.168.0.0/16
acl localnet src fc00::/7
acl localnet src fe80::/10
acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 777
...
V. Cấu hình cơ bản
Bài toán 1:
Với bài toán thứ nhất, là việc config cho Squid Server phép các truy cập từ mạng A đến các host trong mạng B.Các host trong mạng B này có thể là một server nginx nào đó
Công việc bây giờ là config access-list cho phép các máy trong mạng A
Ví dụ: mạng A 192.168.44.19/24
Tệp `squid.conf` cần có config như sau
acl localnet src 192.168.44.0/24 http_access allow localnet
Cuối cùng là khởi động lại Squid :
# systemctl restart squid
Bây giờ các máy ở mạng A chỉ việc cấu hình proxy tới Squid server là có thể truy cập đến các nội dung trong các host thuộc mạng B
VI. Tham khảo
2. https://www.tecmint.com/install-squid-http-proxy-on-centos-7/comment-page-1/#comments