Tiểu luận môn học an ninh mạng Cấu hình hệ thống IDS

63 489 2
Tiểu luận môn học an ninh mạng Cấu hình hệ thống IDS

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Cấu hình hệ thống IDS Giảng Viên Hướng dẫn : CH Nguyễn Duy 08520292 Phạm Phú Phúc 08520435 Nguyễn Thành Trung 08520530 Trương Thị Thùy Duyên 08520548 Lê Kim Hùng Contents Lý thuyết 1.1 Tổng Quan IDS 1.1.1 Khái Niệm IDS- Intrusion Detection System/ Hệ thống phát xâm phạm IDS hệ thống phòng chống, nhằm phát hành động công vào mạng Mục đích phát ngăn ngừa hành động phá hoại vấn đề bảo mật hệ thống, hành động tiến trình cơng sưu tập, qt cổng Một tính hệ thống cung cấp thơng tin nhận biết hành động khơng bình thường đưa báo cảnh thông báo cho quản trị viên mạng khóa kết nối cơng Thêm vào cơng cụ IDS phân biệt công bên từ bên tổ chức (từ nhân viên khách hàng) cơng bên ngồi (tấn cơng từ hacker) Các thành phần IDS: - Trung tâm điều khiển (The Command Console) - Bộ cảm biến (Network Sensor) - Bộ phân tích gói tin(Network Trap) - Thành phần cảnh báo (Alert Notification) 1.1.2 Phân Loại Cách thông thường để phân loại hệ thống IDS (cũng IPS) dựa vào đặc điểm nguồn liệu thu thập Trong trường hợp này, hệ thống IDS chia thành loại sau: Network-based IDS (NIDS) 1.1.2.1 Hệ thống IDS để bảo vệ hệ thống mạng , sử dụng Gateway Nhiệm vụ ngăn chặn quản lí gói tin trước chúng chuyển vào hệ thống Sử dụng liệu tồn lưu thơng mạng, với liệu kiểm tra từ một vài máy trạm để phát xâm nhập Hình : Mơ hình NIDS Ưu Điểm : - Quản lý network segment (gồm nhiều host) - "Trong suốt" với người sử dụng lẫn kẻ công - Cài đặt bảo trì đơn giản, khơng ảnh hưởng tới mạng - Tránh DOS ảnh hưởng tới host - Có khả xác định lỗi tầng Network (trong mơ hình OSI) - Độc lập với OS Hạn chế : - Có thể xảy trường hợp báo động giả Khơng thể phân tích gói tin mã hóa (vd: SSL, SSH, IPSec…) NIDS địi hỏi phải cập nhật signature để thực an tồn Có độ trễ thời điểm bị công với thời điểm phát báo động.Khi báo động phát ra, hệ thống bị tổn hại - Khơng cho biết việc cơng có thành công hay không - Giới hạn băng thông Những dò mạng phải nhận tất lưu lượng mạng, xếp lưu lượng phân tích chúng Khi tốc độ mạng tăng khả dị Host-based IDS (HIDS) 1.1.2.2 Chức bảo vệ tài nguyên máy chủ số hệ thống WebHost,Mailhost v.v Sử dụng liệu kiểm tra từ máy trạm đơn để phát xâm nhập Hình : Mơ hình HIDS Ưu điểm : - Có khả xác định người dùng liên quan tới kiện HIDS có khả phát công diễn máy Có thể phân tích liệu mã hố Cung cấp thơng tin host lúc công diễn host Hạn Chế : - Thông tin từ HIDS không đáng tin cậy công vào host thành công - Khi hệ điều hành bị "hạ" công, đồng thời HIDS bị "hạ" - HIDS phải thiết lập host cần giám sát - HIDS khơng có khả phát dò quét mạng (Nmap, Netcat…) - HIDS cần tài nguyên host để hoạt động - HIDS khơng hiệu bị DOS - Đa số chạy hệ điều hành Window Tuy nhiên có số chạy UNIX hệ điều hành khác Host IDS – HIDS Network - NIDS HIDS quan sát host , hệ điều NIDS nhìn tồn cảnh luồng liệu mạng hành, hoạt động ứng dụng (NIDS thường coi sniffer) (thường làm cơng việc phân tích log, kiểm tra tính tồn vẹn…) Chỉ phát cơng NIDS phát công tiềm thành công Hoạt động hiệu môi trường chuyển mạch, mã hóa, tốc độ cao Rất khó hoạt động môi trường 1.1.3 Phương pháp phát xâm nhập Các hệ thống IDS thường sử dụng phương pháp để phát xâm nhập sau: - Phát dựa dấu hiệu (Misuse Detection Model): Hệ thống phát xâm nhập cách tìm kiếm hành đơng tương ứng với kĩ thuật xâm nhập biết đến (dựa dấu hiệu - signatures) điểm dễ bị công hệ thống - Phát dựa bất thường (Anomaly Detection Model): Hệ thống phát xâm nhập cách tìm kiếm hành đơng khác với hành vi bình thường người dùng hay hệ thống 1.2 Snort 1.2.1 Tổng quan 1.2.1.1 Giới thiệu snort Snort NIDS Martin Roesh phát triển mơ hình mã nguồn mở Tuy Snort miễn phí lại có nhiều tính tuyệt vời mà sản phẩm thương mại có Với kiến trúc thiết kế theo kiểu module, người dùng tự tăng cường tính cho hệ thống Snort việc cài đặt hay viết thêm module Cơ sở liệu luật Snort lên tới 2930 luật cập nhật thường xuyên cộng đồng người sử dụng Snort chạy nhiều hệ thống Windows, Linux, OpenBSD, FreeBSD, NetBSD, Solaris, HP-UX, AIX, IRIX, MacOS Bên cạnh việc hoạt động ứng dụng thu bắt gói tin thơng thường, Snort cịn cấu hình để chạy NIDS Snort hỗ trợ khả hoạt động giao thức sau: Ethernet, 802.11,Token Ring, FDDI, Cisco HDLC, SLIP, PPP, PF OpenBSD 1.2.1.2 Các yêu cầu hệ thống Snort - Qui mô hệ thống cần bảo vệ : nói cách tổng qt, qui mơ mạng lớn, máy móc cần phải tốt ví dụ Snort sensor Snort cần theo kịp với quy mơ mạng, cần có đủ không gian để chứa cảnh báo, xử lý đủ nhanh mạnh để xử lý luồng lưu lượng mạng lớn Phần cứng máy tính: Yêu cầu phần cứng đóng vai trị thiết yếu việc thiết kế hệ thống an ninh tốt Hệ điều hành: Snort chạy nhiều hệ điều hành khác như: Linux, FreeBSD, NetBSD, OpenBSD, Window Các hệ thống khác hỗ trợ bao gồm kiến trúc Sparc-Solaric, MacOS X MkLinux, PA-RISC HP UX 1.2.1.3 Tổng quan cách thức hoạt động : Snort sử dụng với số chế: Sniffer mode: chế độ cho phép bạn theo dõi đọc luồng - iệu vào hệ thống mạng hiển thị hình điều khiển Packet Logger mode: cho phép ghi logs liệu vào đĩa lưu trữ Network Intrusion Detection System (NIDS) mode: chế cấu hình phức tạp nhất, cho phép Snort phân tích luồng liệu, kiểm sốt cho (hay không) cho phép liệu vào hệ thống mạng dựa vào qui tắc định nghĩa người quản trị, đồng thời thực - vài hành động dựa vào mà Snort nhìn thấy Inline mode: gói tin thu từ iptables thay libpcap, sau iptables thực hành động hủy hay cho phép gói tin qua dựa qui tắc qui định sử dụng Snort 1.2.2 Kiến Trúc Snort Snort bao gồm nhiều thành phần, thành phần có chức riêng biệt, chúng động để phát công cụ thể vào hệ thống để từ đưa cảnh báo Hệ thống IDS dựa snort gồm thành phần sau đây: • • • • • Module giải mã gói tin (Packet Decoder) Module tiền xử lý (Preprocessors) Module phát (Detection Engine) Module log cảnh báo (Logging and Alerting System) Module kết xuất thông tin (Output Module) Kiến trúc snort mơ tả hình : Hình : Kiến trúc snort Khi Snort hoạt động thực việc lắng nghe thu bắt tất gói tin di chuyển qua Các gói tin sau bị bắt đưa vào Module Giải mã gói tin Tiếp theo gói tin đưa vào Module Tiền xử lý, Module Phát Tại tùy theo việc có phát xâm nhập hay khơng mà gói tin bỏ qua để lưu thông tiếp đưa vào Module Log cảnh báo để xử lý Khi cảnh báo xác định Module Kết xuất thông tin thực việc đưa cảnh báo theo định dạng mong muốn Sau ta sâu vào chi tiết chế hoạt động chức thành phần 1.2.2.1 Module giải mã gói tin (Packet Decoder) Snort sử dụng thư viện pcap để bắt gói tin mạng lưu thơng qua hệ thống Một gói tin sau giải mã đưa tiếp vào môđun tiền xử lý Nhiệm vụ chủ yếu hệ thống phân tích gói liệu thô bắt mạng phục hồi thành gói liệu hồn chỉnh lớp application, làm input cho hệ thống dectection engine Quá trình phục hồi gói liệu tiến hành từ lớp Datalink lớp Application theo thứ tự Protocol Stack 1.2.2.2 Module tiền xử lý (Preprocessors) Là module quan trọng để chuẩn bị gói liệu đưa vào cho modun phát phân tích, module có nhiệm vụ chính: - Kết hợp gói tin lại: thơng tin truyền khơng đóng gói tồn vào gói tin - Snort sau nhận phải thực ghép nối để có liệu nguyên dạng Giải mã chuẩn hóa giao thức: cơng việc phát xâm nhập dựa dấu hiệu nhận dạng nhiều bị thất bại kiểm tra giao thức có liệu 1.2.2.3 thể nhiều dạng khác Phát xâm nhập bất thường: đối phó với xâm nhập khơng thể khó Phát luật thông thường Module phát (Detection Engine) Đây phần quan trọng Snort Nó chịu trách nhiệm phát dấu hiệu xâm nhập vào hệ thống Module phát sử dụng luật định nghĩa trước để so sánh với liệu thu thập để xác định xem có xâm nhập xảy hay khơng Nếu gói tin phù hợp với luật nào, hành động tương ứng thực ghi log, tạo cảnh báo,đưa thơng tin… gói tin bị hủy Hình : Module phát Một vấn đề quan trọng đặt thời gian thực thi, xử lý gói tin, việc ảnh hưởng lớn đến lưu thông hệ thống mạng Vấn đề phụ thuộc vào yếu tố sau : - Số lượng luật Sức mạnh hệ thống máy mà Snort chạy Tốc độ bus hệ thống Lưu lượng mạng Detection Engine phân chia gói tin áp dụng rule cho phần khác gói tin Các phần là: - Phần IP header gói tin - Phần header tần transport: Đây phần tiêu đề bao gồm TCP, UDP header tầng transport khác Nó làm việc với header ICMP - Phần header lớp ứng dụng: Bao gồm header lớp ứng dụng, không giới hạn, DNS header, FTP header, SNMP header, SMTP header - Packet payload: Có nghĩa tạo rule sử dụng detection engine để tìm kiếm chuỗi bên liệu gói tin 1.2.2.4 Module log cảnh báo (Logging and Alerting System) Khi phận detection engine phát dấu hiệu cơng thơng báo cho phận Logging and Alerting System Các ghi nhận, thông báo lưu dạng văn số định dạng khác Mặc định chúng lưu thư mục /var/log/snort 1.2.2.5 Module kết xuất thông tin (Output Module) Mơđun thực thao tác khác tùy theo việc bạn muốn lưu kết xuất Tùy theo việc cấu hình hệ thống mà thực công việc là: Ghi log file Ghi syslog: syslog chuẩn lưu trữ file log sử dụng nhiều - hệ thống Unix, Linux Ghi cảnh báo vào sở liệu Tạo file log dạng xml: việc ghi log file dạng xml thuận tiện cho việc trao đổi - chia sẻ liệu Cấu hình lại Router, firewall Gửi cảnh báo gói gói tin sử dụng giao thức SNMP Các gói tin dạng SNMP gửi tới SNMP server từ giúp cho việc quản lý cảnh báo hệ thống IDS cách tập trung thuận tiện Gửi thông điệp SMB (Server Message Block) tới máy tính Windows 1.2.3 Hoạt Động 1.2.3.1 Sniff Mode - Ở chế độ này, Snort hoạt động chương trình thu thập phân tích gói /usr/local/snort/etc/snort.conf Chuyển từ : var WHITE_LIST_PATH /etc/snort/rules var BLACK_LIST_PATH /etc/snort/rules Sang : var WHITE_LIST_PATH /usr/local/snort/rules var BLACK_LIST_PATH /usr/local/snort/rules Hình 26 - 1: Cấu hình snort.config Chuyển từ : dynamicpreprocessor directory /usr/local/lib/snort_dynamicpreprocessor/ dynamicengine /usr/local/lib/snort_dynamicengine/libsf_engine.so dynamicdetection directory /usr/local/lib/snort_dynamicrules Sang : dynamicpreprocessor directory /usr/local/snort/lib/snort_dynamicpreprocessor/ dynamicengine /usr/local/snort/lib/snort_dynamicengine/libsf_engine.so dynamicdetection directory /usr/local/snort/lib/snort_dynamicrules Hình 26 - 2: Cấu hình snort.config Chuyển từ #output unified2: filename merged.log, limit 128, nostamp, \ mpls_event_types, vlan_event_types Sang : output unified2: filename snort.u2, limit 128 Hình 26 - 2: Cấu hình snort.config Cài đặt gói barnyard2-1.9.tar.gz để đưa out put vào sở liệu - cài đặt sudo tar zxvf barnyard2-1.9.tar.gz cd barnyard2-1.9 sudo /configure with-mysql sudo make sudo make install sudo cp etc/barnyard2.conf /usr/local/snort/etc sudo mkdir /var/log/barnyard2 sudo chmod 666 /var/log/barnyard2 sudo touch /var/log/snort/barnyard2.waldo sudo chown snort.snort /var/log/snort/barnyard2.waldo Hình 27 : cài đặt gói barnyard2-1.9.tar.gz - Cấu hình : Chỉnh sửa file barnyard2.conf sudo vi /usr/local/snort/etc/barnyard2.conf Chuyển từ : config reference_file: /etc/snort/reference.config config classification_file: /etc/snort/classification.config config gen_file: /etc/snort/gen-msg.map config sid_file: /etc/snort/sid-msg.map #config hostname: thor #config interface: eth0 #output database: log, mysql, user=root password=test dbname=db host=localhost Thành : (chú ý phần yourpassword sẻ password thiết lập lúc cài đặt mysql ) config reference_file: /usr/local/snort/etc/reference.config config classification_file: /usr/local/snort/etc/classification.config config gen_file: /usr/local/snort/etc/gen-msg.map config sid_file: /usr/local/snort/etc/sid-msg.map config hostname: localhost config interface: eth1 output database: log, mysql, user=snort password=123456 dbname=snort \ host=localhost 3.3 Snort inline (centos) sau download gói tiến hành biên dịch cho gói biên dịch gói libnet cd /tmp (di chuyển vào thư mục tmp) tar xvzf libnet-1.0.2a.tar.gz (giả nén libnet) cd Libnet-1.0.2a (di chuyển vào thư mục Libnet-1.0.2a vừa giải nén) /configure && make && make install (kiểm tra câu hình biên dịch libnet, dấu && có ý nghĩa câu lệnh trước thành cơng thực câu lệnh đứng sau ) biên dịch gói libdnet cd /tmp (di chuyển vào thư mục tmp) tar libdnet-1.12.tgz cd libdnet-1.12 (di chuyển vào thư mục libdnet-1.12 vừa giải nén) /configure && make && make install (kiểm tra câu hình biên dịch libdnet, dấu && có ý nghĩa câu lệnh trước thành cơng thực câu lệnh đứng sau ) + biên dịch gói daq cd /tmp (di chuyển đến thư mục tmp) tar zxvf daq-0.3.tar.gz (giải nén daq) cd daq-0.3 (di chuyển đến thư mục daq-0.3 vừa giải nén được) /configure && make && make install (kiểm tra câu hình biên dịch daq, dấu && có ý nghĩa câu lệnh trước thành cơng thực câu lệnh đứng sau ) + biên dịch pcre cd /tmp tar xvzf pcre-7.9.tar.gz cd pcre-7.9 + ./configure && make && make install (kiểm tra câu hình biên dịch pcre, dấu && có ý nghĩa câu lệnh trước thành cơng thực câu lệnh đứng sau ) + biên dịch snort_inline cd /tmp tar -xvf snort_inline-2.4.5a.tar.gz cd snort_inline /configure with-mysql && make && make install (kiểm tra câu hình biên dịch snort, dấu && có ý nghĩa câu lệnh trước thành cơng thực câu lệnh đứng sau ) + tạo password cho tài khoản root mysql # mysqladmin -u root password new_root_password + tạo database # mysql -u root -p >create database snort; + cấp toàn quyền cho tài khoản snort sở liệu snort grant all on snort.* to snortuser@localhost identified by 'snortpassword'; + cấu hình cảnh báo xuất vào sở liệu mysql #nano /etc/snort_inline/snort_inline.conf chỉnh lại dòng output database: log, mysql, user=snortuser password=snortpassword dbname=snort host=localhost + sau cấu hình song snort_inline trình cài đặt snort_inline song muốn hiển thị quản lý cảnh bão cách dễ dàng ta cài đặt thêm base adodb + cài đặt base # tar -xvzf base-1.4.5.tar.gz # mv /tmp/base-1.4.5 /var/www/html/base + cài đặt adodb #tar -xvzf adodb490.tgz #mv /tmp/adodb490 /var/www/html/adodb + cấu hình base #mv /var/www/html/base/base_conf.php.dist /var/www/html/base/base_conf.php cấu hình biến sau: $DBlib_path="./adodb"; $DBtype="mysql"; $alert_dbname = snort; $alert_host = localhost; $alert_port = ""; $alert_user = snortuser; $alert_password = snortpassword; $archive_dbname = snort; $archive_host = localhost; $archive_port = ""; $archive_user = snortuser; $archive_password = snortpassword; cài đặt thêm cá gói sau để hiển thị ảnh base #pear install force Image_Color #pear install force Image_Canvas #pear install force Image_Graph + cài đặt thêm webmin để dễ dàng quản lý # yum install webmin sau cài đặt xong webmin ta khởi động dịch vụ # services httpd start # services mysql start https://localhost.localdomain:10000 + Hình 28 : webmin cho snort Tất thơng tin cấu hình Snort lưu file snort.conf File snort.conf bao gồm phần : • Định nghĩa biến xác định cấu hình mạng • Cấu hình mơđun tiền xử lý Cấu hình mơđun kết xuất thơng tin • Cấu hình luật sử dụng Sau nội dung cụ thể ý nghĩa thơng tin snort.conf • Định nghĩa biến Snort cho phép định nghĩa biến xác định thông số mạng theo định dạng : var : Các biến sử dụng tồn file cấu hình từ sau Ví dụ, định nghĩa : “var : MY_NET 192.168.1.0/24” toàn file config hay file luật ký hiệu MY_NET thay giá trị 192.168.1.0/24 Cấu hình mơđun tiền xử lý Các thơng tin cấu hình cho mơđun tiền xử lý định nghĩa sau : preprocessor : Quy định name options tùy thuộc vào plugin môđun tiền xử lý Ví dụ : cấu hình plugin Portscan detection Patrick Mullen viết sau : preprocessor portscan 192.168.0.1/24 /var/log/portscan.log : 192.168.0.1/24 mạng theo dõi nguy quét cổng số lượng cổng truy cập đồng thời trình quét thời gian theo dõi đê xác định nguy quét cổng /var/log/portscan.log file ghi lại log trinh phát Cấu hình mơđun kết xuất thơng tin Cấu hình cho mơđun kết xuất thơng tin định nghĩa tương tự cấu hình cho mơđun tiền xử lý output : Ví dụ, cấu hình cho Snort kết xuất thông tin cảnh báo syslog máy mạng sau : output alert_syslog: host=192.168.0.1:123, LOG_AUTH LOG_ALERT Trong đó, host ip cổng syslog máy ghi, LOG_AUTH LOG_ALERT l oại log ghi lại Để Snort kết xuất thông tin sở liệu, cấu sau : database: , , Trong : • log | alert : ghi lại thông tin gì? Log hay alert ? • database type : Loại sở liệu Snort hỗ trợ mysql, postgre sql ms sql server • Parameter list : danh sách tham số phục vụ cho việc kết nối với sở liệu Cụ thể tùy thuộc vào loại sở liệu cụ thể Ví dụ, parameter list mysql sau : dbname=snort user=snort host=localhost password=xyz Cấu hình luật Phần file luật dùng Cú pháp sau : include RULE_PATH/RULE_FILE Ví dụ : yêu cầu Snort sử dụng luật phát ddos dòng lệnh sau : include $RULE_PATH/ddos.rules Trong đó, $RULE_PATH biến đến thư mục chứa file luật định nghĩa phần định nghĩa biến ddos.rules file luật THỬ NGHIỆM KHẢ NĂNG PHẢN ỨNG CỦA SNORT IDS/IPS truy cập vào base http://127.0.0.1/base Hình 29 : hình base lúc chưa có cảnh báo ta chưa khởi chạy snort giả sử ta tạo rules với dấu hiệu sau: Hình 30 : thêm rules cho snort sau include vào file /etc/snort_inline/snort_inline.conf khởi chạy snort: # snort_inline -c /etc/snort_inline/snort_inline.conf -Q từ máy khác ping đến với địa máy ping 192.168.1.211 địa máy IDS 192.168.1.105 ta có kết sau Hình 30 : Màn hình kết snort - Tiếp theo thử tính DROP ICMP chương trình: o Sử dụng Rules sau: Hình 31 : thêm rules cho snort o Kết cho thấy gói ICMP bị Drop thơng báo lại BASE : Hình 32 : thơng báo snort snort IDS hoạt động tốt, ta thử rules sau cho trường hợp phát nmap scan cổng Hình 33 : Phát Nmap sau include scan.rules vào file /etc/snort_inline/snort_inline.conf khởi động lại snort_inline từ máy công bật nmap scan cổng ta nhận kết snort thể hiên IPS Hình 33 : Thực thi Nmap vào máy snort xem kết Hình 34 : hiển thị kết Nhận xét - Ưu Điểm - • Quản lý network segment (gồm nhiều host) • "Trong suốt" với người sử dụng lẫn kẻ cơng • Chi phí thấp, cài đặt bảo trì đơn giản, khơng ảnh hưởng tới mạng • Tránh DOS ảnh hưởng tới host • Có khả xác định lỗi tầng Network (trong mơ hình OSI) • Độc lập với OS Nhược điểm • • • • Có thể xảy trường hợp báo động giả Khơng thể phân tích gói tin mã hóa (vd: SSL, SSH, IPSec…) cập nhật rules để thực an tồn Có độ trễ thời điểm bị công với thời điểm phát báo động.Khi báo động phát ra, hệ thống bị tổn hại • Khơng cho biết việc cơng có thành cơng hay khơng • Giới hạn băng thơng Những dò mạng phải nhận tất lưu lượng mạng, xếp lưu lượng phân tích chúng Khi tốc độ mạng tăng khả dò Tài liệu tham khảo GSTS Nguyễn Thúc Hải, 1999, Mạng máy tính hệ thống mở, NXB Giáo dục Nguyễn Phương Lan, Hoàng Đức Hải, 2001, Lập trình LINUX –tập 1, NXB Giáo dục Rafeeq Rehman, 2003, Intrusion Detection with Snort, Prentice Hall Martin Roesch, Chris Green, 2003, Snort User Manual, The Snort Project http://www.snort.org http://netfilter.org http://snortinline.sourceforge.net http://hoclinux.net ... loại hệ thống IDS (cũng IPS) dựa vào đặc điểm nguồn liệu thu thập Trong trường hợp này, hệ thống IDS chia thành loại sau: Network-based IDS (NIDS) 1.1.2.1 Hệ thống IDS để bảo vệ hệ thống mạng. ..Contents Lý thuyết 1.1 Tổng Quan IDS 1.1.1 Khái Niệm IDS- Intrusion Detection System/ Hệ thống phát xâm phạm IDS hệ thống phòng chống, nhằm phát hành động công vào mạng Mục đích phát ngăn ngừa... Netcat…) - HIDS cần tài nguyên host để hoạt động - HIDS khơng hiệu bị DOS - Đa số chạy hệ điều hành Window Tuy nhiên có số chạy UNIX hệ điều hành khác Host IDS – HIDS Network - NIDS HIDS quan sát

Ngày đăng: 08/04/2015, 08:23

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan