Xây dựng và giám sát hệ thống mạng sử dụng phần mềm Cacti Hệ thống giám sát mạng là một phần của hệ thống mạng thông qua nó cho phép giám sát, thu thập thông tin trên các thành phần của hệ thống, phân tích các thông tin, dấu hiệu nhằm đánh giá và đưa ra các cảnh báo cho người quản trị hệ thống. Đối tượng của hệ thống giám sát gồm: các máy trạm; cơ sở dữ liệu, các ứng dụng, các server, các thiết bị mạng,... Giám sát mạng có thể đạt được bằng cách sử dụng phần mềm khác nhau hoặc kết hợp giữa các plug và play, thiết bị phần cứng và giải pháp phần mềm. Hầu hết bất kì loại mạng nào cũng có thể giám sát. Nó không quan trọng là có dây hay không có dây, một mạng LAN công ty, VNPT hay dịch vụ cung cấp WAN. Chúng ta có thể giám sát thiết bị trên các hệ điều hành khác nhau với vô số chức năng: từ BlackBerrys và điện thoại di động tới servers, routers và switches. Những hệ thống này có thể giúp bạn xác định các hoạt động cụ thể và số liệu hiệu suất, đưa ra kết quả cho phép chúng ta giải quyết các yêu cầu khác nhau, đưa ra các mối đe dọa an ninh nội bộ và cung cấp nhiều hiển thị hoạt động hơn. Các bước thực hiện của một hệ thống giám sát mạng bao gồm:. Thu thập dữ liệu: + Việc thu thập dữ liệu là việc lấy các thông tin liên quan đến tình trạng hoạt động của các thiết bị trong hệ thống mạng. Tuy nhiên, trong những hệ thống mạng lớn thì các dịch vụ hay thiết bị không đặt tại trên máy, một địa điểm mà nằm trên các máy tính, các hệ thống con riêng biệt nhau. Với mỗi thiết bị có những đặc điểm riêng và có các loại log khác nhau. Log là một thành phần quan trọng của hệ thống mạng nó lưu lại một cách chính xác mọi hoạt động của hệ thống, tình trạng hoạt động của các ứng dụng, các thiết bị đã và đang hoạt động trong hệ thống. + Để có thể thu thập được dữ liệu trong hệ thống, ta có thể sử dụng 2 phương pháp sau: • The Push Method (Phương pháp đẩy): Các sự kiện từ các thiết bị, các máy trạm, server sẽ được tự động chuyển về các collector theo thời gian thực hoặc sau mỗi khoảng thời gian phụ thuộc vào việc cấu hình trên các thiết bị tương ứng. Các Collector của Log Server sẽ thực hiện việc nghe và nhận các sự kiện khi chúng xảy ra. Ví dụ như: Netflow, Syslogng Message (Syslogng gồm 2 thành phần là SyslogAgent và SyslogServer), Accesslist (ACL),… • The Pull Method (Phương pháp kéo): Các collector thu thập từ các sự kiện được phát sinh và lưu trữ trên chính các thiết bị và sẽ được lấy về bởi các bộ collector. Hai giao thức phổ biến để thu thập được các sự kiện là Security Device Event Exchange (SDEE – Gồm các thiết bị nằm trong hệ thống các thiết bị phát hiện xâm nhập được phát triển bởi ICSA) và SNMP (Simple Network Management Protocol – Giao thức hỗ trợ quản lý các thiết bị từ xa). Phân tích dữ liệu khi đã thu thập được những thông tin về hệ thống thì công việc tiếp theo là phân tích thông tin, cụ thể là việc thực hiện chỉ mục hóa dữ liệu và phát hiện những điều bất thường, những mối đe dọa của hệ thống. Dựa trên những thông tin về lưu lượng truy cập, trạng thái truy cập, định dạng request. Cảnh báo sau khi đã thực hiện việc phân tích dữ liệu từ các thông tin thu thập được việc tiếp theo là thực hiện việc đánh giá, dựa vào thông tin cảnh báo tới người quản trị và thực hiện những công tác nhằm chống lại những mối đe dọa, khắc phục các sự cố có thể xảy ra. Cảnh báo có thể thông qua email, SMS hoặc thực thi các mã script nhằm hạn chế hậu quả của sự cố. Khi xảy ra sự cố, hệ thống sẽ tự động gửi email, sms cho người quản trị và cũng có thể chạy script để thêm một địa chỉ IP có biểu hiện tấn công và danh sách đen của Firewall.
Trang 1BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA: AN TOÀN THÔNG TIN
BÀI TẬP LỚN MÔN HỌC
GIÁM SÁT MẠNG MÁY TÍNH XÂY DỰNG VÀ GIÁM SÁT HỆ THỐNG MẠNG
SỬ DỤNG PHẦN MỀM CACTI
Giảng viên hướng dẫn: ThS.Nguyễn Quốc Sử
Sinh viên thực hiện: Nguyễn Văn Minh Hoàng
Phạm Thị Thương Mến Thiều Thùy Trang Nữ Nguyễn An Trường Thịnh Trần Võ Anh Thư
Lớp: AT12L
Khóa: 12
TP.Hồ Chí Minh, tháng 12 năm 2018
Trang 2BAN CƠ YẾU CHÍNH PHỦ
Giảng viên hướng dẫn: ThS.Nguyễn Quốc Sử
Sinh viên thực hiện: Nguyễn Văn Minh Hoàng
Phạm Thị Thương Mến Thiều Thùy Trang Nữ Nguyễn An Trường Thịnh Trần Võ Anh Thư
Lớp: AT12L
Khóa: 12
TP.Hồ Chí Minh, tháng 12 năm 2018
Trang 3Cùng với sự phát triển của hạ tầng mạng và các dịch vụ mạng ngày càng pháttriển Việc theo dõi ,quản lí và giám sát chúng là một vấn đề chung để đảm bảo cácnguyên tắc an toàn cho hệ thống mạng Do đó, hệ thống giám sát mạng đóng vai tròquan trọng, không thể thiếu trong hạ tầng công nghệ hệ thống thông tin (CNTT) củacác công ty, cơ quan, đơn vị và các tổ chức doanh nghiệp Hệ thống nhằm cho phépthu thập dữ liệu và phân tích các vấn đề của hệ thống có thể phát sinh trong quá trìnhvận hành và sử dụng mạng của tổ chức Ngoài ra, hệ thống giám sát còn phát hiện kịpthời các tấn công, các điểm yếu, lỗ hổng bảo mật của các thiết bị, ứng dụng và dịch vụtrong hệ thống Phát hiện kịp thời các tấn công của các hacker trong hệ thống mạng,các máy tính bị nhiễm mã độc,…Cùng với đó là sự an toàn thông tin đang ở mức báođộng và tội phạm mạng ngày càng tăng cao mang đến thách thức cho nhà quản trịmạng, buộc phải có các biện pháp phòng ngừa và ngăn chặn từ xa Những nguy cơ tấncông mạng từ phía bên trong và bên ngoài rất khó kiểm soát và luôn là những vấn đềnhức nhối của người quản trị mạng Chính vì lẽ đó, với mong muốn đảm bảo được tìnhtrạng mạng luôn được ổn định và nhu cầu thực tế mà nhà tuyển dụng mạng cần: cácquản trị viên hệ thống am hiểu vận hành tốt hệ thống giám sát mạng Hiện nay, trên thịtrường có các sản phẩm quản trị mạng thương mại (mã nguồn đóng) nhưng giá thànhthường khá cao Bên cạnh đó các phần mềm nguồn mở cho phép triển khai giám sátmạng rất hiệu quả như Cacti Chính vì vậy, nhóm chúng em đã lựa chọn thực hiện đềtài “Xây dựng và giám sát hệ thống mạng sử dụng phần mềm Cacti ” Hệ thống giámsát được xây dựng trên mã nguồn mở Cacti tích hợp vào hệ điều hành Ubuntu 16.04
sẽ thực hiện giám sát các thiết bị trong hệ thống,… Để từ đó người quản trị có thể xemxét đưa ra các biện pháp phòng chống và bảo vệ hệ thống phù hợp
Trang 4Chúng em xin chân thành cảm ơn Th.S Nguyễn Quốc Sử đã chỉ bảo tận tình và
giúp đỡ chúng em trong suốt quá trình làm đồ án môn học Với sự hướng dẫn củathầy , nhóm chúng em đã có những định hướng tốt trong việc triển khai và thực hiệncác yêu cầu làm bài tập lớn trong môn học
Nhóm Sinh viên thực hiện
1 Nguyễn Văn Minh Hoàng
2 Phạm Thị Thương Mến
3 Thiều Thùy Trang Nữ
4 Trần Võ Anh Thư
5 Nguyễn An Trường Thịnh
Trang 5DANH MỤC VIẾT TẮT 3
DANH MỤC CÁC HÌNH VẼ 4
DANH MỤC CÁC BẢNG 8
CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG GIÁM SÁT MẠNG 1
1.1 Khái niệm hệ thống giám sát mạng 1
1.2 Vai trò của hệ thống giám sát mạng 2
1.3 Giao thức được sử dụng trong hệ thống giám sát mạng 3
1.3.1 Giao thức SNMP (Simple Network Management Protocol) 3
1.3.1.1 Giới thiệu về giao thức SNMP (Simple Network Management Protocol) 3
1.3.1.2 Ưu điểm của giao thức SNMP 3
1.3.1.3 Nhược điểm của giao thức SNMP 3
1.3.1.4 Các phiên bản của giao thức SNMP 4
1.3.2 Cơ chế bảo mật trong SNMP 11
1.3.3 Quản lý truyền thông trong SNMP 11
1.3.3.1 Cơ sở thông tin quản lý – cây MIB 12
1.4 Triển khai một số phần mềm giám sát mạng 12
1.4.1 Phần mềm Nagios 12
1.4.2 Multi Router Traffic Grapher (MRTG) 14
1.4.3 Cacti 15
Chương 2 : NGHIÊN CỨU CHỨC NĂNG GIÁM SÁT HỆ THỐNG MẠNG SỬ DỤNG CACTI 17
2.1 Tổng quan về Cacti 17
2.1.1 Giới thiệu Cacti 17
2.1.2 Chức năng của Cacti 17
2.1.2.1 Quản lý thiết bị 17
2.1.2.2 Giám sát lưu lượng mạng 18
2.1.2.3 Cảnh báo âm thanh 18
2.1.2.4 Cảnh báo qua email Thold plugin 19
2.1.2.5 Một số plugin hỗ trợ cho Cacti 19
2.1.2.6 Template hỗ trợ cho Cacti 20
2.1.3 Hoạt động của Cacti 20
2.1.4 Cài đặt Cacti trên Ubuntu 16.04 22
Chương 3 TRIỂN KHAI MÔ HÌNH THỬ NGHIỆM VỚI BỘ CÔNG CỤ CACTI 28
3.1 Mô hình thử nghiệm và yêu cầu giám sát 28
3.1.1 Mô hình thử nghiệm 28
Trang 63.1.2 Yêu cầu giám sát 28
3.1.3 Triển khai Inter VLAN 29
3.1.3.4 Trên các PC 31
3.2 Cài đặt các plugin và template cho Cacti 33
3.2.1 Cài đặt các plugin 33
3.2.1.1 Flowview Plugin 33
3.2.1.2 Mactrack Plugin 34
3.2.1.3 Thold Plugin 35
3.2.1.4 Monitor Plugin 36
3.2.2 Cài đặt và sử dụng template 37
3.2.2.1 Graph template: 37
3.2.2.2 Host Template: 42
3.3 Cài đặt thiết bị Client cần theo dõi: 44
3.3.1 Cấu hình dịch vụ SNMP trên Client 44
3.3.2 Thêm thiết bị để quản lý: 45
3.4 Hướng dẫn dùng đồ thị theo dõi mạng và thiết bị : 48
3.4.1 Tạo một đồ thị: 48
3.4.2 Tổ chức một đồ thị: 48
3.4.3 Bắt gói tin SNMP thông qua WireShark 51
3.4.4 Tiến hành cấu hình bảo mật cho SNMP 55
3.5 Thiết lập quản trị người dùng trong Cacti: 57
3.5.1 Giao diện quản trị người dùng: 57
3.5.2 Thêm người dùng: 58
3.5.3 Sửa người dùng: 58
3.6 Đánh giá về hệ thống giám sát sử dụng Cacti 60
KẾT LUẬN 61
TÀI LIỆU THAM KHẢO 62
DANH MỤC VIẾT TẮT
Trang 7ICMP Internet Control Message Protocol
TCP/IP
Transmission Control Protocol/ Internet Protocol
VNPT
Vietnam Posts and Telecommunications Group
DANH MỤC CÁC HÌNH VẼ
Hình 1 1 Các phương thức trong SNMPv1 5
Hình 1 2 Cấu trúc Get/GetNext/Set/Response PDU 6
Hình 1 3 Sử dung ̣Wireshark bắt gói tin 6
Hình 1 4 Cấu trúc của GetNextRequest 7
Trang 8Hình 1 5 Cấu trúc PDU SetRequest 7
Hình 1 6 Cấu trúc bản tin SNMPv2c 8
Hình 1 7 Bảng thông tin trong trường PDU 11
Hình 1 8 Sơ đồ tổ chức của Nagios 13
Hình 1 9 Đồ thị biểu hiện dữ liệu hàng ngày MRTG thu được 14
Hình 1 10 Sử dụng đồ thị biểu hiện dữ liệu hàng năm để lên kế hoạch dài hạn 14
Hình 1 11 Cacti sẽ giúp việc quản lý nhiều đồ thị dễ dàng hơn 1
Hình 2 1 Thông tin quản lý các thiết bị trong mạng 18
Hình 2 2 Giám sát lưu lượng mạng 18
Hình 2 3 Cảnh báo qua Audio sử dụng Monitor Plugin 19
Hình 2 4 Cảnh báo qua Email sử dụng Thold Plugin 19
Hình 2 5 Plugin trong Cacti 20
Hình 2 6 Graph Templates 20
Hình 2 7 Cơ chế hoạt động của cacti 20
Hình 2 8 Đồ thị khối lượng các giao dịch từ điện thoại VAS, MM4 21
Hình 2 9 Tạo password mới cho root 23
Hình 2 10 Cài đặt Cacti 1 24
Hình 2 11 Cài đặt Cacti 2 24
Hình 2 12 Cài đặt cacti 3 24
Hình 2 13 Kiểm tra MySQL và PHP 25
Hình 2 14 Kiểm tra tính tương thích module PHP 25
Hình 2 15 Cài đặt Cacti 4 25
Hình 2 16 Cài đặt Cacti 5 25
Hình 2 17 Cài đặt Cacti 6 26
Trang 9Hình 2 19 Đăng nhập Cacti 26
Hình 2 20 Đăng nhập Cacti thành công 27
Y Hình 3 1 Mô hình thử nghiệm 28
Hình 3 2 Kết quả cấp IP động cho WinXP 32
Hình 3 3 Kết quả cấp IP động cho Ubuntu 16.04 33
Hình 3 4 Tải Flowview plugin 33
Hình 3 5 Tải Mactrack plugin 34
Hình 3 6 Tải Thold plugin 35
Hình 3 7 Tải Monitor plugin 36
Hình 3 8 Danh sách các Plugin 37
Hình 3 9 Danh sách templates 38
Hình 3 10 Tạo mới templates 38
Hình 3 11 Thêm 1 item 40
Hình 3 12 Hoàn thành tạo item 41
Hình 3 13 Thêm 1 Item Input 41
Hình 3 14 Add Graph Item Inputs 41
Hình 3 15 Tạo Host Template 42
Hình 3 16 Chọn Host Template 43
Hình 3 17 Danh sách Host 43
Hình 3 18 Chọn và tạo host template 43
Hình 3 19 Thêm thiết bị giám sát 1 45
Hình 3 20 Thêm thiết bị giám sát 2 45
Hình 3 21 Thêm thiết bị giám sát 3 47
Hình 3 22 Thêm Graph Templates cho thiết bị 47
Trang 10Hình 3 23 Thêm thiết bị là Router 48
Hình 3 24 Tạo đồ thị cho thiết bị Win XP 48
Hình 3 25 Danh sách Graph Trees 49
Hình 3 26 Tạo đồ thị 1 49
Hình 3 27 Tạo đồ thị 2 49
Hình 3 28 Tạo đồ thị 3 49
Hình 3 29 Tạo đồ thị 4 50
Hình 3 30 Tạo đồ thị 5 50
Hình 3 31 Kết quả sau khi tạo Graph cho Router R5 51
Hình 3 32 Kết quả sau khi tạo Graph cho WinXP 51
Hình 3 33 Tạo thông tin Agent 52
Hình 3 34 Kết quả thông qua WireSark 52
Hình 3 35 Kết quả chi tiết của gói SNMP 53
Hình 3 36 Kết quả sau khi kiểm tra thông tin OID 53
Hình 3 37 Kiểm tra OID up/down của thiết bị 54
Hình 3 38 Kiểm tra OID Bandwith của thiết bị 54
Hình 3 39 Lấy thông tin description của 1 interface 55
Hình 3 40 Kiểm tra OID CPU của thiết bị 55
Hình 3 41 Cấu hình snmp v3 , tạo user group 56
Hình 3 42 Kết quả Cấu hình snmp v3 56
Hình 3 43 Xác thực thành công 57
Hình 3 44 Giao diện người dùng 57
Hình 3 45 Thêm người dùng 58
Hình 3 46 Xét quyền người dùng 58
Trang 12DANH MỤC CÁC BẢNG
Bảng 2 1 So sánh Cacti và các công cụ khác 22
Bảng 3 1 Danh sách ý nghĩa các mục trong Template 40
Bảng 3 2 Danh sách ý nghĩa các mục trong Graph Item Inputs 42
Bảng 3 3 Danh sách ý nghĩa các mục trong Management 46
Bảng 3 4 Danh sách ý nghĩa các mục trong sửa người dùng 60
Trang 13CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG GIÁM SÁT MẠNG
1.1 Khái niệm hệ thống giám sát mạng
Hệ thống giám sát mạng là một phần của hệ thống mạng thông qua nó chophép giám sát, thu thập thông tin trên các thành phần của hệ thống, phân tích cácthông tin, dấu hiệu nhằm đánh giá và đưa ra các cảnh báo cho người quản trị hệthống Đối tượng của hệ thống giám sát gồm: các máy trạm; cơ sở dữ liệu, các ứngdụng, các server, các thiết bị mạng, Giám sát mạng có thể đạt được bằng cách sửdụng phần mềm khác nhau hoặc kết hợp giữa các plug và play, thiết bị phần cứng
và giải pháp phần mềm Hầu hết bất kì loại mạng nào cũng có thể giám sát Nókhông quan trọng là có dây hay không có dây, một mạng LAN công ty, VNPT haydịch vụ cung cấp WAN Chúng ta có thể giám sát thiết bị trên các hệ điều hànhkhác nhau với vô số chức năng: từ BlackBerrys và điện thoại di động tới servers,routers và switches Những hệ thống này có thể giúp bạn xác định các hoạt động cụthể và số liệu hiệu suất, đưa ra kết quả cho phép chúng ta giải quyết các yêu cầukhác nhau, đưa ra các mối đe dọa an ninh nội bộ và cung cấp nhiều hiển thị hoạtđộng hơn Các bước thực hiện của một hệ thống giám sát mạng bao gồm:
- Thu thập dữ liệu:
+ Việc thu thập dữ liệu là việc lấy các thông tin liên quan đến tình trạng hoạtđộng của các thiết bị trong hệ thống mạng Tuy nhiên, trong những hệ thốngmạng lớn thì các dịch vụ hay thiết bị không đặt tại trên máy, một địa điểm mànằm trên các máy tính, các hệ thống con riêng biệt nhau Với mỗi thiết bị cónhững đặc điểm riêng và có các loại log khác nhau Log là một thành phần quantrọng của hệ thống mạng nó lưu lại một cách chính xác mọi hoạt động của hệthống, tình trạng hoạt động của các ứng dụng, các thiết bị đã và đang hoạt độngtrong hệ thống
+ Để có thể thu thập được dữ liệu trong hệ thống, ta có thể sử dụng 2 phươngpháp sau:
• The Push Method (Phương pháp đẩy): Các sự kiện từ các thiết bị, các máytrạm, server sẽ được tự động chuyển về các collector theo thời gian thực hoặcsau mỗi khoảng thời gian phụ thuộc vào việc cấu hình trên các thiết bị tươngứng Các Collector của Log Server sẽ thực hiện việc nghe và nhận các sự kiệnkhi chúng xảy ra Ví dụ như: Netflow, Syslog-ng Message (Syslog-ng gồm 2thành phần là Syslog-Agent và Syslog-Server), Access-list (ACL),…
• The Pull Method (Phương pháp kéo): Các collector thu thập từ các sự kiệnđược phát sinh và lưu trữ trên chính các thiết bị và sẽ được lấy về bởi các bộcollector Hai giao thức phổ biến để thu thập được các sự kiện là Security
Trang 14bị phát hiện xâm nhập được phát triển bởi ICSA) và SNMP (Simple NetworkManagement Protocol – Giao thức hỗ trợ quản lý các thiết bị từ xa).
- Phân tích dữ liệu khi đã thu thập được những thông tin về hệ thống thì côngviệc tiếp theo là phân tích thông tin, cụ thể là việc thực hiện chỉ mục hóa dữliệu và phát hiện những điều bất thường, những mối đe dọa của hệ thống.Dựa trên những thông tin về lưu lượng truy cập, trạng thái truy cập, địnhdạng request
- Cảnh báo sau khi đã thực hiện việc phân tích dữ liệu từ các thông tin thu thậpđược việc tiếp theo là thực hiện việc đánh giá, dựa vào thông tin cảnh báo tớingười quản trị và thực hiện những công tác nhằm chống lại những mối đedọa, khắc phục các sự cố có thể xảy ra Cảnh báo có thể thông qua email,SMS hoặc thực thi các mã script nhằm hạn chế hậu quả của sự cố Khi xảy ra
sự cố, hệ thống sẽ tự động gửi email, sms cho người quản trị và cũng có thểchạy script để thêm một địa chỉ IP có biểu hiện tấn công và danh sách đen củaFirewall
1.2 Vai trò của hệ thống giám sát mạng
Hệ thống giám sát mạng đóng vai trò quan trọng, không thể thiếu trong hạtầng công nghệ thông tin (CNTT) của các cơ quan, đơn vị, tổ chức Hệ thống nàycho phép thu thập, chuẩn hóa, lưu trữ và phân tích tương quan toàn bộ các sự kiện
an toàn mạng được sinh ra trong hệ thống CNTT của tổ chức Ngoài ra, hệ thốnggiám sát an toàn mạng phát hiện kịp thời các tấn công mạng, các điểm yếu, lỗ hổngbảo mật của các thiết bị, ứng dụng và dịch vụ trong hệ thống, phát hiện kịp thời sựbùng nổ virus trong hệ thống mạng, các máy tính bị nhiễm mã độc, các máy tính bịnghi ngờ là thành viên của mạng máy tính ma (botnet) Hệ thống giám sát mạng sẽgiúp định hướng trong môi trường mạng phức tạp, đưa ra các báo cáo và các nhậnđịnh để đảm bảo công tác giám sát mạng an toàn hiệu quả Thông qua hệ thốnggiám sát mạng giúp cho người quản trị hệ thống:
Tiết kiệm chi phí tiềm lực bằng cách tìm nguồn dữ liệu dư thừa
Giải quyết hiểu quả việc bị lấy cắp thông tin
Trợ giúp xác định năng xuất của nhân viên
Các điểm quá tải thiết bị trước khi nó có thể mang xuống một mạnglưới
Xác định liên kết mạng diện rộng yếu và thắt cổ chai ("bottleneck" : làtình trạng tại 1 điểm dòng chảy của dữ liệu bị suy yếu, tắc nghẽn hoặcngưng hoàn toàn Gây chậm hiệu suất hoạt động của hệ thống)
Tìm bất thường trong mạng nội bộ có thể cho biết mối đe dọa an ninh
Trang 151.3 Giao thức được sử dụng trong hệ thống giám sát mạng
Để có những thông tin cho việc giám sát trạng thái hoạt động của các thiết bị
và dịch vụ mạng Trong hệ thống giám sát sử dụng giao thức SNMP (SimpleNetwork Management Protocol) và giao thức ICMP (Internet Control MessageProtocol)
1.3.1 Giao thức SNMP (Simple Network Management Protocol).
1.3.1.1 Giới thiệu về giao thức SNMP (Simple Network Management Protocol)
Vào đầu năm 1988, Tổ chức kiến trúc Internet IAB (Internet ArchitectureBoard) nhận thấy sự cần thiết có bộ công cụ quản lí cho TCP/IP nên đã cho ra đờiRFC 1052.RFC 1052 là các yêu cầu tiêu chuẩn hóa quản lí mạng và tập trung vàocác vấn đề quản lí mạng phải thực hiện:
+ Đảm bảo tính mở rộng
+ Đảm bảo tính đa dạng để phát triển
+ Đảm bảo tính đa dạng trong quản lí
+ Bao trùm nhiều lớp giao thức
- SNMP là một giao thức chính sử dụng cho mục đích theo dõi trạng thái hoạtđộng của các thiết bị giúp nhà quản trị mạng có thể quản lý , thay đổi trạng thái củamạng SNMP làm nhiệm vụ thu thập thông tin từ các thiết bị mạng (Router, Switch,Server,…) cần giám sát và gửi về cho chương trình giám sát để phân tích và sửdụng để hiển thị ra giao diện quản trị các thông tin cần thiết theo mục đích củachương trình giám sát
1.3.1.2 Ưu điểm của giao thức SNMP
- SNMP được thiết kế để đơn giản nên dễ dàng quản lý các thành phần trongmạng Nhờ đó các phần mềm SNMP có thể được phát triển nhanh và tốn ít chi phí,tiết kiệm thời gian
- SNMP được thiết kế để có thể mở rộng các chức năng quản lý, giám sát Khi
có một thiết bị mới với các thuộc tính, tính năng mới có thể thiết kế tùy chọnSNMP để phục vụ cho riêng mình Dễ dàng quản lý lỗi
- SNMP được thiết kế có thể hoạt động độc lập với các kiến trúc và cơ chế củacác thiết bị hỗ trợ SNMP Các thiết bị khác nhau có hoạt động khác nhau nhưnghoạt động dựa trên giao thức SNMP là giống nhau
- Được sử dụng rộng rãi ngày nay, nên hầu hết các nhà cung cấp của phầncứng Internetwork như Switch, Router đều thiết kế sản phẩm hỗ trợ SNMP
- Giám sát MIB được hỗ trợ trong hầu hết các thiết bị
1.3.1.3 Nhược điểm của giao thức SNMP
- Lỗ hổng bảo mật làm cho kẻ tấn công có thể tắt hoặc truy cập một số thiết bịđầu cuối (SNMPv2, SNMPv1)
Trang 16- Việc triển khai cây MIB phức tạp hơn so với sử dụng các lệnh CLI
- SNMP cung cấp chế độ xem toàn bộ dữ liệu vì vậy gây khó khăn cho ngườiquản trị muốn thay đổi chế độ xem
- MIB thiếu mô tả chính xác
1.3.1.4 Các phiên bản của giao thức SNMP
Hiện tại SNMP có 4 phiên bản: SNMPv1, SNMPv2c, SNMPv2u vàSNMPv3 Các phiên bản này khác nhau một chút ở định dạng bản tin và phươngthức hoạt động Hiện nay SNMPv1 là phổ biến nhất do có nhiều thiết bị tương thíchnhất và có nhiều phần mềm hỗ trợ nhất Trong khi đó chỉ có một số thiết bị và phầnmềm hỗ trợ SNMPv3
- Phiên bản SNMPv1: phiên bản đầu tiên của SNMP, có 5 phương thức Get,
GetNext, Set, Response, Trap
• GetRequest : Bản tin GetRequest được manager gửi đến agent để lấy mộtthông tin nào đó Trong GetRequest có chứa ID của object muốn lấy
Ví dụ: Muốn lấy thông tin tên của Device1 thì Manager gửi bản tinGetRequest ID=1.3.6.1.2.1.1.5 đến Device1, tiến trình SNMP Agent trên Device1
sẽ nhận được bản tin và tạo bản tin trả lời Trong một bản tin GetRequest có thểchứa nhiều OID, nghĩa là dùng một GetRequest có thể lấy về cùng lúc nhiều thôngtin
•GetNextRequest: Bản tin GetNextRequest cũng dùng để lấy thông tin vàcũng có chứa OID, tuy nhiên nó dùng để lấy thông tin của Object nằm kế tiếpObject được chỉ ra trong bản tin Chúng ta đã biết khi đọc qua những phần trên:một MIB bao gồm nhiều OID được sắp xếp thứ tự nhưng không liên tục, nếu biếtmột OID thì không xác định được OID kế tiếp Do đó ta cần GetNextRequest để lấy
về giá trị của OID kế tiếp
•Nếu thực hiện GetNextRequest liên tục thì ta sẽ lấy đựợc toàn bộ thông tincủa agent
•SetRequest: Bản tin SetRequest được manager gửi cho agent để thiết lập giátrị cho một object nào đó
Ví dụ: Có thể đặt lại tên của một máy tính hay Router bằng phần mềmSNMP Manager, bằng cách gửi bản tin SetRequest có OID là 1.3.6.1.2.1.1.5.0(sysName.0) và có giá trị là tên mới cần đặt
•GetResponse: Mỗi khi SNMP Agent nhận được các bản tin GetRequest,GetNextRequest hay SetRequest thì nó sẽ gửi lại bản tin GetResponse để trả lời.Trong bản tin GetResponse có chứa OID của object được Request và giá trị củaObject đó
Trang 17kiện xảy ra bên trong agent, các sự kiện này không phải là các hoạt động thườngxuyên của agent mà là các sự kiện mang tính biến cố Ví dụ: Khi có một port down,khi có một người dùng login không thành công, hoặc khi thiết bị khởi động lại,agent sẽ gửi trap cho manager
Tuy nhiên không phải mọi biến cố đều được agent gửi trap, cũng không phảimọi agent đều gửi trap khi xảy ra cùng một biến cố Việc agent gửi hay không gửitrap cho biến cố nào là do hãng sản xuất device/agent quy định
Hình 1 1 Các phương thức trong SNMPv1
Cấu trúc của PDU GetRequest:
+ Request-id : mã số của request ID này là số ngẫu nhiên do manager tạo ra,agent khi gửi bản tin GetResponse cho request nào thì nó phải gửi requestID giốngnhư lúc nhận Giữa manager và agent có thể có nhiều request & reponse, mộtrequest và một response là cùng một phiên trao đổi khi chúng có requestID giốngnhau
+ Error-status : nếu = 0 là thực hiện thành công không có lỗi, nếu <> 0 là cólỗi xảy ra và giá trị của nó mô tả mã lỗi Trong bản tin GetRequest,GetNextRequest, SetRequest thì error-status luôn = 0
+ Error-index : số thứ tự của objectid liên quan đến lỗi nếu có Trongvariablebindings có nhiều objectid, được đánh số từ 1 đến n, một bản tinGetRequest có thể lấy cùng lúc nhiều object
+ Variable-bindings : danh sách các cặp [ObjectID – Value] cần lấy thông tin,trong đó objectId là định danh của object cần lấy, còn value không mang giá trị.Khi agent gửi bản tin trả lời thì nó sẽ copy lại bản tin này và điền vào value bằnggiá trị của object
Trang 18Hình 1 2 Cấu trúc Get/GetNext/Set/Response PDU
Hình 1 3 Sử dung ̣Wireshark bắt gói tin
Trong hình trên là cấu trúc một bản tin SNMP với PDU là GetRequest Bao
gồm các thông tin :
+ Version là version-1 (số 0 trong ngoặc là giá trị của trường version, nếu
giá trị này là 0 nghĩa là version-1)
+ Community là “public” ( mặc định chuỗi public có quyền read-only)
+ Request-id = 2142061952 ( Mã số request ID là số ngấu nhiên do
Manager tạo ra, Agent khi gửi bản tin GetResponse cho request nào thì sẽ gửi lạirequestID giống như lúc nhận.)
Trang 19+ Error-status = 0 (nghĩa là không có lỗi Trong bản tin GetResponse thì
errorstatus mới được dùng)
+ Error-index = 0 (số thứ tự của ObjectID liên quan đến lỗi, ở đây là 0)
+ Phần variable-bindings : 1 item (mỗi item là 1 cặp objectid-value)
+ Objectid là 1.3.6.1.2.1.1.3.0 (theo mib-2 thì đó là sysUpTime.0 )
+ Scalar instance index = 0 (đây là chỉ số vô hướng của sysUptime Do một
thiết bị chỉ có một khái niệm sysUptime nên chỉ số (index) là 0 (sysUptime.0) Nếubạn request ifDescr chẳng hạn thì mỗi interface sẽ có một description khác nhau và
sẽ có chỉ số (index) khác nhau.)
+ value = unSpecified ( do bản tin là GetRequest nên value sẽ không mang
giá trị, giá trị sẽ được ghi vào và trả về trong bản tin GetResponse)
Cấu trúc của PDU GetResponse:
+ Request-id : mã số của request ID này phải giống với request-id của bản tinGetRequest trước đó
+ Error-status: mang một trong các giá trị noError(0), tooBig(1),noSuchName(2), badValue(3), readOnly(4), genErr(5) Nếu agent lấy thông tin để trảlời request thành công thì error-status là noError(0)
+ Objectid : định danh của object được trả về Nếu trước đó là GetRequest thìObjectid sẽ giống với objectid trong bản tin request, nếu trước đó là GetNextRequestthì objectid sẽ là định danh của object nằm sau (nằm sau trong mib) objectid củarequest
Cấu trúc của PDU GetNextRequest: Cấu trúc GetNextRequest giống với
GetRequest, chỉ khác ở byte chỉ ra bản tin là GetNextRequest PDU Hình sau là bảntin GetNextRequest với objectid là sysContact, sau đó agent sẽ gửi bản tinGetReponse trả lời với Objectid là sysName, vì sysName nằm sau sysContact trongMIB Chú ý request-id là giống nhau
Trang 20Hình 1 4 Cấu trúc của GetNextRequest
Cấu trúc của PDU SetRequest: Cấu trúc SetRequest cũng giống với
GetRequest, objectid-value chỉ ra đối tượng và giá trị cần set
Hình 1 5 Cấu trúc PDU SetRequest
Bản tin SetRequest đặt lại tên của thiết bị là “Cisco2950”, tiếp theo agent sẽ gửi bản tin GetResponse thông báo gái trị của sysName sau khi set
Cấu trúc của PDU Trap : Cấu trúc của bản tin trap của SNMPv1 như sau :
+ Enterprise : kiểu của object gửi trap Đây là một OID giúp nhận dạng thiết
bị gửi trap là thiết bị gì; nhận dạng chi tiết đến hãng sản xuất, chủng loại, model.OID này bao gồm một chỉ số doanh nghiệp (enterprise number) và chỉ số id củathiết bị của hãng do hãng tự định nghĩa
+ Agent address : địa chỉ IP của nguồn sinh ra trap Có thể bạn sẽ thắc mắc tạisao lại có IP của nguồn sinh ra trap trong khi bản tin IP chứa gói SNMP đã có địachỉ nguồn Giả sử mô hình giám sát của bạn như sau : tất cả trap sender được cấuhình để gửi trap đến một trap receiver trung gian, gọi là trap relay, sau đó trap relaymới gửi đến nhiều trap receiver cùng lúc thì lúc này bản tin trap nhận được tại trapreceiver sẽ có IP source là của trap relay, trong khi IP của nguồn phát sinh trap thực
sự nằm trong agent address
+ Generic-trap: kiểu của các loại trap generic
Trang 21+ Specific-trap: kiểu của các loại trap do người dùng tự định nghĩa
+ Time-stamp: thời gian tính từ lúc thiết bị được khởi động đến lúc gửi bảntin trap, tính bằng centi giây
+ Variable-bindings: các cặp objectID – values mô tả các object có liên quanđến trap
- Phiên bản SNMPv2c:
Cấu trúc bản tin SNMPv2c như sau:
Hình 1 6 Cấu trúc bản tin SNMPv2c
+ Version : phiên bản SNMP (v1 = 0, v2c = 1, v2u = 2, v3 = 3)
+ Community string : chuỗi community
+ Data : phần data là các bản tin ứng với các phương thức của SNMP
Trong SNMPv2c, bản tin PDU có 2 loại cấu trúc là PDU và BulkPDU Cácbản tin GetRequest, GetNextRequest, SetRequest, Response, Trap, InformRequest
và Report có cùng cấu trúc là PDU; còn GetBulkRequest có cấu trúc là BulkPDU
Trường phiên bản (Version) thể hiện phiên bản của giao thức SNMPv2.Trường Community là một chuỗi password xác nhận cho cả tiến trình lấy và thayđổi dữ liệu SNMP PDU chứa kiểu điều hành (get, set), yêu cầu đáp ứng (cùng sốthứ tự với bản tin gửi đi) - cho phép người điều hành gửi đồng thời nhiều bản tin.Biến ghép gồm các thiết bị được đặc tả trong RFC 2358 và chứa cả giá trị đặt tớiđối tượng Trường đơn vị dữ liệu giao thức (PDU) gồm có các trường con: Kiểuđơn vị dữ liệu giao thức, nhận dạng các yêu cầu (Request ID), trạng thái lỗi, chỉ sốlỗi, các giá trị và đối tượng Các kiểu đơn vị dữ liệu giao thức PDU thể hiện cácbản tin sử dụng trong SNMPv2c gồm có 8 phương thức gồm:
•GetRequest: Câu lệnh GetRequest được sử dụng giữa Manager tới Agent.Câu lệnh này được sử dụng để đọc biến MIB đơn hoặc danh sách các biến MIB từcác Agent đích
•GetNextRequest: Câu lệnh GetNextRequest tương tự như câu lệnhGetRequest, tuy nhiên tuỳ thuộc vào agent trong khoản mục kế tiếp của MIB Các
Trang 22biến được lưu trong thiết bị và được coi như đối tượng bị quản lí Vì vậy,câu lệnhGetNextRequest mở rộng các biến và được đọc theo tuần tự
•SetRequest: Câu lệnh SetRequest là câu lệnh được gửi đi từ Manager tớiAgent như hai câu lệnh trên để thiết lập giá trị cho một object nào đó
•GetResponse: câu lệnh gửi từ Agent tới Manager Câu lệnh này cung cấp cơchế đáp ứng cho các câu lệnh GetRequest, GetNextRequest và SetRequest
•Trap: Trap là câu lệnh độc lập, không phụ thuộc vào đáp ứng hoặc yêu cầu
từ các Manager hoặc các Agent Trap đưa ra các thông tin liên quan tới các điềukiện được định nghĩa trước và được gửi từ các Agent tới Manager
•GetBulkRequest: Chức năng của câu lệnh GetBulkRequest tương tự nhưcâu lệnh GetNextRequest ngoại trừ vấn đề liên quan tới số lượng dữ liệu được lấy
ra Phương thức này dùng để lấy một loạt nhiều object chỉ trong 1 bản tin GetBulk.Các bản tin Get/GetNext vẫn có thể lấy cùng lúc nhiều object bằng cách đưa tất cảchúng vào danh sách variable-bindings trong bản tin request, nhưng GetBulk có thểlấy nhiều object mà chỉ cần chỉ ra 1 object trong variable-bindings Cho phép Agentgửi lại Manager dữ liệu liên quan tới nhiều đối tượng thay vì từng đối tượng bịquản lý Như vậy, GetBulkRequest có thể giảm bớt lưu lượng truyền dẫn và các bảntin đáp ứng thông báo về các điều kiện vi phạm
•InformRequest: Câu lệnh InformRequest cung cấp khả năng hỗ trợ cácManager bố trí theo cấu hình phân cấp.Câu lệnh này cho phép một Manager traođổi thông tin với các Manager khác
•Report : bản tin Report không được định nghĩa trong RFC3416, các hệthống có sử dụng Report phải tự định nghĩa chúng, tuy nhiên bản tin Report vẫn cócấu trúc giống như các bản tin khác
+ Error-status : nếu = 0 là thực hiện thành công không có lỗi, nếu <> 0
là có lỗi xảy ra và giá trị của nó mô tả mã lỗi Trong các bản tin request thì status luôn = 0
Trang 23error-+ Error-index : số thứ tự của objectid liên quan đến lỗi nếu có Trongvariable-bindings có nhiều objectid, được đánh số từ 1 đến n.
+ Variable-bindings : danh sách các cặp [ObjectID – Value] cần lấythông tin, trong đó objectId là định danh của object cần lấy, còn value là giá trị củaobject đó Khi agent gửi bản tin request thì value là không xác định, khi gửi trả lờithì nó sẽ điền vào value bằng giá trị của object
- Phiên bản SNMPv2u: phiên bản SNMPv2 sử dụng cơ chế bảo mật có
chứng thực bằng băm1 và mã hóađối xứng2 dữ liệu, gọi là User-based SNMPv2hay SNMPv2u Sau này phiên bản SNMPv3 ra đời đã thay thế hoàn toàn SNMPv2u
và người ta không còn ưu tiên dùng SNMPv2u nữa Do đó SNMPv2u sẽ khôngđược trình bày trong tài liệu này mà SNMPv3 sẽ được trình bày chi tiết Trong thực
tế rất khó tìm thấy một thiết bị còn hỗ trợ SNMPv2u
- Phiên bản SNMPv3: SNMPv3 dựa trên việc thực hiện giao thức, loại dữ
liệu và uỷ quyền như SNMPv2 và cải tiến phần an toàn SNMPv3 cung cấp an toàntruy nhập vào các thiết bị bằng cách kết hợp sự xác nhận và mã khoá các gói tintrên mạng
Tuy nhiên việc sử dụng SNMPv3 rất phức tạp và cồng kềnh dù nó là sự lựachọn tốt nhất cho vấn đề bảo mật của mạng Việc sử dụng sẽ tốn rất nhiều tàinguyên do trong mỗi bản tin truyền đi sẽ có phần mã hóa BER Phần mã hóa này sẽchiếm một phần băng thông đường truyền do đó làm tăng phí tổn mạng Mặc dùđược coi là phiên bản đề nghị cuối cùng và được coi là đầy đủ nhất nhưng SNMPv3vẫn chỉ là tiêu chuẩn dự thảo và vẫn đang được nghiên cứu hoàn thiện
Khuôn dạng bảng tin SNMPv3: RFC 2572 định nghĩa các khuôn dạng bản tinSNMPv3 Khuôn dạng bản tin SNMPv3 được phân chia trong trong bốn phần Dữliệu chung (Common data)- Trường này xuất hiện trong tất cả các bản tin SNMPv3.Bảo mật mô hình dữ liệu (Security model data)- Vùng này có ba phần: phần chung,phần dành cho sự chứng thực và phần cho dữ liệu riêng
Context – Hai trường nhận dạng và tên được dùng để cung cấp context choPDU nào sẽ phải xử lý
Trang 24PDU –Vùng này chứa một SNMPv2c PDU
Hình 1 7 Bảng thông tin trong trường PDU
1.3.2 Cơ chế bảo mật trong SNMP
Một SNMP management station có thể quản lý/giám sát nhiều SNMPelement, thông qua hoạt động gửi request và nhận trap Tuy nhiên một SNMPelement có thể được cấu hình để chỉ cho phép các SNMP management station nào
đó được phép quản lý/giám sát mình Các cơ chế bảo mật đơn giản này gôm có:community string, view và SNMP access control list
Community string: Community string là một chuỗi ký tự được cài đặt giốngnhau trên cả SNMP manager và SNMP agent, đóng vai trò như “mật khẩu” giữa 2bên khi trao đổi dữ liệu Community string có 3 loại: Read-community, Write-Community và Trap-Community Khi manager gửi GetRequest, GetNextRequestđến agent thì trong bản tin gửi đi có chứa Read-Community Khi agent nhận đượcbản tin request thì nó sẽ so sánh Read-community do manager gửi và Read-community mà nó được cài đặt Nếu 2 chuỗi này giống nhau, agent sẽ trả lời; nếu 2chuỗi này khác nhau, agent sẽ không trả lời
View: Khi manager có read-community thì nó có thể đọc toàn bộ OID củaagent Tuy nhiên agent có thể quy đinh chỉ cho phép đọc một số OID có liên quannhau, tức là chỉ đọc được một phần của MIB Tập con của MIB này gọi là view,trên agent có thể đinh nghĩa nhiều view
Trang 25SNMP access control list: SNMP ACL là một danh sách các đia chỉ IP được
phép quản lý/giám sát agent, nó chỉ áp dụng riêng cho giao thức SNMP và được càitrên agent Nếu một manager có IP không được phép trong ACL gửi request thì agent
sẽ không xử lý, dù request có community string là đúng Đa số các thiết bi tương thíchSNMP đều cho phép thiết lập SNMP ACL
1.3.3 Quản lý truyền thông trong SNMP
Hệ thống quản lý mạng dựa trên SNMP gôm ba thành phần: bộ phận quản lý(manager), thiết bi chiu sự quản lý – còn gọi là đại lý (agent) và cơ sở dữ liệu gọi là
Cơ sở thông tin quản lý (MIB) Mặc dù SNMP là một giao thức quản lý việcchuyển giao thông tin giữa ba thực thể trên, song nó cũng đinh nghĩa mối quan hệclient-server (chủ tớ) Cơ sở dữ liệu do agent SNMP quản lý là đại diện cho MIBcủa SNMP Minh họa mối quan hệ giữa ba thành phần SNMP này
1.3.3.1 Cơ sở thông tin quản lý – cây MIB
Mỗi thiết bi chiu sự quản lý có thể có cấu hình, trạng thái và thông tin thống
kê đinh nghĩa chức năng và khả năng vận hành của thiết bi Thông tin này rất đadạng, có thể bao gôm việc thiết lập chuyển mạch phần cứng, những giá tri khácnhau lưu trữ trong các bảng ghi nhớ dữ liệu, bộ hô sơ hoặc các trường thông tintrong hô sơ lưu trữ ở các file và những biến hoặc thành phần dữ liệu tương tự.Nhìn chung, những thành phần dữ liệu này được coi là Cơ sở thông tin quản lý củathiết bi chiu sự quản lý Xét riêng, mỗi thành phần dữ liệu biến đổi được coi là mộtđối tượng bi quản lý và bao gôm tên, một hoặc nhiều thuộc tính và một tập các hoạtđộng (operation) thực hiện trên đốiQuan ly hê thông mang vơi giao thưv SNMPTrang 15 Khoa hocc̣ má y tính – MM02A Nhom 5 tượng đó Vì vậy MIB đinh nghĩaloại thông tin có thể khôi phục từ một thiết bi chiu sự quản lý và cách cài đặt thiết
bi mà hệ thống quản lý điều khiển
1.4 Triển khai một số phần mềm giám sát mạng
Hiện tại, việc thực hiện triển khai một hệ thống giám sát toàn bộ các thiết bịmạng là việc cấp thiết cho tất cả các doanh nghiệp và tổ chức Việc triển khai hệthống giám sát nhằm tối ưu hóa hệ thống mạng, tăng cường an ninh mạng, và có thểgiải quyết các sự cố kịp thời Để hiểu được thông tin về hệ thống, ta cần một giảipháp giám sát để có thể cung cấp các thông tin quan trọng trong thời gian thực và ởbất cứ đâu cũng như bất cứ thời điểm nào Trên thị trường hiện nay có rất nhiềuphần mềm dùng để ứng dụng vào việc giám sát hệ thống mạng như:
Trang 261.4.1 Phần mềm Nagios
Là một công cụ giám sát mạng mạnh mẽ Nagios cung cấp các tính năng nhưcảnh báo, xử lý sự kiện và báo cáo Nagios Core là trung tâm của các ứng dụng cóchứa các công cụ giám sát cốt lõi và một giao diện web cơ bản Chúng ta có thểthực hiện giám sát các dịch vụ, ứng dụng, và các số liệu, một lối vào lựa chọn cũngnhư các add-ons cho trực quan dữ liệu, đồ thị, phân phối tải, và hỗ trợ cơ sở dữ liệuMySQL, giữa những người khác
Đặc điểm:
- Các hoạt động kiểm tra được thực hiện bởi các plugin cho máy phục
vụ Nagios à các mô đun client trên các thiết bị của người dùng cuối, Nagios chỉđịnh kỳ nhận các thông tin từ các plugin và xử lý những thông tin đó (thông báocho người quản lý, ghi vào tệp log, hiển thi lên giao diện web…)
- Thiết kế plugin đơn giản cho phép người dùng có thể tự định nghĩa vàphát triển các plugin kiểm tra các dịch vụ theo nhu cầu riêng bằng các công cụ lậptrình như shell scripts, C/C++, Perl, Ruby, Python, PHP, C#
- Gửi thông báo đến người/nhóm người được chỉ định sẵn khi dịchvụ/host được giám sát gặp vấn đề và khi chúng khôi phục hoạt động bình thường.(qua e-mail, pager, SMS, IM…)
- Giao diện web cho phép xem trạng thái của mạng, thông báo, history,tệp log
Plugin là bộ phận trực tiếp thực hiện kiểm tra host/dịch vụ Mỗi một loạidịch vụ Mỗi một loại dịch vụ đều có một plugin riêng biệt được viết để phục vụriêng cho công việc kiểm tra dịch vụ đó Plugin là các script (Perl, C …) hay cáctệp đã được biên dịch (executable) Khi cần thực hiện kiểm tra một host/dịch vụnào đó Nagios chỉ việc gọi plugin tương ứng và nhận kết quả kiểm tra từ chúng.Với thiết kế như thế này, hệ thống Nagios rất dễ dàng được mở rộng và phát triển.Bất kì một thiết bị hay dịch vụ nào cũng có thể được giám sát nếu như viết được
Trang 27plugin cho nó Hình bên dưới cho ta thấy sự tương quan giữa các thành phần trongNagios
Hình 1 8 Sơ đồ tổ chức của Nagios
1.4.2 Multi Router Traffic Grapher (MRTG)
MRTG là một công cụ giám sát mạng đã xuất hiện từ lâu và cung cấp thôngtin cơ bản nhưng rất hữu ích Giống như tất cả các công cụ khác trong bài này,MRTG thu thập thông tin bằng cách sử dụng SNMP (Simple Network ManagementProtocol) sau đó hiển thị các xu hướng của dữ liệu Trong hình 1.11, bạn có thể xem
dữ liệu hàng ngày của một router được giám sát bởi MRTG Hình 1.12 hiển thị một
đồ thị, thể hiện thông tin đã thu thập được trong vòng một năm Đây chính là sứcmạnh thực sự của những công cụ này – chúng cung cấp cho người dùng dữ liệu cầnthiết để đưa ra quyết định cho các dịch vụ và cơ sở hạ tầng
Hình 1 9 Đồ thị biểu hiện dữ liệu hàng ngày MRTG thu được
Trang 28Hình 1 10 Sử dụng đồ thị biểu hiện dữ liệu hàng năm để lên kế hoạch dài
hạn
Là một công cụ giám sát mạng mạnh mẽ Nagios cung cấp các tính năng nhưcảnh báo, xử lý sự kiện và báo cáo Nagios Core là trung tâm của các ứng dụng cóchứa các công cụ giám sát cốt lõi và một giao diện web cơ bản Chúng ta có thểthực hiện giám sát các dịch vụ, ứng dụng, và các số liệu, một lối vào lựa chọn cũngnhư các add-ons cho trực quan dữ liệu, đồ thị, phân phối tải, và hỗ trợ cơ sở dữ liệuMySQL, giữa những người khác
Là một công cụ giám sát mạng mạnh mẽ Nagios cung cấp các tính năng nhưcảnh báo, xử lý sự kiện và báo cáo Nagios Core là trung tâm của các ứng dụng cóchứa các công cụ giám sát cốt lõi và một giao diện web cơ bản Chúng ta có thểthực hiện giám sát các dịch vụ, ứng dụng, và các số liệu, một lối vào lựa chọn cũngnhư các add-ons cho trực quan dữ liệu, đồ thị, phân phối tải, và hỗ trợ cơ sở dữ liệuMySQL, giữa những người khác
1.4.3 Cacti
Cacti là phần mềm mã nguồn mở, giám sát mạng và công cụ đồ họa viết trênPHP/ MySQL Cacti sử dụng RRDTool (Round-robin database tool) mục đích là lưutrữ dữ liệu và tạo đồ họa Cacti thu thập dữ liệu định kì thông qua Net-SNMP (một bộphần mềm dùng để thực hiện SNMP-Simple Network Management Protocol)
Cacti sử dụng cơ sở dữ liệu MySQL để lưu trữ thông tin RRDTool cần để tạo
đồ th, cho phép người dùng tạo nguồn dữ liệu (thông thường là các kết nối SNMP
để giám sát các thiết bị), thu thập dữ liệu từ những thiết bị này, cho phép ngườidùng nhóm các đồ họa lại giống như hệ thống, cho phép quản lý phân quyền chongười dùng đối với dữ liệu đang giám sát và rất nhiều tính năng khác Cũng nhưvới MRTG, Cacti cung cấp cho người dùng nhiều khoảng thời gian để xem thôngtin thu thập được Trong hình 1.11, Cacti thực hiện việc hiển thị xu hướng thông tintrong dạng đồ thị Ở bên trái của hiển thị, xem cách Cacti cho phép nhóm các đồ thị
Trang 29Hình 1 11 Cacti sẽ giúp việc quản lý nhiều đồ thị dễ dàng hơn
Ưu điểm Cacti: Cacti là công cụ sử dụng mã nguồn mở Thông dụng nhất, Cacti có
thể vẽ băng thông mạng với SNMP Có nhiều lý do quan trong mà nhà quản trị hệthống nên chọn Cacti như là công cụ giám sát mạng:
• Cacti có giao diện tiện dụng được xây dựng với PHP/MySQL
• Cacti có diễn đàn dùng để hỗ trợ và cập nhật
• Sử dụng plugins tích hợp sẵn các công cụ miễn phí
• Quản lý tập trung log, từ đó đưa ra những cảnh báo sớm (bằng emailhoặc tin nhắn) gửi cho quản trị mạng khi có sự cố xảy ra (như đứt đườngtruyền, chết dịch vụ, hỏng ổ cứng, hỏng card mạng, quá tải RAM, quá tải CPU,vv)
• Dễ dàng mở rộng và quản lý đến hàng vài ngàn thiết bị
• Miễn phí, chỉ mất chi phí triển khai trên máy tính
• Chạy trên linux nên hiệu năng cao
• Có sẵn nhiều mẫu Template được viết sẵn cho các loại thiết bị mạng,máy chủ và các hệ điều hành khác nhau
• Dễ dàng tạo các Templates cho các thiết bị
• Cho phép bổ sung nhiều chương trình plugin tiện ích, cho phép triển khainhanh chóng hệ thống quản lý tài nguyên mạng với chi phí hợp lý
Trang 30Chương 2 : NGHIÊN CỨU CHỨC NĂNG GIÁM SÁT HỆ
THỐNG MẠNG SỬ DỤNG CACTI
2.1 Tổng quan về Cacti
2.1.1 Giới thiệu Cacti
Dự án Cacti lần đầu tiên được bắt đầu bởi Lan Berry vào ngày 02/09/2001.Berry lấy cảm hứng để bắt đầu dự án trong khi làm việc cho một nhà cung cấp dịch
vụ Internet nhỏ , khi ông đang học trung học Mục tiêu chính của ông trong việcđào tạo ra Cacti là cung cấp một môi trường làm việc dễ dàng sử dụng hơn so vớiRRDtool và linh hoạt hơn so với MRTG Vào ngày 13/09/2014 , phiên bản 0.8.6được phát hành , tốc độ chương trình lớn hơn và khả năng càng ngày được mở rộnghơn Cacti là một phần mềm nguồn mở giám sát mạng dựa trên nền web viết bằngngôn ngữ PHP/MySQL Phần mềm giám sát hệ thống bằng đồ thị dựa trên công cụRRDTool , cung cấp các tính năng phong phú như biểu đồ nhúng , mẫu thiết bị ,tích hợp và phát triển trên các phần mềm cơ bản (MySQL, PHP, RRDtool và Net-SNMP dễ cài đặt và dễ dàng sử dụng các menu trong Cacti Ngoài ra ,Cacti hỗ trợthêm plugin sử dụng như một công cụ để nâng cao hiệu suất tổng thể của hệ thốngtổng thể của hệ thống cũng như các ứng dụng đặc thù Phần mềm giám sát các thiết
bị như ổ cứng, tốc độ quạt, điện năng theo thời gian thực Điều đó sẽ giúp ích nhiềucho việc quản trị hệ thống Hơn nữa phần mềm còn cho phép quản lý phân quyềnngười dung với dữ liệu đang giám sát, đưa ra các cảnh báo khi hệ thống gặp sự cốbằng việc gửi thư điện tử , tin nhắn và rất nhiều tính năng khác Phần mềm CactiCài đặt dễ dàng và hỗ trợ các hệ điều hành Linux( Centos, Fedora, Red Hat,OpenSUSE, Ubuntu….) và hệ điều hành Windows (Windows XP, Windows Server
2003, Windows Server 2008, Windows7 và Windows 8
2.1.2 Chức năng của Cacti
2.1.2.1 Quản lý thiết bị
Cacti giám sát và cho biết trạng thái của các thiết bị trong mạng theo thời giamthực Đồng Cacti còn có thể thống kê hiệu quả hoạt động của các thiết bị
Trang 31Hình 2 1 Thông tin quản lý các thiết bị trong mạng
2.1.2.2 Giám sát lưu lượng mạng
Cacti giám sát hoạt động traffic trong hệ thống mạng, giám sát traffic trêntừng cổng của thiết bị
Hình 2 2 Giám sát lưu lượng mạng
2.1.2.3 Cảnh báo âm thanh
Khi sử dụng plugin monitor, hệ thống sẽ phát ra âm thanh cảnh báo khi cóthiết bị mất kết nối
Trang 32Hình 2 3 Cảnh báo qua Audio sử dụng Monitor Plugin
2.1.2.4 Cảnh báo qua email Thold plugin
Thold là một plugin cho phép thiết lập các hạng ngạch giám sát,và cảnh báoqua email Thold thiết lập các giới hạn cao thấp của các chỉ số của thiết bị nhưCPU,traffic,… nếu các chỉ số vượt giới hạn thì thold sẽ gửi email cảnh báo
Hình 2 4 Cảnh báo qua Email sử dụng Thold Plugin
2.1.2.5 Một số plugin hỗ trợ cho Cacti
Ví dụ: Weathermap là plugin cho phép mô phỏng lại hệ thống mạng bằngbiểu đồ có kèm theo các thông số theo dõi Đây là chức năng rất trực quan và hữuích
Trang 33Hình 2 5 Plugin trong Cacti
2.1.2.6 Template hỗ trợ cho Cacti
Cacti lưu trữ tất cả thông tin thu được thông qua công cụ gọi là RRDToollưu vào trong file *.rra RRDtool yêu cầu một vài tham số để tạo ra được file *.rra.Bất cứ khi nào ta muốn thêm một thiết bị mới hay tạo một graph mới , ta phải nhậpvào những tham số này Việc nhập bằng tay các tham số này luôn phức tạp và tiềm ẩnlỗi Bằng cách sử dụng template, chúng ta có thể giải quyết được những vấn đề trên
Có 2 loại template của Cacti:
Graph template
Host template
Hình 2 6 Graph Templates
2.1.3 Hoạt động của Cacti
Cơ chế hoạt động của Cacti được chia làm 3 nhiệm vụ khác nhau:
Trang 34Hình 2 7 Cơ chế hoạt động của cacti
Lấy dữ liệu
Cacti lấy dữ liệu thông qua poller Nó là ứng dụng thực thi tại một khoảng thờigian cố định như là dịch vụ lập lịch dưới các hệ điều hành khác nhau Nó được lập lịchtrong hệ điều hành Trong Unix, nó được thiết lập theo crontab
Hiện nay, cơ sở hạ tầng mạng chứa rất nhiều thiết bị như routers, switches, servers,UPS, các máy tính và thiết bị mạng khác nhau Để lấy dữ liệu từ dịch vụ kết nối từ xa,Cacti sử dụng SNMP Các thiết bị có sử dụng SNMP có thể được theo dõi bởi Cacti
Lưu trữ dữ liệu
Cacti sử dụng RRDTool để lưu trữ dữ liệu
RRD là hệ thống để lưu trữ và cho biết chuỗi thời gian dữ liệu được thu gom từcác thiết bị chứa SNMP Nó hợp nhất dữ liệu trước đó bằng các hàm như AVERAGE,MINIMUM, MAXIMUM, và như thế việc lưu trữ sẽ nhỏ, tạo đồ họa dễ dàng vànhững báo cáo từ tập tin RRD
Trang 35Hình 2 8 Đồ thị khối lượng các giao dịch từ điện thoại VAS, MM4
Phân tích gói SNMPget từ nhà cung cấp OID
Xem thông tin chi tiết tại https://oss.oetiker.ch/rrdtool/gallery/index.en.html
Biểu diễn dữ liệu
Chức năng quan trọng nhất của RRDTool là tích hợp chức năng đồ họa Cacti
sử dụng chức năng này để triển khai tùy chỉnh các báo cáo đồ họa dựa vào thời gianthu thập từ các thiết bị chứa SNMP khác Có thể có 1 hoặc nhiều thông tin trong biểu
đồ, cũng có thể thêm các đặc điểm tiêu biểu khác như maximum, average,minimum, v.v
- So sánh các giải pháp giữa Cacti và các công cụ giám sát khác
Data Storage Method
License Map Access
Contro l
Control
RRDtool MySQL
Yes Full
Control
Postgre SQL Orcale Database
Commercial Yes Yes
Trang 36Freeware Commercial
Commercial Yes Yes
Bảng 2 1 So sánh Cacti và các công cụ khác
2.1.4 Cài đặt Cacti trên Ubuntu 16.04
- Ta cần cài đặt một số gói sau trước khi cài đặt Cacti 1.1.28 :
Bước 1: Cài đặt Apache 2
# sudo apt-get -y install apache2
Bước 2: Cài đặt MySQL
# sudo apt-get install mysql-server-5.0 php5-mysqlTạo Password mới cho tài khoản “root” ( ban đầu là trống)
Hình 2 9 Tạo password mới cho root
Bước 3: Cài đặt PHP Hướng dẫn cài đặt PHP 5.0 trên Ubuntu 16.04
Trang 37Bước 4: Cài đặt SNMP và RRDTool
# sudo apt-get install snmp
# sudo apt-get install snmpd
# sudo apt-get intall rrdtool
# sudo /etc/init.d/apache2 restart
- Cấu hình SNMP
# sudo vi /etc/snmp/snmp.conf
# sudo mv /etc/snmp/snmpd.conf /etc/snmp/old.snmpd.conf
Bước 5: Cài đặt các module cần thiết cho caci
# sudo apt-get install phpversion-mysql phpversion-ldap phpversion-snmp phpversion-gmp
Bước 6: Cấu hình Cacti Tạo database Cacti
- Tải cacti 1.1.28
# sudo wget https://www.cacti.net/downloads/cacti-1.1.28.tar.gz
# sudo tar -xvf cacti-1.1.xx.tar.gz # sudo mv cacti-1.1.28 cacti
- Chọn OK và nhập password cho database’s administrator
Hình 2 10 Cài đặt Cacti 1
Trang 38Hình 2 11 Cài đặt Cacti 2
- Khởi tạo Virtualhost Apache2
# sudo vi /etc/apache2/apache2.conf
- Khởi động lại dịch vụ apache
# sudo systemctl restart apache2
Bước 7: Cài đặt Cacti Truy cập link: localhost/cacti hoặc
http://your_domain/cacti Nhấn Accept GPL License Agreement -> Chọn Next
Hình 2 12 Cài đặt cacti 3
Hình 2 13 Kiểm tra MySQL và PHP
Trang 39Hình 2 14 Kiểm tra tính tương thích module PHP
Hình 2 15 Cài đặt Cacti 4
Nhấn Next để tiếp tục
Hình 2 16 Cài đặt Cacti 5
Trang 40Hình 2 17 Cài đặt Cacti 6
Hình 2 18 Kiểm tra phân quyền