Squid Proxy là gì? Ứng dụng, chức năng và cách cài đặt

Squid Proxy, một công cụ mạnh mẽ giúp tăng cường bảo mật và tối ưu hóa hiệu suất mạng. Bài viết sau sẽ cung cấp cho bạn những thông tin hữu ích về Squid Proxy là gì, các ứng dụng và chức năng chính của Squid Proxy. Đồng thời, bài viết này GenFarmer cũng hướng dẫn chi tiết cách cài đặt Squid Proxy trên hệ điều hành Ubuntu 20.04, giúp bạn dễ dàng triển khai và sử dụng công cụ này.

Squid Proxy là gì?

Squid Proxy là một proxy server nguồn mở, phổ biến và được sử dụng rộng rãi trên toàn thế giới. Nó hoạt động như một trung gian giữa các thiết bị máy khách và máy chủ Internet, giúp cải thiện hiệu suất và bảo mật.

Squid Proxy hoạt động bằng cách lưu trữ các bản sao của các tài nguyên web thường được truy cập trong bộ nhớ cache. Khi một yêu cầu mới đến, Squid sẽ kiểm tra xem tài nguyên đã có trong bộ nhớ cache hay chưa. Nếu có, nó sẽ gửi tài nguyên từ bộ nhớ cache đến người dùng, giúp giảm đáng kể thời gian tải trang và lưu lượng sử dụng băng thông.

Ngoài việc cải thiện tốc độ, Squid Proxy còn cung cấp nhiều tính năng bảo mật và kiểm soát truy cập. Nó có thể lọc các trang web độc hại, chặn quảng cáo, hạn chế truy cập đến nội dung không phù hợp và bảo vệ thông tin cá nhân của người dùng.

Squid Proxy là gì?
Squid Proxy là gì?

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

Trước khi bắt đầu cài đặt Squid Proxy trên Ubuntu 20.04, hãy đảm bảo hệ thống của bạn đáp ứng các yêu cầu sau:

  • Một máy chủ chạy Ubuntu 20.04 với quyền root hoặc quyền sudo.
  • Kết nối Internet ổn định.
  • Kiến thức cơ bản về dòng lệnh Linux.
  • Một công cụ SSH như PuTTY trên Windows hoặc Terminal trên macOS/Linux để kết nối đến máy chủ từ xa.
Điều kiện để cài đặt Squid Proxy trên Ubuntu 20.04
Điều kiện để cài đặt Squid Proxy trên Ubuntu 20.04

Hướng dẫn cài đặt Squid Proxy trên Ubuntu 20.04

Package Squid đã có sẵn trong các kho phần mềm mặc định của Ubuntu 20.04. Để cài đặt, bạn chỉ cần thực hiện hai câu lệnh sau:

sudo apt update
sudo apt install squid

Sau khi cài đặt hoàn tất, dịch vụ Squid sẽ tự động được khởi chạy. Để kiểm tra trạng thái của dịch vụ Squid, bạn có thể sử dụng lệnh sau:

sudo systemctl status squid

Nếu cài đặt thành công, bạn sẽ thấy kết quả tương tự như sau:

squid.service - Squid Web Proxy Server
Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-10-23 19:02:43 UTC; 14s ago
Docs: man:squid(8)
Hướng dẫn cài đặt Squid Proxy trên Ubuntu 20.04
Hướng dẫn cài đặt Squid Proxy trên Ubuntu 20.04

Cấu hình cơ bản Squid Service

File cấu hình chính của Squid được lưu tại /etc/squid/squid.conf. Trong file này, bạn sẽ thấy các comment mô tả các cấu hình và hành động tương ứng. Bạn có thể tạo một file cấu hình riêng và sử dụng chỉ thị include để đưa nó vào trong file cấu hình chính.

Trước khi thực hiện bất kỳ thay đổi nào, hãy sao lưu file cấu hình mẫu bằng lệnh:

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

Sau đó, mở file cấu hình bằng text editor bạn muốn (ví dụ: nano):

sudo nano /etc/squid/squid.conf

Mặc định, Squid sẽ lắng nghe trên cổng 3128 ở tất cả các network interfaces của server. Nếu bạn muốn thay đổi cổng cho một interface cụ thể, hãy tìm dòng bắt đầu bằng http_port và chỉ định địa chỉ IP của interface cùng với cổng mới. Nếu không chỉ định interface, Squid sẽ lắng nghe trên tất cả các interfaces.

# Squid normally listens to port 3128 http_port IP_ADDR:PORT

Phần lớn người dùng sử dụng Squid trên tất cả các interfaces với cổng mặc định.

Squid cho phép bạn kiểm soát quyền truy cập của các client vào tài nguyên web thông qua Access Control Lists (ACLs). Mặc định, quyền truy cập chỉ từ localhost. Nếu tất cả client sử dụng proxy này đều có địa chỉ IP tĩnh, bạn có thể tạo một ACL để chỉ định các IP được phép truy cập. Ngoài ra, bạn cũng có thể yêu cầu xác thực khi sử dụng Squid.

Thay vì thêm các địa chỉ IP trực tiếp vào file cấu hình chính, bạn có thể tạo một file riêng để lưu trữ các địa chỉ IP được phép, ví dụ như /etc/squid/allowed_ips.txt với nội dung như sau:

192.168.33.1 # All other allowed IPs

Sau khi hoàn thành, mở lại file cấu hình và tạo một ACL mới có tên allowed_ips để cho phép truy cập thông qua chỉ thị http_access:

# ...
acl allowed_ips src "/etc/squid/allowed_ips.txt"
# ...
#http_access allow localnet
http_access allow localhost
http_access allow allowed_ips
# Và cuối cùng, từ chối tất cả các truy cập khác đến proxy
http_access deny all

Lưu ý rằng thứ tự các dòng http_access rất quan trọng. Hãy chắc chắn thêm dòng http_access allow allowed_ips trước dòng http_access deny all.

Chỉ thị http_access hoạt động giống như một rule của tường lửa. Squid đọc các rule từ trên xuống dưới, và khi một rule được kích hoạt, các rule dưới sẽ không được thực hiện.

Sau khi chỉnh sửa xong file cấu hình, bạn cần khởi động lại dịch vụ Squid để áp dụng các thay đổi:

sudo systemctl restart squid
Cấu hình cơ bản Squid Service
Cấu hình cơ bản Squid Service

Các lệnh khi làm việc với Squid Service

Nếu việc giới hạn truy cập dựa trên IP không phù hợp với nhu cầu của bạn, bạn có thể cấu hình Squid sử dụng một back-end để xác thực người dùng. Squid hỗ trợ Samba, LDAP và HTTP basic auth. Trong hướng dẫn này, tôi sẽ sử dụng phương pháp basic auth, một phương thức xác thực đơn giản dựa trên giao thức HTTP.

Để tạo mật khẩu đã được mã hóa, bạn có thể sử dụng công cụ openssl. Lệnh dưới đây sẽ tạo cặp USERNAME:PASSWORD và lưu vào file /etc/squid/htpasswd:

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

Ví dụ, để tạo người dùng cloudzone với mật khẩu Cl@udZ@ne, bạn sẽ gõ:

printf "cloudzone:$(openssl passwd -crypt 'Cl@udZ@ne')\n" | sudo tee -a /etc/squid/htpasswd

Tiếp theo, bạn cần kích hoạt HTTP basic authentication và chỉ định file chứa thông tin đăng nhập trong file cấu hình của Squid.

Mở file cấu hình chính:

sudo nano /etc/squid/squid.conf

Thêm các dòng sau vào file cấu hình:

# ...
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

Cuối cùng, bạn cần khởi động lại dịch vụ Squid để các thay đổi có hiệu lực:

sudo systemctl restart squid
Các lệnh khi làm việc với Squid Service
Các lệnh khi làm việc với Squid Service

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

Để mở cổng cho Squid, bạn cần kích hoạt Profiles UFW bằng lệnh sau:

sudo ufw allow 'Squid'

Nếu Squid chạy trên một cổng khác, ví dụ như cổng 8888, bạn có thể sử dụng lệnh dưới đây:

sudo ufw allow 8888/tcp

Cấu hình trình duyệt sử dụng Proxy

Firefox

  • Ở góc trên bên phải, click vào biểu tượng ☰ để mở menu của Firefox.
  • Chọn mục Preferences (Tùy chọn).
  • Cuộn xuống mục Network Settings (Cài đặt Mạng) và click vào biểu tượng Settings….
  • Trong hộp thoại mới, chọn Manual proxy configuration (Cấu hình proxy thủ công).
  • Nhập IP của server cài Squid vào mục HTTP Host và nhập 3128 vào mục Port.
  • Chọn checkbox Use this proxy server for all protocols (Sử dụng proxy này cho tất cả các giao thức).
  • Cuối cùng, nhấn OK.
Để kiểm tra, bạn có thể mở google.com, gõ “what is my ip”, và bạn sẽ thấy IP của server Squid. Nếu bạn muốn quay lại các thiết đặt mặc định, trở lại mục Network Settings, chọn Use system proxy settings (Sử dụng cài đặt proxy của hệ thống) và lưu lại. Ngoài ra, bạn cũng có thể sử dụng các plugin như FoxyProxy để cấu hình proxy cho Firefox.

Chrome

Google Chrome mặc định sử dụng cài đặt proxy của hệ thống. Nếu bạn không muốn thay đổi cài đặt proxy hệ thống, bạn có thể sử dụng các addon như SwitchyOmega hoặc khởi chạy Chrome từ dòng lệnh. Để mở Chrome với một profile mới và kết nối đến server Squid, sử dụng các lệnh dưới đây: Linux:
/usr/bin/google-chrome \
--user-data-dir="$HOME/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"
Windows:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^
--user-data-dir="%USERPROFILE%\proxy-profile" ^
--proxy-server="http://SQUID_IP:3128"

Kết luận

Squid Proxy là một công cụ đắc lực giúp tăng cường bảo mật, cải thiện hiệu suất và kiểm soát truy cập internet. Với hướng dẫn chi tiết về cách cài đặt và cấu hình Squid Proxy trên Ubuntu 20.04, bạn đã có thể triển khai giải pháp này để bảo vệ và tối ưu hóa hệ thống mạng của mình.

Tuy nhiên, để quản lý và tự động hóa các tác vụ liên quan đến Phonefarm, Boxphone và Box phone Farm một cách hiệu quả, bạn cần một giải pháp toàn diện hơn. GenFarmer là nền tảng số 1 trong lĩnh vực này, cung cấp các tính năng bảo mật tân tiến, ngăn chặn khóa tài khoản và cho phép người dùng quản lý số lượng lớn tài khoản từ mọi nền tảng.

Với sự kết hợp giữa Squid ProxyGenFarmer, bạn sẽ có một hệ thống vững chắc, an toàn và dễ dàng mở rộng. GenFarmer giúp đơn giản hóa việc quản lý và tự động hóa các tác vụ, trong khi Squid Proxy đảm bảo an ninh mạng và tối ưu hóa hiệu suất. Hãy tận dụng sức mạnh của cả hai giải pháp này để đưa hoạt động kinh doanh của bạn lên một tầm cao mới.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *