Thường thì có khá nhiều lý do để cho ta dùng Proxy. VD như đứt cáp nè, mỗi lần mà đứt cáp thì mạng đi quốc tế của VN chậm như rùa, nhưng tuyệt nhiên đường truyền đi Sing lại không bị ảnh hưởng mới ghê. Mình thì hay dùng OVH, Vultr, tốc độ về VN khá ổn, mỗi khi mà muốn download file từ một server nào đó mà đường truyền đến VN chậm hoặc khi đứt cáp thì mình sẽ dùng Proxy để thay thế.
Thôi không luyên thuyên nữa, bắt tay vào việc nhé.
1. Cài đặt Squid
Quá trình cài đặt nó khá đơn giản vì hầu hết Ubuntu, Debian hay CentOS điều có sẵn trong repository.
Với Ubuntu ta gõ lệnh sau:
sudo apt install squid
Với CentOS:
sudo yum install squid
nhớ chọn yes (y) để xác nhận cài đặt nha
Sau khi cài đặt xong, mình sẽ check xem nó khởi động chưa
sudo systemctl status squid
Nếu như bạn check thấy squid chưa khởi động bạn chạy 2 lệnh sau nhé:
sudo systemctl start squid
sudo systemctl enable squid
2. Cấu hình Squid
Trên hầu hết các bản phân phối linux, squid đặt file cấu hình tại /etc/squid/squid.conf.
Trước khi bạn thay đổi cấu hình, hãy sao lưu lại cấu hình gốc để khôi phục đề phòng lỗi nhé.
sudo cp /etc/squid/squid.conf{,.squid.conf_bak}
Theo mặc định, squid sẽ lắng nghe trên cổng 3128 và chỉ cho phép truy cập từ localhost và localnet. do đó để truy cập từ mạng bên ngoài, chúng ta sẽ tạo một danh sách chứa các ip được phép truy cập vào máy chủ squid.
/etc/squid/allowed_ips.txt
Sau đó bạn nhập danh sách địa chỉ IP được phép truy cập vào đây
Trong trường hợp bạn muốn allow một dãy IP, bạn có thể sử dụng dạng x.x.x.0/24 như trên
Sau khi cấu hình xong bạn ctrl + x để thoát và y để lưu lại
Tiếp theo ta cần allow danh sách này vào trong tệp cấu hình.
sudo nano /etc/squid/squid.conf
Bạn thêm 2 dòng sau vào tệp cấu hình, chú ý thứ tự nhé
acl allowed_ips src "/etc/squid/allowed_ips.txt"
http_access allow allowed_ips
Thứ tự mẫu:
# ...
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
Thứ tự này rất quan trọng, squid sẽ đọc từ trên xuống dưới, hãy đảm bảo bạn thêm quy tắc ở trên dòng http_access deny all
sau cùng lưu lại như allow list lúc nãy và reload lại squid để nó được áp dụng
sudo systemctl reload squid
3. Cấu hình squid bằng cách đăng nhập
Với cách cấu hình theo allow ip thì nếu mạng bạn đang dùng là IP động thì rất là bất tiện vì mỗi lần thay đổi IP là bạn phải login vào SSH, thêm/sửa IP rồi reload lại service rất là mất thời gian. Vì vậy một cách tiện lợi hơn là sử dụng xác thực bằng mật khẩu.
Đầu tiên ta nhập lệnh sau để tạo username và password cho /etc/squid/htpasswd. Nhớ thay USERNAME và PASSWORD thành của bạn nhé
printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd
Ví dụ như ta muốn sử dụng username là admin và mật khẩu là 6cWm4Lf!PdF%@ ta nhập lệnh như sau:
printf "admin:$(openssl passwd -crypt '6cWm4Lf!PdF%@')\n" | sudo tee -a /etc/squid/htpasswd
Sau khi gõ xong lệnh trên bạn có thể kiểm tra tập tin /etc/squid/htpasswd xem đã có thông tin của bạn chưa.
Bước tiếp theo bạn cần cấu hình tệp squid.conf để nó hoạt động với mật khẩu bạn vừa đặt.
# ...
auth_param basic program /usr/lib/squid/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
Lưu ý: Tùy thuộc vào hệ điều hành của bạn có thể basic_ncsa_auth được đặt trong lib64 nên bạn cần kiểm tra và thay sang lib64 nhé
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/htpasswd
Đổi thành:
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/htpasswd
Sau khi hoàn tất cấu hình bạn cần khởi động lại squid để thay đổi có hiệu lực:
sudo systemctl restart squid
Nếu bạn sử dụng firewall bạn nhớ mở cổng 3128 (hoặc cổng khác nếu bạn chỉnh sửa port trong squid.conf) cho nó nhé. Tùy thuộc vào phần mềm firewall bạn sử dụng nên mình không đề cập ở đây.
4. Kết nối Firefox với
Để sử dụng proxy trên firefox khá đơn giản, bạn chỉ cần làm theo các bước sau:
Bước 1: Vào cài đặt của Firefox
Bước 2: Tìm kiếm cài đặt proxy và truy cập vào nó
Bước 3: Nhập IP của máy chủ proxy
Sau khi thiết lập xong bạn quay trở lại, nếu Firefox hỏi đăng nhập như ảnh là thành công.
Kết Luận
Như vậy việc thiết lập một máy chủ proxy hoàn toàn khá đơn giản, điều trở ngại lớn nhất có lẽ là bạn phải thuê một VPS đủ tốt, đường truyền ngon lành để việc truy cập mạng không làm bạn ức chế 🤣.
Trong lần tới mình sẽ hướng dẫn các bạn sử dụng VPS làm máy chủ VPN với những chức năng có thể tuyệt vời hơn proxy nữa đó. Cảm ơn các bạn đã xem bài viết, chúc các bạn thành công.