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

  1. http://www.squid-cache.org/Doc/config/

2. https://www.tecmint.com/install-squid-http-proxy-on-centos-7/comment-page-1/#comments