[Ubuntu] Cài đặt Squid Proxy trên Ubuntu 22.04

Tác giả: 16/07/2023

Squid Proxy là một phần mềm proxy server mã nguồn mở được sử dụng để lưu trữ bản sao của các tài nguyên web đã được truy cập trước đó. Khi người dùng yêu cầu truy cập tài nguyên web, Squid Proxy sẽ truy vấn lưu trữ của mình trước khi chuyển tiếp yêu cầu này đến máy chủ web gốc. Nếu Squid Proxy đã lưu trữ bản sao của tài nguyên đó, nó sẽ trả về bản sao đó cho người dùng, giúp giảm tải cho máy chủ gốc và tăng tốc độ truy cập.

Squid Proxy cũng có thể được sử dụng để kiểm soát truy cập vào các tài nguyên web bằng cách thiết lập các chính sách quản lý truy cập. Nó cũng cung cấp các tính năng bảo mật như chứng thực người dùng và mã hóa dữ liệu truyền tải giữa Squid Proxy và máy khách. Squid Proxy là một trong những phần mềm proxy server phổ biến nhất và được sử dụng rộng rãi trong các môi trường doanh nghiệp và hệ thống mạng lớn.

Hôm nay Nhân Hòa sẽ cùng các bạn cài đặt Squid proxy trên Ubuntu 22.04 và đặt một số acl cơ bản trên Squid server

Mở terminal trên Ubuntu 22.04 và cập nhật các gói phần mềm bằng lệnh sau:

apt update -y
apt upgrade -y

Cài đặt Squid Proxy Server bằng lệnh sau:

apt install squid -y

Sau khi cài đặt xong, bạn có thể chỉnh sửa cấu hình Squid bằng cách mở file /etc/squid/squid.conf và sửa các thiết lập theo nhu cầu của bạn. Để tránh làm hỏng cấu hình, bạn có thể sao lưu file cấu hình trước khi chỉnh sửa:

cp /etc/squid/squid.conf /etc/squid/squid.conf.bak

Khởi động lại dịch vụ Squid Proxy Server

systemctl restart squid.service
systemctl enable squid.service
systemctl status squid.service

Nếu Squid Proxy Server đã hoạt động chính xác, bạn sẽ thấy thông báo “active (running)” trong kết quả trả về.

Mặ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

Phầ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

58.186.44.179
14.248.82.194

Thay địa chỉ trên bằng IP public của bạn.

Sau 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 allowed_ips

Chặn website 

Bạn thêm danh sách website vào file

vi etc/squid/website_block.txt

Thêm vào

.facebook.com
.youtube.com

Sau đó thêm 1 accesslist như sau

acl block dstdomain "/etc/squid/website_block.txt"
http_access deny block
systemctl restart squid.service

 

Log thể hiện đã chặn :

Chặn từ khóa trong URL

Tạo từ khóa cần chặn tại

vi /etc/squid/blockedurls.txt
sex
port
download

Sau đó chúng ta thêm accesslist

acl blockkeyword url_regex -i "/etc/squid/blockedurls.txt"
http_access deny blockkeyword
systemctl restart squid.service

Các website mà url  có chứa các cụm từ trong /etc/squid/blockedurls.txt sẽ bị chặn.

Chặn loại tệp tin

Bạn có thể hạn chế download trực tiếp các tệp cần chặn

vi /etc/squid/externsions.txt

Thêm vào

.mp4
.mp3
.zip
.pdf
.png
.jpg

Tạo acl

acl blockexentions urlpath_regex -i "/etc/squid/externsions.txt"
http_access deny blockexentions
systemctl restart squid.service

 

Như vậy Nhân Hòa đã giới thiệu đến các bạn cơ bản về Squid Proxy

Hẹn gặp lại các bạn tại các bài viết sau tại wiki.nhanhoa.com

Trả lời