Skip to content
Thuan Bui's Blog
Go back

Hướng dẫn cài đặt Squid làm Proxy Server trên Oracle Cloud VPS

Bài viết hôm nay mình sẽ hướng dẫn cách cài đặt Squid lên máy ảo VPS miễn phí của Oracle Cloud để làm Proxy Server. Các bạn có thể áp dụng tương tự để cài lên server ở nhà hoặc lên các VPS của các dịch vụ khác như Digital Ocean, Vultr,…

Mình sẽ cài đặt Squid bằng Docker Compose để có thể xóa đi bất cứ lúc nào mà không ảnh hưởng đến hệ thống.

1. Yêu cầu chuẩn bị

2. Cài đặt Squid Proxy

Truy cập SSH vào VPS và tạo thư mục mới cho Squid

Terminal window
mkdir ~/squid
cd ~/squid

Tạo file compose.yml

services:
proxy:
image: ubuntu/squid
ports:
- "3128:3128"
environment:
- TZ=Asia/Ho_Chi_Minh
volumes:
- ./squid.conf:/etc/squid/squid.conf

Tạo thêm file cấu hình cho squid

Terminal window
nano squid.conf

Nhập vào nội dung sau và lưu lại

http_access allow all
http_port 3128

Với cấu hình này, squid sẽ hoạt động ở port 3128 và mở truy cập cho tất cả các giao thức mạng và IP nguồn.

3. Kích hoạt Squid

Kích hoạt squid bằng lệnh sau

Terminal window
docker compose up -d

Tiếp theo kiểm tra xem Squid có đang hoạt động không bằng lệnh curl

Terminal window
curl -x 127.0.0.1:3128 -I -L http://google.com

Kết quả trả về thấy có dòng Via: 1.1 47b623f8c9ff (squid/6.6) nghĩa là Squid đang hoạt động ổn.

Terminal window
HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Content-Security-Policy-Report-Only: object-src 'none';base-uri 'self';script-src 'nonce-eSmZn_UUYRd5jJKWrz2pcA' 'strict-dynamic' 'report-sample' 'unsafe-eval' 'unsafe-inline' https: http:;report-uri https://csp.withgoogle.com/csp/gws/other-hp
Date: Sat, 21 Sep 2024 06:11:29 GMT
Expires: Mon, 21 Oct 2024 06:11:29 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
Cache-Status: 47b623f8c9ff;detail=mismatch
Via: 1.1 47b623f8c9ff (squid/6.6)
Connection: keep-alive
HTTP/1.1 200 OK
Content-Type: text/html; charset=ISO-8859-1
Content-Security-Policy-Report-Only: object-src 'none';base-uri 'self';script-src 'nonce-LLLlSd3CIXQZ_bzbO-3lgg' 'strict-dynamic' 'report-sample' 'unsafe-eval' 'unsafe-inline' https: http:;report-uri https://csp.withgoogle.com/csp/gws/other-hp
P3P: CP="This is not a P3P policy! See g.co/p3phelp for more info."
Date: Sat, 21 Sep 2024 06:11:29 GMT
Server: gws
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
Expires: Sat, 21 Sep 2024 06:11:29 GMT
Cache-Control: private
Set-Cookie: AEC=AVYB7co-QfUvSxhu9soW6ZgzlyOQJRXfhoUfBRWnDOC5nMYJLnNYnrfAlA; expires=Thu, 20-Mar-2025 06:11:29 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=lax
Set-Cookie: NID=517=h0bemJIvrMRrJZB4shhmaOXwuIcB1E7YgXuxGHpHFOqRnhN9uHiQW_BeC0xDzBeCAOHfdzxGuUsHXGErQH-Z_cTEvg8MkjZB_YbCznJ1WTILQqdQyFAYDhl4-w5JpizfuTWMnedLylBQaqZIr2AZfjMxFnTG8h98M83luUWRkEdfc4efIMDzn9y7KIEwg2eR; expires=Sun, 23-Mar-2025 06:11:29 GMT; path=/; domain=.google.com; HttpOnly
Cache-Status: 47b623f8c9ff;detail=mismatch
Via: 1.1 47b623f8c9ff (squid/6.6)
Connection: keep-alive

Tìm địa chỉ Public IP của VPS

Terminal window
curl ifconfig.me

IP trả về sẽ được dùng để cấu hình Proxy trên máy tính client.

4. Cấu hình Security LIst cho Oracle VPS

Bước này chỉ cần áp dụng cho các bạn đang cài đặt Squid trên VPS của Oracle Cloud. Xem lại bài viết này nếu bạn chưa biết cách cấu hình cho Oracle Cloud VPS

https://thuanbui.me/cau-hinh-vps-mien-phi-oracle-cloud/

Truy cập vào mục cấu hình Sercirity List cho VPS, vào thêm vào 1 Ingress Rule mới với thông số

Bấm nút Add Ingress Rules để tạo.

5. Cấu hình Proxy trên trình duyệt

Tùy theo ứng dụng mà cách cấu hình proxy sẽ khác nhau. Ở đây mình sẽ cấu hình trênn Firefox.

Truy cập vào mục Setting (hoặc gõ about:preferences vào phần địa chỉ web và Enter), tìm đến mục Network Settings và chỉnh lại thông số

Sau đó truy cập vào website https://ifconfig.me/ , bạn sẽ thấy nó hiện ra IP của VPS đang cài Squid Proxy.

6. Cài extension Foxy Proxy

Việc cấu hình Proxy trực tiếp trong phần Setting của Firefox sẽ rất bất tiện nếu như bạn cần bật tắt proxy tùy theo website truy cập. Để tiện sử dụng, mình khuyến khích cài thêm extension Foxy Proxy standard để có thể chuyển đổi qua lại giữa nhiều Proxy khác nhau.

Sau khi cài xong, truy cập vào trang cấu hình của FoxyProxy và thêm Proxy ở mục Proxies. Bấm Save để lưu lại.

Mỗi khi cần sử dụng Proxy, mình sẽ bấm vào biểu tượng FoxyProxy để kích hoạt Proxy tương ứng. Hoặc bấm Disable để ngưng sử dụng Proxy.

6. Cấu hình bảo mật bằng tài khoản và mật khẩu

Với thiết lập đã chia sẻ ở trên, tất cả mọi người đều có thể sử dụng Squid Server của bạn nếu như biết địa chỉ IP. Để ngăn truy cập trái phép, mình sẽ cấu hình thêm bước bảo mật cho Squid Proxy bằng tài khoản và mật khẩu.

Cài đặt thêm công cụ apache2-utils

Terminal window
sudo apt install apache2-utils

Tạo file lưu tài khoản và mật khẩu. Bạn thay thế thuanbui bằng tên tài khoản của bạn

Terminal window
cd ~/squid/
htpasswd -c passwords thuanbui

Nhập vào mật khẩu và xác nhận. Thông tin tài khoản và mật khẩu sẽ được lưu vào file passwords nằmg chung thư mục với file compose.yml

Cập nhật lại file compose.yml, bổ sung thêm dòng cuối cùng như bên dưới

services:
proxy:
image: ubuntu/squid
#image: dmachard/squid
ports:
- "3128:3128"
environment:
- TZ=UTC
volumes:
- ./squid.conf:/etc/squid/squid.conf
- ./passwords:/etc/squid/passwords

Chỉnh sửa lại file squid.conf với nội dung sau để kích hoạt tính năng xác thực tài khoản và mật khẩu.

auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
acl password proxy_auth REQUIRED
http_access allow password
http_access deny all
http_port 3128

Khởi độgn lại Squid

Terminal window
docker compose restart

Quay lại Firefox và truy cập mạng thông qua Proxy, bạn sẽ bị yêu cầu nhập tài khoản và mật khẩu để xác thực.

Vậy là xong! Giờ không lo bị người khác dùng lén Proxy Server của bạn.


Share this post on:

Previous Post
[Proxmox] Hướng dẫn sao lưu và phục hồi máy ảo VM / container LXC
Next Post
[Proxmox] Hướng dẫn tạo VM Template để triển khai nhanh máy ảo