Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.51 MB, 22 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b>GVHD: TS. Nguyễn Tấn Cầm</b>
Nguyễn Ngọc Quí
<b>Lớp: IE105.O21Sinh viên thực hiện: </b>
Đỗ Nguyên Phương MSSV: 22521159
Tp. Hồ Chí Minh, 02/2024
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2"><b>NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN</b>
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">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 chun dụng, ngồ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ủ .
Squid Proxy là một máy chủ proxy mã nguồn mở được sử dụng rộng rãi, hỗ trợ HTTP, HTTPS, FTP và nhiều giao thức khác. Nó giúp giảm băng thơng và cải thiện thời gian phản hồi bằng cách lưu trữ và tái sử dụng các trang web được yêu cầu
thường xun1. Squid có các cơ chế kiểm sốt truy cập phong phú và là một giải pháp tăng tốc độ cho máy chủ.
Một số điểm nổi bật của Squid Proxy:
- Caching: Squid lưu trữ nội dung web được truy cập thường xuyên, giúp tăngtốc độ duyệt web và giảm sử dụng băng thơng.
- Kiểm sốt truy cập: Squid cho phép tạo danh sách kiểm soát truy cập (ACLs) để quản lý quyền truy cập vào các nguồn web.
- Bảo mật: Squid có thể được cấu hình để sử dụng SSL/TLS, tăng cường bảo mật cho các kết nối.
- Hiệu suất cao và khả năng mở rộng: Squid hỗ trợ cân bằng tải và có thể được cấu hình cho các môi trường phân tán để đạt được hiệu suất cao và khảnăng mở rộng.
Trong bài lab này, chúng ta sẽ triển khai Squid Proxy trên hệ điều hành CentOS7 – i386.
<b>II.1 Mô tả bài lab</b>
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 sốt truy cập tương ứng.
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6"><b>II.2 Mơ hình triển khai</b>
<i><small>Bảng II.1 Thông tin địa chỉ IP</small></i>
<b>IP AddressSubnetMaskDefault GatewayDNS</b>
ens33: 192.168.1.2 255.255.255.0
<b>II.3 Cài đặt</b>
<i><small>Hình II.1 Khởi tạo máy ảo</small></i>
Trong giao diện terminal, gõ lệnh sau để cài đặt tự động các gói của Squid Proxy:
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7"><i><small>Hình II.2 Lệnh install squid</small></i>
Chọn y để bắt đầu quá trình cài đặtSau đó dùng lệnh:
Để kiểm tra q trình cài đặt đã thành cơng hay chưa. Nếu như thấy thơng tin gói này thì q trình cài đặt đã thành cơng.
<i><small>Hình II.3 Lệnh rpm -qi squid</small></i>
Xem thơng tin file cấu hình của Squid:
<i>yum install squid</i>
<i>rpm -qi squid</i>
<i>rpm -qc squid</i>
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8"><i><small>Hình II.4 Lệnh -qc squid</small></i>
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.
<b>II.4 Cấu hình Squid Proxy</b>
<i>II.4.1 Cấu hình squid ở chế độ non-transparent proxy</i>
Ta truy cập file squid.conf để thiết lập cấu hình
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:
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:
<i>vi /etc/squid/squid.conf</i>
<i>acl local_net src 192.168.1.0/24</i>
<i>http_access allow local_net</i>
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">Định nghĩa port mà Squid Proxy sẽ lắng nghe. Chúng ta để mặc định là 3128
<b>Uncomment ( xóa dấu #) trước dịng cache_dir ufs /var/spool/squid 1000 16 256</b>
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:
Khởi động lại squid:
Cấu hình trên iptables:
<i>squid -z</i>
<i>service squid restart</i>
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">Bật tính năng ip_forwarding: Chỉnh sửa file
Cấu hình NAT cho dải IP nội bộ ra internet:
Chỉnh sửa các CHAIN của iptables mặc định là ACCEPT
Tắt Selinux:
Trên Client, chúng ta vào Control Pane và cấu hình mạng IPv4
<i>vi /etc/sysctl.conf</i>
<i>iptables -t nat -A POSTROUTING -o ens36 -j MASQUERADE</i>
<i>iptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPT</i>
<i>vi /etc/sysconfig/selinux</i>
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">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.
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">Sau đó chọn OK.
Trên client, thực hiện truy cập thử vào internet, nếu ta thấy client truy cập bình thường thì q trình cấu hình thành cơng.
Xem thông tin về access.log của Squid:
Kết luận: Chúng ta đã triển khai thành công Squid ở chế độ non-transparent.
<i>II.4.2 Cấu hình squid ở chế độ transparent proxy</i>
Tắt Selinux:
Tiếp theo ta truy cập file ifcfg-ens33 để cấu hình lại mạng:
Truy cập vào file squid.conf để thiết lập cấu hình squid:
Trong trường này ta thêm visible_hostname [hostname] với hostname là tên host name của máy
<i>tail -f /var/log/squid/access.log</i>
<i>vi /etc/sysconfig/selinux</i>
<i>vi /etc/sysconfig/network-scripts/ifcfg-ens33</i>
<i>vi /etc/squid/squid.conf</i>
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">Ta tạo acl cho phép dải IP hoạt động trong Squid Proxy và thêm rule cho acl vừa tạo:
Định nghĩa port mà Squid Proxy sẽ lắng nghe. Chúng ta để mặc định là 3128
<b>Uncomment ( xóa dấu #) trước dịng cache_dir ufs /var/spool/squid 1000 16 256</b>
Sau đó khởi động lại squid và tắt tường lửa:
Trên client ta thiết lập Proxy với địa chỉ và port đã thiết lập:
<i>acl local_net src 192.168.26.0/24http_access allow local_net</i>
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">Xem thông tin về access.log của Squid:
Kết luận: Chúng ta đã triển khai thành công Squid ở chế độ transparent.
<b>III.1 Viết chính sách quản lí truy cập internet theo thời gian</b>
Truy cập vào file squid.conf để viết chính sách quản lí truy cập internet theo thời gian.
Thêm dịng acl sau vào trên cùng danh sách quản lí truy cập squid:
Trong đó, M T W H F là viết tắt của các ngày trong tuần bao gồm (M: thứ 2, T: thứ ba, W: thứ tư, H: thứ năm, F: thứ sáu)
Sau đó thêm dịng http_access deny [tên acl vừa tạo]
<b>III.2 Viết chính sách quản lí truy cập theo tên miền trang web</b>
vào đường dẫn /etc/squid/ chứa các destination domain cần cấm.
Đị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 đó:
<b>III.3 Viết chính sách quản lí truy cập theo địa chỉ IP</b>
Định nghĩa một acl chứa địa chỉ IP cần cấm:
<i>tail -f /var/log/squid/access.log</i>
<i>vi /etc/squid/squid.conf</i>
<i>vi /etc/squid/restricted-site.squid</i>
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">Viết rule tương ứng với acl đó:
<b>IV.1 Kiểm tra chính sách truy cập theo thời gian</b>
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16"><b>IV.2 Kiểm tra chính sách kiểm sốt truy cập theo IP</b>
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17"><b>IV.3 Kiểm tra chính sách kiểm sốt truy cập theo tên miền</b>
- Viết bằng ngơn ngữ Perl, có hỗ trợ khái niệm module.- Được dùng cho mục đích thương mai hoặc phi thương mại.
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">- Hỗ trợ tạo, chỉnh sửa và xoá các tài khoản Unix trên hệ thống.
- Xuất các tập tin và thư mục cho các hệ thống khác nhờ vào giao thức NFS.- Tùy chỉnh server BIND DNS.
- Hỗ trợ tạo và cấu hình máy chủ web ảo cho Apache Webserver.- Biến và version của PHP có thể được cấu hình.
- Quản lý các file đồ họa.- Email servers.
- Quản lý dữ liệu của MySQL và PostgreSQL.- Nhiều tính năng để bảo vệ server gốc.
- Giao diện đồ họa: Thay vì sử dụng dịng lệnh (CLI), bạn có thể quản lý hệ thống thông qua giao diện đồ họa trực quan và dễ sử dụng.
- Hỗ trợ tài liệu: Webmin đi kèm với nhiều tài liệu hướng dẫn và hỗ trợ từ cộng đồng, giúp bạn nắm vững cách sử dụng.
- Cộng đồng hỗ trợ: Nếu bạn gặp vấn đề, có thể tìm kiếm giải pháp hoặc hỏi đáp trong cộng đồng Webmin.
<b>V.2 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</b>
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">+ Các báo cáo thống kê này hướng đến việc kiểm sốt người dùng và băng thơng.
- Tìm kiếm dữ liệu log thời gian thực và phân tích nguyên nhân gốc:
+ Sử dụng các tùy chọn tìm kiếm thơng minh của SolarWinds SEM, bạn có thể khám phá và phân tích dữ liệu để dễ dàng thực hiện phân tích nguyên nhân gốc từ dữ liệu log Squid. Điều này giúp bạn xác định chính xác những gì đã xảy ra trước, trong và sau sự kiện.
+ Bạn cũng có thể theo dõi các log của máy chủ proxy Squid để theo dõi kiểm soát truy cập trang web, xác thực và môi trường ghi log để phát triển ứng dụng proxy web và phục vụ nội dung1.
- Thu thập dữ liệu log từ SquidGuard Access Block Log:
+ SolarWinds SEM được thiết kế để dễ dàng thu thập dữ liệu log từ SquidGuard, một công cụ chuyển hướng URL miễn phí cho phép sử dụng danh sách đen với phần mềm proxy Squid.
+ Bạn cũng có thể cấu hình luật trong SEM để nhận cảnh báo trong trường hợp có các yêu cầu URL đáng ngờ, bên cạnh hơn 700 luật tương thích khác sẵn có
<i>V.2.3 Giải quyết vấn đề: Hỗ trợ thống kê và tổng hợp log từ Squid proxy</i>
<b>V.3 Tìm hiểu và triển khai một proxy hồ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,…</b>
<i>V.3.1 Định nghĩa:</i>
<b>- Đóng hai vai trị trong việc phục vụ máy khách HTTP lẫn máy chủ HTTP cho </b>
chức năng bảo mật, quản lý và lưu trữ. Định tuyến cho các yêu cầu từ máy khách HTTP, đồng thời hỗ trợ lưu trữ dữ liệu từ internet vào cache.
<i>V.3.2 Ưu điểm</i>
<b>- Bảo mật nâng cao: Proxy Server có thể hoạt động giống như một tường lửa giữa</b>
hệ thống của người dùng và Internet. Nếu khơng có chúng, tin tặc có thể dễ dàng truy cập vào địa chỉ người dùng và gây hại. Sử dụng proxy giúp tăng cường bảo mật hệ thống.
<b>- Vượt qua tường lửa và các biện pháp ngăn chặn website: Một proxy có thể giúp</b>
bạn truy cập vào các trang web bị chặn hoặc bị hạn chế bởi tường lửa hoặc các
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">biện pháp kiểm duyệt. Bằng cách sử dụng proxy, bạn có thể truy cập vào các nội dung mà bạn không thể truy cập trực tiếp.
<b>- Lọc nội dung trang web: Proxy có thể được cấu hình để lọc nội dung trang web.</b>
Điều này cho phép bạn kiểm soát truy cập vào các loại nội dung cụ thể, chẳng hạn như chặn trang web độc hại hoặc khơng phù hợp.
<b>- Tích hợp chứng thực người dùng khi sử dụng proxy: Một số proxy server cho </b>
phép tích hợp chứng thực người dùng, đảm bảo rằng chỉ người dùng được ủy quyền mới có thể sử dụng proxy.
<i>V.3.3 Đặc tính:</i>
<b>- Cho phép hoạt động trên Net với giao thức HTTP, đôi khi có thể sử dụng giao </b>
thức FTP (File Transfer Protocol).
<b>- Là một máy chủ gián tiếp. Thay vì chúng ta kết nối tới một trang web thì có thể </b>
kết nối thông qua Proxy