Cài đặt và thiết lập Squid Proxy trên Ubuntu

Tác giả: VPS chính hãng 24 tháng 05, 2023

Squid Proxy là một máy chủ proxy dựa trên Unix nguồn mở, lưu trữ nội dung internet gần với người yêu cầu hơn so với điểm xuất phát ban đầu của nó. Là máy chủ bộ nhớ đệm proxy phổ biến nhất, nó sẽ tăng thời gian phản hồi của bạn và giảm tắc nghẽn băng thông vì nó lưu trữ các trang Web, tệp phương tiện và nội dung khác được yêu cầu thường xuyên trong bộ đệm. Theo dõi bài viết dưới đây để tìm hiểu về cách cài đặt và thiết lập Squid Proxy trên Ubuntu để có kết nối an toàn.

Hướng dẫn cài đặt và cấu hình Squid Proxy trên Ubuntu

Squid Proxy là một công cụ bảo mật hữu ích có thể lưu trữ các tệp HTTP và FTP, và nhiều loại nội dung Web khác. Đồng thời gửi yêu cầu của máy khách đến máy chủ và lưu một bản sao của các đối tượng được yêu cầu. Squid Proxy được sử dụng để định tuyến lưu lượng truy cập ra bên ngoài của một người dùng riêng lẻ. Nó cũng hoạt động như một máy chủ DNS để phân giải tên máy chủ với máy khách DNS nội bộ của nó. Sử dụng Squid giúp bạn chặn những khách truy cập không mong muốn vào mạng của bạn và ngăn các trang web nguy hiểm gây hại cho người dùng. Theo các tùy chọn xác thực của Squid, bạn có thể chọn người dùng nào được phép sử dụng tài nguyên của proxy.

Điều kiện tiên quyết để cài đặt Squid Proxy trên Ubuntu

Để hướng dẫn này hoạt động chính xác, hãy cung cấp các yêu cầu bên dưới:

  • Một hệ thống chạy Ubuntu.
  • Truy cập vào cửa sổ đầu cuối/dòng lệnh (Ctrl-Alt-T)
  • Người dùng không phải root có đặc quyền sudo.
  • Một trình soạn thảo văn bản.
Squid Proxy có thể giúp bạn chặn những người dùng truy cập không mong muốn 

Squid Proxy có thể giúp bạn chặn những người dùng truy cập không mong muốn

Cài đặt Squid Proxy trên Ubuntu

Theo mặc định, gói Squid được bao gồm trong Ubuntu. Để cập nhật danh sách gói của bạn và cài đặt Squid Proxy, hãy chạy lệnh bên dưới với tư cách người dùng sudo.

sudo apt update 

sudo apt install squid

Dịch vụ Squid sẽ tự động bắt đầu khi quá trình cài đặt kết thúc. Sử dụng lệnh sau để kiểm tra xem dịch vụ có chạy đúng không:

sudo systemctl status squid

Output sẽ trông giống như thế này:

squid.service - squid web proxy server 

          Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled) 

          Active: active (running) since Fri 2022-12-22 10:10:10 UTC; 10min 10s ago

Cấu hình Squid Proxy trên Ubuntu

Bây giờ, hãy cấu hình Squid Proxy. Để thực hiện việc này, bạn có thể chỉnh sửa tệp /etc/squid/squid.conf. Nhưng bạn nên sao lưu tệp cấu hình ban đầu và sau đó thực hiện các thay đổi. Vì vậy, hãy chạy:

sudo cp /etc/squid/squid.conf{,.orginal}

Tiếp theo, định cấu hình phiên bản squid của bạn bằng cách chỉnh sửa tệp bằng trình soạn thảo văn bản yêu thích của bạn. Ở đây, chúng tôi sử dụng nano.

sudo nano /etc/squid/squid.conf

Theo mặc định, squid được đặt để nghe trên cổng 3128 trên tất cả các giao diện mạng trên máy chủ. Nhưng bạn có thể thay đổi cổng và đặt giao diện nghe khác. Để thực hiện việc này, hãy thay đổi dòng định vị bắt đầu bằng cổng http và chỉ định địa chỉ IP của giao diện và cổng mới. Squid sẽ lắng nghe trên tất cả các giao diện nếu không có giao diện nào được chỉ định.

# Squid normally listens to port 3128 

http_port IP_ADDR:PORT

Nếu bạn tạo ACL (Danh sách kiểm soát truy cập) bao gồm các IP được phép, bạn có thể hạn chế quyền truy cập vào máy chủ proxy khi tất cả các máy khách có địa chỉ IP tĩnh. Hoặc squid phải được đặt để sử dụng xác thực.

Tạo một tệp chuyên dụng mới để chứa các IP được phép (Thay vì thêm địa chỉ IP).

192.168.33.1 

# All other allowed IPs

Để tạo một ACL mới có tên là  allowed-ips, hãy mở cấu hình chính và cho phép truy cập vào ACL đó. Để làm điều này, hãy sử dụng http-access.

Lưu ý: Vì thứ tự của các quy tắc http-access có ý nghĩa quan trọng, hãy đảm bảo thêm dòng này trước http_access deny all.

# ... 

acl allowed_ips src "/etc/squid/allowed_ips.txt" 

# ... 

#http_access allow localnet 

http_access allow localhost 

http_access allow allowed_ips 

# And finally deny all other access to this proxy 

http_access deny all

Sau khi thực hiện các thay đổi xong, hãy khởi động lại dịch vụ Squid để các thay đổi có hiệu lực.

sudo systemctl restart squid

Sau đó, lưu và đóng tệp. Nhấn Ctrl + X, YEnter nếu bạn đang sử dụng nano.

=>> Đọc thêm: Hướng dẫn cài đặt Elasticsearch trên Ubuntu

Bảo mật và xác thực Squid Proxy trên Ubuntu

Squid hỗ trợ xác thực cơ bản Samba, LDAP và HTTP. Để sử dụng back-end để xác thực người dùng, hãy định cấu hình mực. Nó cũng hữu ích khi việc hạn chế truy cập dựa trên IP dường như không hoạt động. Trong phần sau, bạn có thể xem cách sử dụng một phương thức xác thực đơn giản được tích hợp trong giao thức HTTP và một xác thực cơ bản.

Ở đây, chúng tôi sử dụng công cụ  openssl để tạo mật khẩu được mã hóa. Để thêm cặp  USERNAME:PASSWORD vào tệp  /etc/squid/htpasswd:

printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd

Chạy lệnh như bên dưới để tạo người dùng ‘’vpschinhhang’’ với mật khẩu ”P@sv0rD”:

printf "vpschinhhang:$(openssl passwd -crypt ' P@sv0rD)\n" | sudo tee -a /etc/squid/htpasswd

Để kích hoạt xác thực cơ bản và đưa tệp chứa thông tin đăng nhập của người dùng vào tệp cấu hình squid, hãy mở cấu hình chính và thêm dòng dưới đây:

sudo nano /etc/squid/squid.conf

 

# ... 

auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/htpasswd 

auth_param basic realm proxy 

acl authenticated proxy_auth REQUIRED 

# ... 

#http_access allow localnet 

http_access allow localhost 

http_access allow authenticated 

# And finally deny all other access to this proxy 

http_access deny all

Theo cách này, một ACL mới có tên authenticated sẽ được tạo và việc truy cập người dùng đã xác thực sẽ được phép. Sau đó, bạn có thể khởi động lại dịch vụ Squid.

sudo systemctl restart squid

Cấu hình tường lửa

Trong phần này, bạn sẽ kích hoạt cấu hình Squid UFW để mở các cổng Squid:

sudo ufw allow 'Squid'

Nếu Squid đang chạy trên một cổng không mặc định, bạn có thể cho phép lưu lượng truy cập trên cổng đó. Giả sử cổng 888:

sudo ufw allow 8888/tcp.

=>> Đọc thêm: Cách khắc phục sự cố khởi động Ubuntu

Cách cấu hình trình duyệt web để sử dụng Squid Proxy

Đến đây, bạn đã học cách cài đặt và thiết lập Squid Proxy trên Ubuntu. Bây giờ, hãy xem cách định cấu hình trình duyệt yêu thích của bạn. Ở đây, chúng ta sẽ thảo luận về Firefox và Google Chrome.

Firefox

Để định cấu hình Firefox và sử dụng nó, bạn chỉ cần làm theo các bước bắt buộc bên dưới, giống với Windows, macOS và Linux.

1. Ở góc trên bên phải, nhấp vào biểu tượng   để mở menu của Firefox.

2. Nhấp vào liên kết ⚙  Preferences .

3. Cuộn xuống phần  Network Settings và nhấp vào nút Settings...

Khi một cửa sổ mới được mở, hãy thực hiện các bước sau:

1. Chọn nút  Manual proxy configuration .

2. Nhập địa chỉ IP máy chủ Squid của bạn vào trường HTTP Host và  3128 vào trường Port.

3. Chọn Use this proxy server for all protocols.

4. Nhấp vào nút  OK để lưu cài đặt.

Sau thực hiện qua tất cả các bước trên, Firefox phải được cấu hình. Vì vậy, bạn có thể duyệt internet thông qua Squid proxy. Để kiểm tra xem nó có hoạt động bình thường hay không, hãy mở google.com, nhập https://kiemtraip.vn/ để xem địa chỉ IP máy chủ Squid của bạn.

Bất cứ lúc nào bạn muốn hoàn nguyên về cài đặt mặc định, hãy đi tới  Network Settings, chọn Use system proxy settings và lưu cài đặt.

Check IP để kiểm tra hoạt động của Squid Proxy 

Check IP để kiểm tra hoạt động của Squid Proxy

Google Chrome

Vì Google Chrome sử dụng cài đặt proxy hệ thống mặc định nên bạn có thể sử dụng tiện ích bổ sung như SwitchyOmega hoặc khởi động trình duyệt web Chrome từ dòng lệnh thay vì thay đổi cài đặt proxy hệ điều hành của mình.

Chạy lệnh bên dưới để khởi chạy Chrome bằng cấu hình mới và kết nối với máy chủ Squid.

Linux:

/usr/bin/google-chrome \ 

      --user-data-dir="$HOME/proxy-profile" \ 

      --proxy-server="http://SQUID_IP:3128"

Windows:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^ 

    --user-data-dir="%USERPROFILE%\proxy-profile" ^ 

    --proxy-server="http://SQUID_IP:3128"

macOS:

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \ 

    --user-data-dir="$HOME/proxy-profile" \ 

    --proxy-server="http://SQUID_IP:3128"

Một lần nữa, như bạn đã làm với Firefox, hãy mở google.com, nhập https://kiemtraip.vn/ để xem địa chỉ IP máy chủ Squid của bạn và kiểm tra xem máy chủ proxy có hoạt động bình thường không.

=>> Đọc thêm: Hướng dẫn sử dụng Proxy SOCKS bằng SwitchyOmega trong Chrome hoặc Firefox

Làm cách nào để chặn một trang web trên Squid Proxy?

Sử dụng Squid Proxy cho phép bạn chặn trang web mong muốn. Bằng cách thêm một số quy tắc, bạn sẽ có thể xem các trang web dựa trên URL, từ khóa, tên miền và tiện ích mở rộng.

Đầu tiên, tạo và chỉnh sửa tệp văn bản mới /etc/squid/blocked.acl:

sudo nano /etc/squid/blocked.acl

Bạn phải thêm các trang web được coi là bị chặn, bắt đầu bằng dấu chấm (.facebook hoặc .twitter) để nó chặn tất cả các trang con của trang chính.

Sau đó, mở lại tệp /etc/squid/squid.conf:

sudo nano /etc/squid/squid.conf

Bây giờ, thêm các dòng bên dưới ngay phía trên danh sách ACL của bạn:

acl blocked_websites dstdomain “/etc/squid/blocked.acl”
http_access deny blocked_websites

Trong bài viết này, bạn đã biết được Cách cài đặt và thiết lập Squid Proxy trên Ubuntu. Squid Proxy cung cấp các báo cáo về các trang web đã truy cập cho phép bạn đánh giá hành vi duyệt web của người dùng và sử dụng chúng để mở rộng quy mô, bảo mật và lập kế hoạch phân bổ tài nguyên. Mọi câu hỏi vui lòng gửi về các kênh liên hệ của VPS Chính hãng, chúng tôi luôn sẵn sàng 24/24 để đem lại dịch vụ VPS và Proxy tốt nhất cho bạn!