Cách cài đặt Squid Proxy Server trên Ubuntu 20.04

theanh

Administrator
Nhân viên
Squid là một ứng dụng proxy đầy đủ tính năng dựa trên Linux, chủ yếu được sử dụng để lọc lưu lượng truy cập, bảo mật và tra cứu DNS. Nó cũng được sử dụng để cải thiện hiệu suất máy chủ web bằng cách lưu trữ bộ nhớ đệm tài nguyên. Nói một cách đơn giản, máy chủ Squid là máy tính đóng vai trò trung gian giữa máy tính để bàn và internet, chuyển hướng các yêu cầu của máy khách đến máy chủ nơi dữ liệu được lưu trữ để dễ truy xuất hơn. Nó hỗ trợ một số giao thức bao gồm HTTP, FTP, TLS, SSL, Internet Gopher và HTTPS.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt và thiết lập máy chủ proxy Squid trên máy chủ Ubuntu 20.04.

Điều kiện tiên quyết​

  • Máy chủ chạy Ubuntu 20.04.
  • Máy chủ được cấu hình mật khẩu gốc.

Bắt đầu​

Trước khi bắt đầu, bạn sẽ cần cập nhật các gói hệ thống của mình lên phiên bản mới nhất. Bạn có thể cập nhật chúng bằng lệnh sau:
Mã:
apt-get update -y
Sau khi tất cả các gói được cập nhật, hãy khởi động lại hệ thống của bạn để áp dụng các thay đổi.

Cài đặt Squid Proxy​

Theo mặc định, gói Squid có sẵn trong kho lưu trữ mặc định của Ubuntu 20.04. Bạn có thể cài đặt nó bằng lệnh sau:
Mã:
apt-get install squid -y
Sau khi Squid được cài đặt, bạn có thể kiểm tra trạng thái của dịch vụ Squid bằng lệnh sau:
Mã:
systemctl status squid
Bạn sẽ nhận được kết quả đầu ra sau:
Mã:
? squid.service - Squid Web Proxy Server Đã tải: đã tải (/lib/systemd/system/squid.service; enabled; vendor preset: enabled) Đang hoạt động: đang hoạt động (đang chạy) kể từ CN 2020-08-23 12:00:24 UTC; 11 giây trước Tài liệu: man:squid(8) Quy trình: 49265 ExecStartPre=/usr/sbin/squid --foreground -z (code=exited, status=0/SUCCESS) Quy trình: 49282 ExecStart=/usr/sbin/squid -sYC (code=exited, status=0/SUCCESS) PID chính: 49283 (squid) Nhiệm vụ: 4 (giới hạn: 2353) Bộ nhớ: 16,4M CGroup: /system.slice/squid.service ??49283 /usr/sbin/squid -sYC ??49285 (squid-1) --kid squid-1 -sYC ??49287 (logfile-daemon) /var/log/squid/access.log ??49288 (pinger)23 tháng 8 12:00:24 ubuntu2004 squid[49285]: Kích thước hoán đổi tối đa: 0 KB23 tháng 8 12:00:24 ubuntu2004 squid[49285]: Sử dụng lựa chọn thư mục lưu trữ Tải ít nhất23 tháng 8 12:00:24 ubuntu2004 squid[49285]: Đặt Thư mục hiện tại thành /var/spool/squid23 tháng 8 12:00:24 ubuntu2004 squid[49285]: Hoàn tất việc tải các loại MIME và biểu tượng.23 tháng 8 12:00:24 ubuntu2004 squid[49285]: HTCP đã bị vô hiệu hóa.23 tháng 8 12:00:24 ubuntu2004 squid[49285]: Pinger socket đã mở trên FD 1423 tháng 8 12:00:24 ubuntu2004 squid[49285]: Các mô-đun plugin Squid đã được tải: 023 tháng 8 12:00:24 ubuntu2004 squid[49285]: Hỗ trợ thích ứng đã tắt.23 tháng 8 12:00:24 ubuntu2004 squid[49285]: Đang chấp nhận kết nối HTTP Socket tại local=[::]:3128 remote=[::] FD 12 cờ=923 tháng 8 12:00:25 ubuntu2004 squid[49285]: storeLateRelease: đã phát hành 0 đối tượng
Theo mặc định, Squid đang lắng nghe trên cổng 3128. Bạn có thể kiểm tra bằng lệnh sau:
Mã:
netstat -plunt | grep 3128
Bạn sẽ thấy kết quả đầu ra sau:
Mã:
tcp6 0 0 :::3128 :::* LISTEN 50017/(squid-1)
Sau khi hoàn tất, bạn có thể tiến tới bước tiếp theo.

Thiết lập xác thực dựa trên IP​

Có một số cách bạn có thể hạn chế máy khách truy cập internet. Trong phần này, chúng ta sẽ thiết lập Squid để xác thực dựa trên địa chỉ IP của Client.

Bạn có thể thực hiện bằng cách chỉnh sửa tệp cấu hình mặc định của Squid:
Mã:
nano /etc/squid/squid.conf
Thêm dòng sau vào đầu tệp:
Mã:
acl client1 src 192.168.10.10acl client2 src 192.168.10.11http_access allow client1 client2
Lưu và đóng tệp khi bạn hoàn tất. Sau đó khởi động lại dịch vụ Squid để áp dụng các thay đổi:
Mã:
systemctl restart squid
Trong đó:
  • client1client2 là tên xác định máy tính khách.
  • 192.168.10.10192.168.10.11 là địa chỉ IP của máy tính khách.
Bây giờ, chỉ những máy tính được cấu hình với IP 192.168.10.10 và 192.168.10.11 mới có thể truy cập internet.

Thiết lập xác thực dựa trên người dùng​

Bạn cũng có thể thiết lập Squid để xác thực dựa trên người dùng và mật khẩu. Để thực hiện việc này, bạn sẽ cần cài đặt gói Apache utils vào hệ thống của mình.

Chạy lệnh sau để cài đặt gói Apache utils:
Mã:
apt install apache2-utils -y
Sau khi cài đặt, hãy tạo người dùng đầu tiên bằng lệnh sau:
Mã:
htpasswd /etc/squid/passwd client1
Bạn sẽ được yêu cầu đặt mật khẩu như hiển thị bên dưới:
Mã:
Mật khẩu mới:Nhập lại mật khẩu mới:Đang thêm mật khẩu cho người dùng client1
Tiếp theo, tạo người dùng thứ hai bằng lệnh sau:
Mã:
htpasswd /etc/squid/passwd client2
Đặt mật khẩu của bạn như hiển thị bên dưới:
Mã:
Mật khẩu mới:Nhập lại mật khẩu mới:Đang thêm mật khẩu cho người dùng client2
Tiếp theo, bạn có thể xác minh cả hai người dùng bằng lệnh sau:
Mã:
cat /etc/squid/passwd
Bạn sẽ nhận được kết quả sau:
Mã:
client1:$apr1$CPlx8eVt$NJq3CT/hzfDCnAZRypIq5/client2:$apr1$XYxQ2npc$IW0Nqjp15O5WYCo/wCFlB0
Tiếp theo, mở tệp cấu hình mặc định của Squid:
Mã:
nano /etc/squid/squid.conf
Xóa ba dòng đầu tiên mà bạn đã thêm ở phần trước và thêm các dòng sau vào đầu tệp:
Mã:
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwdacl ncsa_users proxy_auth BẮT BUỘChttp_access allow ncsa_users
Lưu và đóng tệp. Sau đó, khởi động lại dịch vụ proxy Squid để áp dụng các thay đổi:
Mã:
systemctl restart squid
Bây giờ, bạn sẽ cần cung cấp tên người dùng và mật khẩu để truy cập internet.

Thiết lập Xác thực Kết hợp​

Bạn cũng có thể thiết lập Squid để xác thực máy khách dựa trên địa chỉ IP và tên người dùng/mật khẩu.

Mở tệp cấu hình mặc định của Squid:
Mã:
nano /etc/squid/squid.conf
Tìm các dòng sau mà bạn đã thêm vào phần trước:
Mã:
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwdacl ncsa_users proxy_auth BẮT BUỘChttp_access allow ncsa_users
Và thay thế chúng bằng dòng sau dòng:
Mã:
acl client1 src 192.168.10.10acl client2 src 192.168.10.11auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwdacl ncsa_users proxy_auth BẮT BUỘChttp_access allow client1 client2 ncsa_users
Lưu và đóng tệp khi bạn hoàn tất, sau đó khởi động lại dịch vụ Squid để áp dụng các thay đổi:
Mã:
systemctl restart squid

Thiết lập Squid để ẩn danh lưu lượng truy cập​

Tiếp theo, bạn sẽ cần thêm một số quy tắc để che giấu địa chỉ IP của máy khách khỏi các máy chủ nhận lưu lượng truy cập từ proxy HTTP Squid của bạn.

Bạn có thể thực hiện bằng cách chỉnh sửa tệp cấu hình mặc định của Squid:
Mã:
nano /etc/squid/squid.conf
Thêm các dòng sau vào đầu tệp:
Mã:
forwarded_for offrequest_header_access Allow allow allrequest_header_access Authorization allow allrequest_header_access WWW-Authenticate allow allrequest_header_access Proxy-Authorization allow allrequest_header_access Proxy-Authenticate allow allrequest_header_access Cache-Control allow allrequest_header_access Content-Encoding allow allrequest_header_access Content-Length allow allrequest_header_access Content-Type allow allrequest_header_access Date allow allrequest_header_access Expires allow allrequest_header_access Host allow allrequest_header_access If-Modified-Since allow allrequest_header_access Last-Modified allow allrequest_header_access Location allow tất cảrequest_header_access Pragma cho phép tất cảrequest_header_access Chấp nhận cho phép tất cảrequest_header_access Chấp nhận-Charset cho phép tất cảrequest_header_access Chấp nhận-Encoding cho phép tất cảrequest_header_access Chấp nhận-Language cho phép tất cảrequest_header_access Content-Language cho phép tất cảrequest_header_access Mime-Version cho phép tất cảrequest_header_access Thử lại sau cho phép tất cảrequest_header_access Tiêu đề cho phép tất cảrequest_header_access Kết nối cho phép tất cảrequest_header_access Proxy-Connection cho phép tất cảrequest_header_access User-Agent cho phép tất cảrequest_header_access Cookie cho phép tất cảrequest_header_access Tất cả từ chối tất cả
Lưu và đóng tệp khi bạn hoàn tất, sau đó khởi động lại dịch vụ Squid để áp dụng các thay đổi:
Mã:
systemctl restart squid

Xác minh Proxy Squid​

Tiếp theo, bạn sẽ cần xác định máy chủ Proxy trong trình duyệt web Mozilla của mình.

Vào hệ thống máy khách, mở trình duyệt web Mozilla và nhấp vào Chỉnh sửa = > Tùy chọn như hiển thị bên dưới:



Nhấp vào phần Cài đặt Mạng và nhấp vào Cài đặt. Bạn sẽ thấy trang sau:





Chọn nút tùy chọn Cấu hình proxy thủ công, nhập địa chỉ IP máy chủ Squid của bạn vào trường Máy chủ HTTP và 3128 vào trường Cổng và chọn hộp kiểm Sử dụng máy chủ proxy này cho tất cả các giao thức và nhấp vào nút OK để lưu cài đặt.

Bây giờ, trình duyệt của bạn đã được cấu hình để duyệt Internet thông qua proxy Squid.

Để xác minh, hãy nhập URL https://www.whatismyip.com/. Bạn sẽ được yêu cầu cung cấp tên người dùng và mật khẩu như hiển thị bên dưới:



Cung cấp tên người dùng và mật khẩu máy chủ proxy Squid mà bạn đã tạo trước đó và nhấp vào nút OK. Bạn sẽ thấy trang sau:



Trên trang trên, bạn sẽ thấy địa chỉ IP của máy chủ Squid thay vì địa chỉ IP của máy khách.

Kết luận​

Xin chúc mừng! Bạn đã cài đặt và cấu hình thành công máy chủ proxy Squid trên máy chủ Ubuntu 20.04. Bạn cũng có thể cấu hình proxy Squid để hạn chế trang web cụ thể dựa trên từ, tên miền và IP. Để biết thêm thông tin, hãy truy cập tài liệu chính thức của Squid.
 
Back
Bên trên