Tải bản đầy đủ (.docx) (86 trang)

Xây dựng và giám sát hệ thống mạng sử dụng phần mềm cacti nhóm bốc bát

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 (8.61 MB, 86 trang )

BAN 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


BAN 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


LỜI MỞ ĐẦU
Cù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át
triể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ác
nguyê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ủa
các công ty, cơ quan, đơn vị và các tổ chức doanh nghiệp. Hệ thống nhằm cho phép
thu 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ình
vậ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ịp
thờ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ấn
cô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ình
trạ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ác
quả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ành
thườ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át
mạ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ám
sá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ể xem
xét đưa ra các biện pháp phòng chống và bảo vệ hệ thống phù hợp.


LỜI CẢM ƠN
Chú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ủa
thầy , nhóm chúng em đã có những định hướng tốt trong việc triển khai và thực hiện
cá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


GVHD: ThS. Nguyễn Quốc Sử


DANH 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.
1.4.

Cơ sở thông tin quản lý – cây MIB..............................................................................12

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


GVHD: ThS. Nguyễn Quốc Sử
3.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
ACL

Access-list Control

CNTT

Công nghệ thông tin

IAB

Internet Architecture Board


GVHD: ThS. Nguyễn Quốc Sử

ICMP


Internet Control Message Protocol

LAN

Local Area Network

MRTG

Multi Router Traffic Grapher

OID

ObjectID

PHP

Hypertext Preprocessor

SDEE

Security Device Event Exchange

SNMP

Simple Network Management Protocol

SQL

Structured Query Language


TCP/IP

Transmission Control Protocol/ Internet
Protocol

VNPT

Vietnam Posts and Telecommunications
Group

WAN

Wide Area Network

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


GVHD: ThS. Nguyễn Quốc Sử

Hì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
Hình 2. 18 Kiểm tra phân quyền..................................................................................26


GVHD: ThS. Nguyễn Quốc Sử

Hì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


GVHD: ThS. Nguyễn Quốc Sử

Hì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
Hình 3. 47 Sửa người dùng..........................................................................................59


GVHD: ThS. Nguyễn Quốc Sử


GVHD: ThS. Nguyễn Quốc Sử

DANH 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


GVHD: ThS. Nguyễn Quốc Sử

CHƯƠ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ó 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, Syslog-ng Message (Syslog-ng gồm 2
thà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
Device Event Exchange (SDEE – Gồm các thiết bị nằm trong hệ thống các thiết
1


GVHD: ThS. Nguyễn Quốc Sử

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.
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ày
cho 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ống
giá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ổ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 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ống
giá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ạng
lướ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ặc
ngư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.
2


GVHD: ThS. Nguyễn Quốc Sử


1.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 (Simple
Network Management Protocol) và giao thức ICMP (Internet Control Message
Protocol).
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 Architecture
Board) nhận thấy sự cần thiết có bộ công cụ quản lí cho TCP/IP nên đã cho ra đời
RFC 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ào
cá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ủa
mạ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ủa
chươ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 trong
mạ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ọn
SNMP để 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ủa

các thiết bị hỗ trợ SNMP. Các thiết bị khác nhau có hoạt động khác nhau nhưng
hoạ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ần
cứ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)
- Khi truy vấn với gói tin lớn thì trả về kết quả chậm, tốc độ thấp.
3


GVHD: ThS. Nguyễn Quốc Sử

-

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ười
quả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ương
thức hoạt động. Hiện nay SNMPv1 là phổ biến nhất do có nhiều thiết bị tương thích
nhấ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ần
mề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ột
thô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 tin
GetRequest 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ông
tin.
•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ếp
Object đượ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ết
mộ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 tin
củ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ềm
SNMP 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ủa
Object đó.
•Trap: Bản tin Trap được agent tự động gửi cho manager mỗi khi có sự
4


GVHD: ThS. Nguyễn Quốc Sử

kiệ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ường
xuyê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ải
mọ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ửi
trap 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ống
như lúc nhận. Giữa manager và agent có thể có nhiều request & reponse, một
request và một response là cùng một phiên trao đổi khi chúng có requestID giống
nhau.
+ 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ó. Trong
variablebindings có nhiều objectid, được đánh số từ 1 đến n, một bản tin
GetRequest 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ằng
giá trị của object.

5


GVHD: ThS. Nguyễn Quốc Sử

Hì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ại
requestID giống như lúc nhận.)

6


GVHD: ThS. Nguyễn Quốc Sử

+ 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ếu
bạ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 tin

GetRequest 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à GetNextRequest
thì objectid sẽ là định danh của object nằm sau (nằm sau trong mib) objectid của
request
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ản
tin GetNextRequest với objectid là sysContact, sau đó agent sẽ gửi bản tin
GetReponse trả lời với Objectid là sysName, vì sysName nằm sau sysContact trong
MIB. Chú ý request-id là giống nhau

7


GVHD: ThS. Nguyễn Quốc Sử

Hì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ủa

thiế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ại
sao lại có IP của nguồn sinh ra trap trong khi bản tin IP chứa gói SNMP đã có địa
chỉ nguồn. Giả sử mô hình giám sát của bạn như sau : tất cả trap sender được cấu
hình để gửi trap đến một trap receiver trung gian, gọi là trap relay, sau đó trap relay
mớ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 trap
receiver 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.
8


GVHD: ThS. Nguyễn Quốc Sử

+ 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ản
tin 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ác
bả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ác
bả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ệnh
GetRequest, tuy nhiên tuỳ thuộc vào agent trong khoản mục kế tiếp của MIB. Các
9


GVHD: ThS. Nguyễn Quốc Sử

biế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ệnh
GetNextRequest 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ới
Agent 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ều
kiệ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 Agent
gử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ản
tin đá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ác
Manager 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.
Cấu trúc PDU
Cấu trúc PDU của SNMPv2c không thay đổi gì so với PDU của SNMPv1,
gồm các trường :
+ 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 Response cho request nào thì nó phải gửi requestID
giống như lúc nhận. Giữa manager và agent có thể có nhiều request & reponse,
một request và một response là cùng một phiên trao đổi khi chúng có requestID
giống nhau.
+ 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ì errorstatus luôn = 0.
10


GVHD: ThS. Nguyễn Quốc Sử

+ Error-index : số thứ tự của objectid liên quan đến lỗi nếu có. Trong
variable-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ấy

thông tin, trong đó objectId là định danh của object cần lấy, còn value là giá trị của
object đó. Khi agent gửi bản tin request thì value là không xác định, khi gửi trả lời
thì 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 SNMPv2
hay 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àn
truy 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 tin
trê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ựa
chọ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ài
nguyê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 SNMPv3
vẫ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 tin
SNMPv3. 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 cho
PDU nào sẽ phải xử lý.
11


GVHD: ThS. Nguyễn Quốc Sử


PDU –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 SNMP
element, thông qua hoạt động gửi request và nhận trap. Tuy nhiên một SNMP
element 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ống
nhau trên cả SNMP manager và SNMP agent, đóng vai trò như “mật khẩu” giữa 2
bên khi trao đổi dữ liệu. Community string có 3 loại: Read-community, WriteCommunity 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 được
bản tin request thì nó sẽ so sánh Read-community do manager gửi và Readcommunity mà nó được cài đặt. Nếu 2 chuỗi này giống nhau, agent sẽ trả lời; nếu 2
chuỗ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ủa
agent. Tuy nhiên agent có thể quy đinh chỉ cho phép đọc một số OID có liên quan
nhau, 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.

12


GVHD: ThS. Nguyễn Quốc Sử

SNMP 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ài
trê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ích

SNMP đề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ệc
chuyể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 MIB
củ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 đa
dạ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ác
nhau lƣu trữ trong các bảng ghi nhớ dữ liệu, bộ hô sơ hoặc các trƣờng thông tin
trong 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ủa
thiế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 SNMP
Trang 15 Khoa hocc̣ má y tính – MM02A Nhom 5 tƣợng đó. Vì vậy MIB đinh nghĩa
loạ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ải
phá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ều
phần mềm dùng để ứng dụng vào việc giám sát hệ thống mạng như:
13



×