Squid với đầy đủ tính năng của một caching proxy hỗ trợ các giao thức mạng phổ biến như HTTP, HTTPS, FTP ...Sử dụng Squid bạn có thể cải thiện đáng kể hiệu năng khi truy cập các website bằng cách lưu trữ các yêu cầu lặp lại, lọc lưu lượng truy cập web và truy cập nội dung bị giới hạn theo địa lý.
Squid package đã có sẵn trên CentOS repositories, chạy lệnh sau để thực hiện cài đặt:
$sudo yum install squid
Sau khi cài đặt hoàn tất, start và enable Squid service:
$sudo systemctl start squid
$sudo systemctl enable squid
Để xác minh việc cài đặt thành công, hãy nhập lệnh sau sẽ in trạng thái dịch vụ:
$sudo systemctl status squid
squid.service - Squid caching proxy
Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-04-18 8:47:56 UTC; 12s ago
...
Squid có thể được cấu hình bằng cách chỉnh sửa file /etc/squid/squid.conf
.
Trước khi thực hiện bất kỳ thay đổi nào, hãy sao lưu tệp cấu hình gốc bằng lệnh cp:
$sudo cp /etc/squid/squid.conf{,.orginal}
Để chỉnh sửa tệp, hãy mở nó trong trình soạn thảo của bạn:
$sudo nano /etc/squid/squid.conf
Theo mặc định, Squid được cấu hình để lắng nghe trên cổng 3128 trên tất cả các network interfaces của máy chủ.
Nếu bạn muốn thay đổi port và network interface, xoá dấu # trước http_port
và thiết lập IP và port mới.
# Squid normally listens to port 3128
http_port IP_ADDR:PORT
Bạn có thể kiểm soát quyền truy cập vào máy chủ Squid bằng việc sử dụng Access Control Lists (ACLs).
Theo mặc định, Squid chỉ cho phép truy cập từ localhost và localnet.
Nếu tất cả các máy client sử dụng proxy có địa chỉ IP tĩnh, bạn có thể tạo ra một ACL chứa các IP được phép truy cập.
Thay vì thêm các địa chỉ IP trong tệp cấu hình chính, chúng ta sẽ tạo một file riêng biêt chứa các IP:
192.168.33.1
192.168.33.2
# All other allowed IPs
Sau khi hoàn tất, hãy mở tệp cấu hình chính và tạo một ACL mới có tên allow_ips
và cho phép truy cập vào ACL đó bằng http_access
:
# ...
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ự của các quy tắc http_access
rất quan trọng. Hãy đảm bảo bạn thêm quy tắc phía trên dòng http_access deny all
.
Các quy tắc http_access hoạt động theo cách tương tự như các quy tắc tường lửa. Squid sẽ đọc các quy tắc từ trên xuống dưới.
Bất cứ khi nào bạn thay đổi tệp cấu hình, 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
Squid có thể sử dụng nhiều loại backend để xác thực người dùng như Samba, LDAP and HTTP basic auth.
Trong bài này, chúng ta sẽ cấu hình Squid để sử dụng basic auth. Nó là một phương thức xác thực đơn giản được tích hợp trong giao thức HTTP.
Chúng ta sẽ sử dụng openssl để tạo username:password
và ghép nối với file /etc/squid/htpasswd
với lệnh tee
như bên dưới:
printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd
Ví dụ: để tạo một người dùng có tên là huudoanh
, mật khẩu là Pz@$154
, bạn sẽ chạy:
$printf "huudoanh:$(openssl passwd -crypt 'Pz@$154')\n" | sudo tee -a /etc/squid/htpasswd
huudoanh:2nkgQsTSPCsIo
Bước tiếp theo là cấu hình Squid để kích hoạt HTTP basic authentication. Mở file cấu hình chính và thêm vào như sau:
# ...
auth_param basic program /usr/lib64/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
Khởi động lại Squid service
$sudo systemctl restart squid
Nếu bạn đang chạy tường lửa, bạn sẽ cần mở cổng 3128. Để thực hiện, hãy chạy các lệnh sau:
$sudo firewall-cmd --permanent --add-port=3128/tcp
$firewall-cmd --reload
Các bước thiết lập dưới đây dành cho cả Windows, macOS, và Linux.
☰
để mở Firefox menu:⚙ Preferences
.Network Settings
click vào nút Settings...
.Một cửa sổ mới mở ra.
Manual proxy configuration
.HTTP Host
và 3128
ở trường Port
.Also use this proxy for FPT and HTTPS
.OK
để lưu lại các thiết lập.