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.
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.
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:
Bạn sẽ nhận được kết quả đầu ra sau:
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:
Bạn sẽ thấy kết quả đầu ra sau:
Sau khi hoàn tất, bạn có thể tiến tới bước tiếp theo.
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:
Thêm dòng sau vào đầu tệp:
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:
Trong đó:
Chạy lệnh sau để cài đặt gói Apache utils:
Sau khi cài đặt, hãy tạo người dùng đầu tiên bằng lệnh sau:
Bạn sẽ được yêu cầu đặt mật khẩu như hiển thị bên dưới:
Tiếp theo, tạo người dùng thứ hai bằng lệnh sau:
Đặt mật khẩu của bạn như hiển thị bên dưới:
Tiếp theo, bạn có thể xác minh cả hai người dùng bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Tiếp theo, mở tệp cấu hình mặc định của Squid:
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:
Lưu và đóng tệp. Sau đó, khởi động lại dịch vụ proxy Squid để áp dụng các thay đổi:
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.
Mở tệp cấu hình mặc định của Squid:
Tìm các dòng sau mà bạn đã thêm vào phần trước:
Và thay thế chúng bằng dòng sau dòng:
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:
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:
Thêm các dòng sau vào đầu tệp:
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:
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.
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
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
Mã:
systemctl status squid
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
Mã:
netstat -plunt | grep 3128
Mã:
tcp6 0 0 :::3128 :::* LISTEN 50017/(squid-1)
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
Mã:
acl client1 src 192.168.10.10acl client2 src 192.168.10.11http_access allow client1 client2
Mã:
systemctl restart squid
- client1 và client2 là tên xác định máy tính khách.
- 192.168.10.10 và 192.168.10.11 là địa chỉ IP của máy tính khách.
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
Mã:
htpasswd /etc/squid/passwd client1
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
Mã:
htpasswd /etc/squid/passwd client2
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
Mã:
cat /etc/squid/passwd
Mã:
client1:$apr1$CPlx8eVt$NJq3CT/hzfDCnAZRypIq5/client2:$apr1$XYxQ2npc$IW0Nqjp15O5WYCo/wCFlB0
Mã:
nano /etc/squid/squid.conf
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
Mã:
systemctl restart squid
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
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
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
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
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ả
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.