Squid là một proxy với đầy đủ các chức năng, hỗ trợ các giao thức mạng phổ biến như HTTP, HTTPS, FTP và nhiều hơn. Nó có thể dùng để cải thiện hiệu năng của máy chủ bằng việc tạo bộ nhớ đệm cho các requests lặp đi lặp lại, lọc web traffic và truy cập các thông tin bị giới hạn theo vị trí địa lí

Trong bài này mình sẽ hướng dẫn cách thiết lập Squid Proxy trên Ubuntu 20.04 và cấu hình Firefox và Chrome để sử dụng nó

Cài đặt Squid với Ubuntu

Package Squid đã có sẵn trong repositories mặc định của Ubuntu 20.04. Để cài đặt bạn chỉ cần gõ hai câu lệnh sau

sudo apt updatesudo apt install squidSau khi cài đặt xong thì services của squid sẽ tự động khởi chạy. Để kiểm tra trạng thái của squid bạn sử dụng câu lệnh

sudo systemctl status squidVà bạn sẽ nhận được output tương tự dưới đây nếu squid được cài đặt thành công

Trước khi thay đổi bất cứ điều gì, bạn nên sao lưu lại file cấu hình mẫu

sudo cp /etc/squid/squid.conf{,.orginal}Tiến hành mở file bằng text editor bạn muốn, ở đây mình dùng nano

sudo nano /etc/squid/squid.confMặc định squid sẽ lắng nghe ở cổng 3128 ở tất cả các network interfaces trong server

Nếu bạn muốn đổi port cho một interface cụ thể, bạn sẽ tìm dòng bắt đầu bằng http_port và chỉ định IP của interface và port mới. Nếu không có interface nào được chỉ định thì Squid sẽ lắng nghe ở tất cả các interfaces

# Squid normally listens to port 3128http_port IP_ADDR:PORTPhần lớn người dùng thường chạy Squid ở tất cả các interfaces với port mặc định

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

Thay vì thêm các địa chỉ IP vào trong file cấu hình chính, tạo một file riêng lưu trữ các địa chỉ IPs được yêu cầu. Chẳng hạn như files /etc/squid/allowed_ips.txt với nội dung như ở dưới

192.168.33.1# All other allowed IPsSau khi hoàn thành, mở file cấu hình và tạo một ACL mới có tên là allowed_ips và cho phép truy cập vào ACL sử dụng chỉ thị http_access

# …acl allowed_ips src “/etc/squid/allowed_ips.txt”# …#http_access allow localnethttp_access allow localhosthttp_access allow allowed_ips# And finally deny all other access to this proxyhttp_access deny allThứ tự các dòng của rules http_access thực sự quan trọng.

Đang xem: Cài đặt và cấu hình squid http proxy server trên centos 7 / rhel 7

Xem thêm:

Xem thêm:

Bạn lưu ý hãy thêm dòng này trước dòng http_access deny all.

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

Sau khi bạn thay đổi file cấu hình, bạn hãy khởi động lại Squid Service để thay đổi có hiệu lực

sudo systemctl restart squidXác thực trong SquidNếu việc giới hạn truy cập dựa trên IP không phù hợp cho trường hợp của bạn, bạn có thể dùng squild 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 basic auth. Nó là một phương pháp xác thực đơn giản sử dụng giao thức HTTP

Để tạo ra một password được mã hoá, bạn sử dụng công cụ openssl. Câu lệnh dưới đây đưa cặp USERNAME:PASSWORD vào trong files /etc/squid/htpasswd

printf “USERNAME:$(openssl passwd -crypt PASSWORD)
” | sudo tee -a /etc/squid/htpasswdChẳng hạn như để tạo user honamphoto.com với password Cl
ne”)
” | sudo tee -a /etc/squid/htpasswdBước tiếp theo để kích hoạt HTTP basic authentication và đưa file chứa thông tin đăng nhập vào file cấu hình của squid

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

sudo nano /etc/squid/squid.confThêm vào các dòng sau

# …auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/htpasswdauth_param basic realm proxyacl authenticated proxy_auth REQUIRED# …#http_access allow localnethttp_access allow localhosthttp_access allow authenticated# And finally deny all other access to this proxyhttp_access deny allKhởi chạy lại squid

sudo systemctl restart squidCấu hình tường lửaĐể mở port cho Squid. Hãy kích hoạt Profiles UFW

sudo ufw allow “Squid”Trong trường hợp Squid chạy ở một port khác, chẳng hạn như 8888. Thì bạn sử dụng câu lệnh như sau

sudo ufw allow 8888/tcpCấu hình trình duyệt sử dụng Proxy

Firefox

Tại góc trên bên phải. Click icon ☰ để mở menu của Firefox:Click vào mục ⚙ Preferences .Cuộn xuống mục Network Settings và click vào biểu tượng Settings….Trong hộp thoại mới mở raChọn vào mục Manual proxy configurationNhập vào IP của Server cài Squid vào mục HTTP Host và nhập 3128 vào mục Port.Chọn vào checkbox Use this proxy server for all protocols.Cuối cùng bạn click nút OK.

*

macOS

“/Applications/Google Chrome.app/Contents/MacOS/Google Chrome” –user-data-dir=”$HOME/proxy-profile” –proxy-server=”https://honamphoto.com/huong-dan-cau-hinh-squid-proxy/imager_1_10596_700.jpg”

Windows

“C:Program Files (x86)GoogleChromeApplicationchrome.exe” ^–user-data-dir=”%USERPROFILE%proxy-profile” ^–proxy-server=”https://honamphoto.com/huong-dan-cau-hinh-squid-proxy/imager_1_10596_700.jpg”

Leave a Reply

Your email address will not be published. Required fields are marked *