You are on page 1of 17

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

NHẬP MÔN ĐẢM BẢO AN NINH


THÔNG TIN
LAB 6 – SQUID PROXY

Duy Nguyen
KHOA MẠNG MÁY TÍNH TRUYỀN THÔNG
LAB 6: HTTP SQUID PROXY

I. GIỚI THIỆU VỀ SQUID PROXY


Squid proxy là một giải pháp proxy mã nguồn mở. Squid có đầy đủ các tính năng của một giải
pháp proxy chuyên dụng, ngoài ra còn hỗ trợ thêm tính năng ICP ( Internet Cache Protocol) cho
phép cập nhật những thay đổi về nội dung những URL sẵn có trong bộ nhớ đệm đồng thời lại được
cung cấp miễn phí. Chính vì những lý do đó Squid đã trở thành một trong những giải pháp web
caching proxy được nhiều người sử dụng nhất. Chúng ta có thể xem thêm một số thông tin tại
trang chủ http://squid-cache.org

Trong bài lab này, chúng ta sẽ triển khai Squid Proxy trên hệ điều hành CentOS 6.7 i686 .

II. TRIỂN KHAI SQUID PROXY


II.1. Mô tả bài lab:
Trong bài lab này, chúng ta sẽ triển khai squid proxy ở hai chế độ: Squid non-transparent proxy
và Squid Transparent proxy ( kết hợp iptables). Sau khi triển khai xong chúng ta sẽ viết chính
sách kiểm soát truy cập tương ứng.

II.2. Mô hình triển khai:


Bảng thông tin địa chỉ IP:

IP Address SubnetMask Default Gateway DNS


PC1 192.168.1.1 255.255.255.0
eth0 : Bridge
Squid Proxy
eth1: 192.168.1.254 255.255.255.0

II.3. Cài đặt:


Khởi tạo một máy ảo như sau:
Trong giao diện terminal, gõ lệnh sau để cài đặt tự động các gói của Squid Proxy:

yum install squid


Chọn y để bắt đầu quá trình cài đặt

Sau đó dùng lệnh :

rpm -qi squid

để kiểm tra quá trình cài đặt đã thành công hay chưa. Nếu như thấy thông tin về gói này thì quá
trình cài đặt đã thành công.
Xem thông tin file cấu hình của Squid:

rpm -qc squid

Chúng ta chỉ lưu ý đến file /etc/squid/squid.conf chứa những thông tin cấu hình của gói squid này.

II.4. Cấu hình Squid Proxy


II.4.1. Cấu hình Squid ở chế độ non-transparent proxy
vi /etc/squid/squid.conf
Dưới trường “Apdapt to list your IP internal network from where browsing should be allowed
thêm vào dòng sau. Trường này sẽ định nghĩa ra dải địa chỉ IP mà cho phép sử dụng squid proxy.
Chúng ta thêm vào dòng sau
acl local_net src 192.168.1.0/24

Dưới trường “INSERT YOUR OWN RULE HERE TO ALLOWED ACCESS FROM YOUR
CLIENT”, chúng ta thêm vào dòng sau:
http_access allow local_net
Định nghĩa port mà Squid Proxy sẽ lắng nghe. Chúng ta để mặc định là 3128

Uncomment ( xóa dấu #) trước dòng cache_dir ufs /var/spool/squid 1000 16 256

Các thông số này có ý nghĩa như sau:


 Dung lượng lưu trữ dành cho squid cache trên ổ cứng là 1000 MB
 Bao gồm 16 thư mục
 Mỗi thư mục bao gồm 256 thư mục con.

Các thông số này chúng ta có thể tùy chỉnh theo nhu cầu riêng sao cho thích hợp.

Khởi tạo thư mục cache:

squid –z
Khởi động lại squid:
service squid restart

Cấu hình trên iptables:


Bật tính năng ip_forwarding:
Chỉnh sửa file
vi /etc/sysctl.conf

Cấu hình NAT cho dải IP nội bộ ra internet:


iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
( trong đó card eth0 là card giao tiếp với internet )
Chỉnh sửa các CHAIN của iptables mặc định là ACCEPT
iptables –P INPUT ACCEPT
iptables –P OUTPUT ACCEPT
iptables –P FORWARD ACCEPT

Tắt Selinux:
vi /etc/sysconfig/selinux
Lưu ý trong trường hợp này mục Default gateway chúng ta bỏ trống.
Trên Client, chúng ta vào Control Panel | Internet Option | Connection | LAN Settings. Điền các
thông số sau
 Address: Địa chỉ IP của Squid Proxy
 Port : Địa chỉ Port mà squid proxy đang thực hiện lắng nghe.

Sau đó chọn OK.

Trên client, thực hiện truy cập thử vào internet.

Ta thấy client truy cập bình thường.

Xem thông tin về access.log của Squid:

tail –f /var/log/squid/access.log
Trong file log này chúng ta thấy có hai kiểu bản tin:

TCP_MISS: Nội dung không tìm thấy trong cache, yêu cầu được redirect trực tiếp đến Server

TCP_HIT: Nội dung tìm thấy trong cache, yêu cầu được trả về trực tiếp cho client.

Kết luận: Chúng ta đã triển khai thành công Squid ở chế độ non-transparent.

II.4.2. Cấu hình squid ở chế độ transparent proxy:


Khi cấu hình squid ở chế độ transparent proxy thì tính năng NAT trên iptables làm nhiệm vụ
chuyển hướng các luồng traffic đến IP + port mà squid đang lắng nghe.

Chỉnh sửa file cấu hình squid như sau:

Dùng tính năng NAT trên iptables để chuyển dịch địa chỉ IP tương ứng:

iptables –t nat –A PREROUTING –i eth1 –p tcp --dport 80 –j DNAT –to 192.168.1.254:3128

iptables –t nat –A PREROUTING –i eth0 –p tcp --dport 80 –j REDIRECT –to-port 3128


Thêm câu lệnh sau:

visible_hostname centossrv

Với centossrv là hostname hiện tại của squid proxy.

Giải thích ý nghĩa của hai câu lệnh :

 Câu lệnh thứ nhất: thực hiện thay đổi destination IP của tất cả các gói tin đến từ mạng nội
bộ ( cổng eth1) có giao thức tcp và có port đích là 80 thành địa chỉ IP và port tương ứng
của squid proxy.
 Câu lệnh thứ hai : thực hiện chuyển hướng port từ port 80 sang port 3128 của tất cả gói tin
từ mạng bên ngoài ( cổng eth0)

Khởi động lại squid:

service squid restart

Trên client, chúng ta cấu hình như bình thường:


III. TRIỂN KHAI MỘT SỐ CHÍNH SÁCH QUẢN LÝ TRUY CẬP TRÊN SQUID
Các chính sách này có thể được triển khai ở squid non-transparent hay squid transparent.

Lưu ý: Tất cả các rule cấm được demo dưới đây đều phải nằm trên cùng rule cho phép tất cả (
rule cho phép tất cả là rule http_access local_net src 192.168.1.0/24 )

III.1. Viết chính sách quản lý truy cập internet theo thời gian:
Thêm dòng ACL sau trên cùng danh sách quản lý truy cập của Squid:

vi /etc/squid/squid.conf
Trong đó H T W H F là viết tắt của các ngày trong tuần bao gồm ( M: thứ hai, T: thứ ba, W: thứ
tư, H : thứ năm, F: thứ sáu )

Thêm dòng này trên cùng.

III.2. Viết chính sách quản lý truy cập theo tên miền trang web:
Comment ( thêm dấu # vào dòng rule vừa tạo)

Thêm một file restricted-site.squid vào đường dẫn /etc/squid/ chứa các destination domain cần
cấm.

vi /etc/squid/restricted-site.squid
Thêm dòng sau vào file cấu hình của squid /etc/squid/squid.conf

Định nghĩa một acl chứa nội dung file vừa tạo:

Viết rule tương ứng với acl đó:

III.3. Viết chính sách quản lý truy cập theo địa chỉ IP:
Định nghĩa một acl chứa địa chỉ IP cần cấm

Thêm một dòng ACL :


IV.KIỂM TRA CÁC CHÍNH SÁCH VỪA TẠO
IV.1. Kiểm tra chính sách truy cập theo thời gian
IV.2. Kiểm tra chính sách kiểm soát truy cập theo IP
IV.3. Kiểm tra chính sách kiểm soát truy cập theo tên miền

V. PHẦN MỞ RỘNG:
 Tìm hiểu và triển khai công cụ quản trị Squid Proxy: Webmin
 Tìm hiểu và triển khai công cụ quản trị và kết xuất các báo cáo truy cập web của người
dùng : The Squid Analyzer.
 Tìm hiểu và triển khai một proxy hoàn chỉnh : bao gồm HTTP+HTTPS proxy, tích hợp
chống virus, lọc theo content trang web, tích hợp chứng thực người dùng khi sử dụng
proxy,…

You might also like