Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

CHƯƠNG 1 TỔNG QUAN VỀ GIAO THỨC SNMP

1.1 Giới thiệu về SNMP

Giao thức quản lý mạng đơn giản SNMP là một tiêu chung quản lý mạng được sử
dụng rộng rãi trong các mạng truyền thông hỗ trợ giao thức TCP/IP. SNMP cung cấp một
phương thức quản lý các thiết bị như máy trạm hoặc máy chủ, bộ định tuyến, cầu, hub từ
một máy tính trung tâm chứa phần mềm quản lý mạng. SNMP thực hiện các dịch vụ quản
lý sử dụng các hệ thống quản lý và các đại diện quản lý (Agent). Vào đầu năm 1988, Tổ
chức kiến trúc Internet IAB (Internet Architecture Board) đưa ra một khung quản lý cho
internet dựa trên TCP/IP gồm 3 thành phần chính:

- Một khung khái niệm để định nghĩa các luật mô tả thông tin quản lý gọi là
cấu trúc thông tin quản lý SMI (Structure of Management Information);
- Một cơ sở dữ liệu ảo chứa các thông tin về thiết bị được quản lý gọi là cơ
sở thông tin quản lý MIB;
- Một giao thức truyền thông giữa một khối quản lý và một đại diện cho thiết bị
được quản lý gọi là giao thức quản lý mạng đơn giản SNMP
Trong đó, giao thức SNMP được sử dụng để:

+ Cấu hình các thiết bị từ xa: Thông tin cấu hình được gửi đến máy chủ quản
lý từ mạng thông tin quản lý để thực hiện các tác vụ cấu hình thiết bị. Ví dụ, các
nhà quản trị mạng sử dụng SNMP để ngắt kết nối trên các giao diện của router hoặc
kiểm tra tốc độ của card mạng;
+ Giám sát hiệu năng mạng: SNMP được sử dụng để theo dõi và giám sát tốc
độ xử lý của thiết bị và thông lượng mạng cũng như thu thập thông tin truyền gói
tin thành công hay thất bại tại các phần tử mạng;
+ Phát hiện lỗi mạng hoặc các truy nhập không phù hợp: Các cảnh báo được cấu
hình trên các thiết bị nhằm phát hiện có sự kiện vượt ngưỡng cho phép. SNMP cho
phép các thông tin cảnh báo được chuyển tới hệ thống quản lý nhằm có các giải
pháp phù hợp;
+ Giám sát mức sử dụng: SNMP được sử dụng để giám sát mức độ sử dụng,
hiệu suất của cả thiết bị mạng và chiếm dụng của người dùng, nhóm người dùng
hoặc kiểu dịch vụ
Giao thức quản lý mạng đơn giản SNMP gồm ba phiên bản SNMPv1, SNMPv2 và
SNMPv3. SNMPv1 là phiên bản hiệu quả và đơn giản trong thực hiện nhưng tồn tại một
số giới hạn nên đã được phát triển lên SNMPv2. Tuy nhiên, ngoài các lỗi đã được khắc
phục trong phiên bản SNMPv1, SNMPv2 không giải quyết được vấn đề bảo mật như tính
bảo mật của dữ liệu, khả năng bị giả mạo, và truy nhập trái phép tới các cơ sở dữ liệu
quản lý. Vì vậy, SNMPv3 đã bổ sung thêm các tính năng bảo mật như như kiểm soát truy
cập, xác thực và mã hóa dữ liệu quản lý.

SNMPv1 là tiêu chuẩn nguyên thủy của SNMP trong khung quản lý mạng
internet. Ba nhóm điều hành điển hình trong SNMPv1 là: chỉ đọc (read-only), ghi
ghi (read-write) và bẫy (trap). An ninh trong SNMPv1 dựa trên mật khẩu - là một
chuỗi văn bản nhằm cho phép bất kỳ một ứng dụng nào cũng có thể truy nhập vào
thông tin quản lý thiết bị. Vì vậy, vấn đề an ninh trong SNMPv1 chưa được chú
trọng đúng mức
SNMPv2 được phát triển từ khung làm việc của SNMPv1. Định nghĩa bản
tin trong SNMPv2 tuân thủ theo SNMPv1. SNMPv2 phát triển các nhóm đối tượng
thiết bị quản lý để vượt qua các hạn chế của SNMPv1.
SNMPv3 có tính tương thích với các phiên bản SNMPv1, SNMPv2. Các tính
năng mới của SNMPv2 liên quan trực tiếp tới vấn đề bảo mật và khung quản lý.
Các tiêu chuẩn bổ sung cho các phiên bản của SNMP được liệt kê dưới đây
- Để cải thiện khả năng của SNMP trong việc cấu hình mạng và thiết bị, RFC
3512 (2003) cung cấp chỉ dẫn cấu hình cụ thể liên quan tới các nhà cung cấp thiết
bị mạng, các nhà phát triển ứng dụng quản lý và những vấn đề liên quan tới yêu
cầu, phát triển công nghệ mạng;
- RFC 3781 (2004) định nghĩa cấu trúc thông tin quản lý mạng thế hệ kế tiếp
SMIng (Structure of Management Information, Next Generation) để cung cấp khả
năng xử lý thông tin mạng hiệu quả trong môi trường mới;
- Nhằm tăng cường tính bảo mật cho SNMP, RFC 3826 (2004) mô tả giao
thức mã hóa đối xứng để hỗ trợ các giao thức mô tả trong mô hình bảo mật người
dùng UMS (Userbased Security Model) cho SNMPv3;
- RFC4088 (2005) định nghĩa lược đồ nhận dạng tài nguyên đồng nhất URI
(Uniform ResourceIdentifiers) để SNMP mở rộng quản lý tới các thiết bị không hỗ
trợ quản lý SNMP;
- Để tích hợp quản lý trong các mạng không dây dựa trên IEEE 802.xx, RFC
4789 (2006) mô tả cách thức các bản tin SNMP truyền trực tiếp trên mạng IEEE
802.xx;
- Nhằm đáp ứng các yêu cầu của SNMPv3 cho ứng dụng cần định vị thực thể
SNMP từ xa, RFC 5343 (2008) giới thiệu cơ chế nhận diện cục bộ (localEngineID)
và cơ chế khám phá để học các nhận dạng SNMP từ các thiết bị từ xa; - RFC 5345
(2008) mô tả một tiếp cận cho phép thực hiện các phép đo lưu lượng quy mô lớn
nhằm tương thích với môi trường thực;
- RFC 5590 (2009) định nghĩa một phân hệ mở rộng cho kiến trúc SNMP
trong RFC 3411 để bổ sung các giải pháp truyền tải an toàn;
- RFC 5608 (2009) mô tả phương pháp kết hợp xác thực và trao quyền giữa
giao thức RADIUS với các mô hình truyền tải an toàn của SNMP để nhận thực
người dùng và tạo quyền cho các phiên truyền tải an toàn.
- Nhằm đáp ứng các yêu cầu của SNMPv3 cho ứng dụng cần định vị thực thể
SNMP từ xa, RFC 5343 (2008) giới thiệu cơ chế nhận diện cục bộ (localEngineID)
và cơ chế khám phá để học các nhận dạng SNMP từ các thiết bị từ xa;
- RFC 5345 (2008) mô tả một tiếp cận cho phép thực hiện các phép đo lưu
lượng quy mô lớn nhằm tương thích với môi trường thực;
- RFC 5590 (2009) định nghĩa một phân hệ mở rộng cho kiến trúc SNMP
trong RFC 3411 để bổ sung các giải pháp truyền tải an toàn;
- RFC 5608 (2009) mô tả phương pháp kết hợp xác thực và trao quyền giữa
giao thức RADIUS với các mô hình truyền tải an toàn của SNMP để nhận thực
người dùng và tạo quyền cho các phiên truyền tải an toàn.
Như đã đề cập ở trên, SNMP sử dụng kiến trúc rất thông dụng đó là kiến trúc
manager – agent, vậy nên về cơ bản hệ thống quản lý mạng dựa trên SNMP gồm
có:

Khối quản lý – Manager

Khối quản lý là một chương trình phần mềm quản lý vận hành trên một hoặc
nhiều máy tính chủ. Tùy thuộc vào yêu cầu và phạm vi sử dụng, khối quản lý có
thể dùng để quản lý một mạng con hay một mạng chung.

Khối quản lý thường được gọi là trạm quản lý mạng (NMS)


Một NMS chịu trách nhiệm thăm dò và nhận bẫy từ các Agent trong mạng

Khối quản lý xử lý các yêu cầu quản lý được chuyển tới từ các Agent hoặc
đưa ra các yêu cầu tới các đại lý Agent

Đại lý – Agent

Agent là một thực thể trong nút mạng bị quản lý nhằm hỗ trợ cho Manager
thực hiện các tác vụ quản lý thông qua giao thức SNMP

Agent có nhiệm vụ thu thập thông tin quản lý và gửi tới khối quản lý để phục
vụ cho hệ thống quản lý mạng. Agent chuyển đổi các yêu cầu quản lý tới thiết bị
chịu quản lý để thực hiện các nhiệm vụ quản lý.

Bên cạnh cách thức quản lý trực tiếp thông qua các Agent, SNMP có thể
quản lý các thiết bị không tương thích với SNMP thông qua giải pháp giao thức
quản lý độc quyền.

Agent có thể tự khởi phát các cảnh báo của thiết bị tới Manager khi có các
các sự kiện vượt ngưỡng bằng các bản tin bẫy (TRAP)

NMS và Agent
1.2 Nguyên lý hoạt động của SNMP

Như đã tìm hiểu, SNMP hoạt động theo cấu trúc Manager – Agent, hoạt động
trong một mô hình đồng bộ dựa trên hai phương thức cơ bản là Poll và Alert, với giao tiếp
được khởi tạo bởi SNMP Manager( SNMP Manager) và tác nhân ( SNMP Agent) gửi
phản hồi. Các lệnh và thông báo này, thường được vận chuyển qua giao thức UDP, được
gọi là đơn vị dữ liệu giao thức (PDU), gồm có:

GET: Get được tạo bởi SNMP Manager. Chúng sẽ được gửi đến một Agent để
lấy giá trị của một biến số nào đó, được xác định bởi OID của nó trong một
MIB

RESPONSE: Agent sẽ gửi phản hồi cho SNMP Manager

GETNEXT: SNMP Manager sẽ gửi getnext đến Agent để lấy các giá trị của
OID tiếp theo trong hệ thống phân cấp của MIB.

GETBULK: SNMP Manager sẽ gửi getbulk cho Agent để có được các bảng dữ
liệu lớn bằng cách thực hiện nhiều lệnh getbulk.

SET: Được gửi bởi SNMP Manager cho Agent để từ đó đưa ra các cấu hình
hoặc lệnh.

TRAP: Một cảnh báo không đồng bộ sẽ được gửi bởi Agent đến trình quản lý
SNMP. Từ đó sẽ chỉ ra một sự kiện quan trọng. Ví dụ như các lỗi hoặc sự cố, đã
xảy ra.

Trên đây là sơ lược về cách mà SNMP hoạt động, ta sẽ tìm hiểu chi tiết hơn về
cách thức hoạt động của từng phiên bản SNMP trong những phần tiếp theo để hiểu rõ
chính xác cách mà SNMP hoạt động.

CHƯƠNG 2 CÁC PHIÊN BẢN CỦA SNMP

Giao thức SNMP có thể được sử dụng để quản lý các hệ thế như Linux, Window,
… hay các thiết bị mạng như router, gateway, switch, firewall,….thông qua một phần
mềm quản trị SNMP.

Tính tới thời điểm hiện tại SNMP đã có 3 phiên bản được phát hành. SNMPv1 là
phiên bản được phát hành đầu tiên tại phiên bản này SNMP không có tính bảo mật cũng
như mã hóa. Khắc phục nhược điểm này, năm 1993 SNMP được đưa ra và bổ xung một
số vấn đề mà SNMPv1 còn thiếu như nhận thực và bảo mật. Tuy nhiên SNMPv2c chỉ bảo
mật dưới dạng community string nên các hacker vẫn rất dễ dàng có thể xâm nhập và đánh
cắp thông tin. Từ đây SNMPv3 cải tiến chủ yếu về mặt bảo mật khi có cả mã hóa và xác
thực khi bỏ đi cơ chế community string.

2.1 SNMPv1

SNMPv1 (SNMP phiên bản 1) là phiên bản đầu tiên của giao thức SNMP.
SNMPv1 hỗ trợ kiến trúc bộ đếm 32bit.
2.1.1 Cấu trúc bản tin SNMPv1

SNMP v1 hoạt động trên UDP (User Datagram Protocol), IP (Internet Protocol),
CLNS (OSI Connectionless Network Service), DDP (AppleTalk Datagram-Delivery
Protocol) và IPX (Novell Internet Packet Exchange).

Cấu trúc bản tin SNMPv1

Cấu trúc bản tin SNMPv1 gồm 2 phần chính là:

 Message header: Chứa 2 trường Version number và Community


string.
 Version number: Chỉ định phiên bản SNMP.
 Community string: Cung cấp môi trường truy cập cho nhóm
NMS trong cộng đồng được cho là trong cùng một miền quản
trị.
 PDU: Chứa lệnh cụ thể toán hạng liên quan đến các giao dịch. Các
trường PDU có độ dài thay đổi.
 PDU types: Chỉ định loại PDU được truyền.
 Request ID: Một số được sử dụng để yêu cầu trả lời. Nó được
tạo bởi thiết bị gửi yêu cầu và được thực thể SNMP phản hồi và
sao chép vào trường này trong GetResponse-PDU.
 Error status: Cho biết số lỗi và loại lỗi.
 Error index: Khi Trạng thái Lỗi khác 0, trường này chứa một
con trỏ chỉ định đối tượng nào đã tạo ra lỗi. Luôn luôn bằng
không trong một yêu cầu.
 Variable Bindings: Một tập hợp các cặp name-value xác định
của MIB trong PDU và trong trường hợp SetRequest-PDU hoặc
GetResponse-PDU, chứa các giá trị của chúng
2.1.2 Các kiểu dữ liệu và câu lệnh trong SNMPv1

SNMPv1 có 5 lệnh SNMP được sử dụng: GetRequest, GetNextRequest,


SetRequest, GetResponse và Trap để điều khiển giữa SNMP Manager và Agent.

Bản tin/ Phương thức Mô tả tác dụng


GetRequest Sử dụng giữa manager và agent để đọc
biến MIB đơn hoặc danh sách các biến
MIB từ agent đích. Sử dụng hai địa chỉ,
địa chỉ đầu của manager hoặc agent và thứ
hai là của biến hoặc đối tượng
GetNextRequest Tương tự như lệnh GetRequest, tuy nhiên
tùy thuộc vào agent trong khoản mục kế
tiếp của MIB.Biến lưu trong thiết bị coi
như đối tượng bị quản lí, nó mở rộng các
biến và được đọc tuần tự
SetRequest Được gửi đi từ manager tới agent như Get
Request và GetNextRequest . Nó tìm kiếm
thông tin mở rộng trong bảng MIB và yêu
cầu agent đặt giá trị cho các đối tượng
quản lí hoặc các đối tượng trong câu lệnh
GetResponse Là câu lệnh từ agent tới manager , cung
cấp cơ chế đáp ứng cho các câu lệnh
GetRequest, GetNextRequest và Set
Request. Thông tin trong lệnh này gồm
một số trưởng chức năng cho phép đáp
ứng các lệnh đã nhận trước đó
Trap Độc lập, không phụ thuộc vào đáp ứng
hoặc yêu cầu từ manager hoặc agent. Đưa
ra thông tin liên quan đến điều kiện định
nghĩa trước và gửi từ agent tới manager
Các kiểu dữ liệu và câu lệnh trong SNMPv1

2.1.3 Bảo mật trong SNMPv1

SNMPv1 là phiên bản đầu tiên của SNMP nên chưa có bất kì biện pháp mã háo
hay xác thực được sử dụng thay vào đó là Community string đã được sử dụng và gửi đi
dưới dạng văn bản rõ ràng. Đây cũng là lý do vì sao mà SNMPv1 rất dễ sử dụng nhưng
nó cũng chính là nhược điểm khi data không được mã hóa và xác thực dẫn đến mất data
và dễ dàng bị đánh cắp bới các hacker.

You might also like