Giao thức SNMP, viết tắt của Simple Network Management Protocol, là một giao thức quản lý mạng được sử dụng để giám sát và quản lý các thiết bị mạng. Được phát triển để cung cấp một cách tiêu chuẩn để quản lý và giám sát các thiết bị mạng, SNMP chủ yếu hoạt động ở tầng 7 (tầng ứng dụng) trong mô hình OSI.
SNMP sử dụng mô hình quản lý – Agent, trong đó:
- Quản lý: Là máy tính hoặc thiết bị chịu trách nhiệm giám sát và điều khiển các thiết bị mạng.
- Agent: Là phần mềm chạy trên thiết bị mạng, thu thập thông tin và cung cấp nó cho quản lý thông qua SNMP.
Giao thức này cho phép quản lý thu thập thông tin từ các thiết bị, theo dõi trạng thái của chúng và thậm chí điều khiển một số chức năng. Trong lĩnh vực thiết bị mạng, SNMP đóng vai trò quan trọng trong việc đảm bảo hiệu suất và khả năng quản lý mạng một cách hiệu quả.
Để tìm hiểu chi tiết về giao thức SNMP, chúng ta sẽ cùng nhau làm rõ những vấn đề sau:
- Cấu trúc của SNMP.
- Phiên bản SNMP.
- Mối quan hệ giữa MIB và SNMP.
- PDU của SNMP.
- Bảo mật trong SNMP.
- Phân biệt giữa Trap và Notification.
- Áp dụng SNMP trong mạng và thiết bị mạng.
- Các công cụ và phần mềm hỗ trợ SNMP.
Cấu trúc SNMP và mô hình Quản lý – Agent
Mô hình client-server là một kiến trúc phổ biến trong lĩnh vực mạng và phần mềm, mà SNMP sử dụng để thực hiện giao tiếp giữa quản lý (Manager) và các thiết bị mạng (Agent).
- Manager: đóng vai trò chủ động trong hệ thống, thường là máy tính hoặc thiết bị chịu trách nhiệm giám sát và quản lý các thiết bị mạng.
- Agent: thành phần chủ động, chạy trên các thiết bị mạng như router, switch, server. Chúng có tác dụng thu thập thông tin về trạng thái và hiệu suất của thiết bị mạng.
Các máy tính Manager gửi các yêu cầu đến Agent để lấy thông tin hoặc cấu hình các thiết bị mạng. Các yêu cầu bao gồm các lệnh như Get, Set, và GetNext. Agent phản hồi lại Quản lý với thông tin được yêu cầu thông qua các gói dữ liệu gọi là PDU (Protocol Data Unit) trong SNMP.
Các phiên bản giao thức SNMP
Giao thức SNMP có nhiều phiên bản được phát triển để ngày càng hoàn thiện về hiệu suất, bảo mật và khả năng quản lý. Các phiên bản SNMP gồm:
- SNMPv1: Phiên bản đầu tiên với ưu điểm dễ triển khai và thích ứng dụng nhưng không có cơ chế bảo mật và không thể thực hiện lệnh cấu hình.
- SNMPv2: Được nâng cấp và phát triển hơn V1 với các tính năng như BulkGet để giảm bớt overhead, cung cấp định nghĩa mới cho Trap, bao gồm các thông báo bảo mật. Hạn chế của giao thức này là tính năng bảo mật vẫn chưa được giải quyết hoàn toàn.
- SNMPv3: Phiên bản mới nhất với nhiều tính năng mới và tương thích với công nghệ IPv6, cải thiện đáng kể vấn đề bảo mật với các cơ chế authentication và encryption. Thêm nữa nó có hỗ trợ quản lý, thay đổi cấu hình, và giám sát hiệu quả.
Mối quan hệ giữa MIB và SNMP
MIB là một cấu trúc dữ liệu chứa thông tin quản lý, tổ chức dưới dạng cây hình thức. Trong đó mỗi nút của cây đại diện cho một đối tượng có thể được giám sát hoặc quản lý trong mạng. MIB định nghĩa cách các thông tin quản lý được tổ chức và truy cập. Nó là một giao diện chuẩn giữa các thiết bị mạng và hệ thống quản lý.
MIB là nguồn dữ liệu chính cho SNMP. Nó định rõ cấu trúc của các đối tượng mà Quản lý có thể yêu cầu từ Agent hoặc cấu hình trên Agent. Khi Quản lý muốn biết thông tin về một đối tượng nào đó trên một thiết bị mạng, nó sẽ sử dụng SNMP để truy cập vào MIB của thiết bị đó.
SNMP sử dụng MIB để đóng gói và truyền tải thông tin quản lý giữa Quản lý và Agent thông qua các gói SNMP. Các lệnh SNMP cơ bản được sử dụng để truy cập thông tin trong MIB. Get để lấy giá trị của một đối tượng, Set để cấu hình giá trị, và GetNext để lấy giá trị của đối tượng kế tiếp trong cây MIB.
PDU của SNMP
PDU (Protocol Data Unit) trong SNMP là đơn vị dữ liệu truyền thông cơ bản giữa máy tính quản lý và các thiết bị mạng. Có năm loại PDU chính trong SNMP, mỗi loại có một chức năng cụ thể:
- GetRequest: Yêu cầu dữ liệu từ Agent.
- GetNextRequest: Yêu cầu dữ liệu kế tiếp từ Agent.
- GetResponse: Phản hồi từ Agent với dữ liệu yêu cầu.
- SetRequest: Yêu cầu cài đặt giá trị cho một đối tượng cụ thể.
- Trap: Thông báo không đồng bộ từ Agent đến Quản lý khi có sự kiện xảy ra.
Vấn đề bảo mật trong SNMP
Bảo mật là một khía cạnh quan trọng khi triển khai SNMP để đảm bảo an toàn thông tin và ngăn chặn các rủi ro liên quan đến quản lý mạng. SNMPv3 là phiên bản mà chủ yếu được sử dụng trong môi trường do nó cung cấp các cơ chế bảo mật mạnh mẽ.
Để tăng tính bảo mật trong SMP, ta có thể sử dụng:
- Cơ chế xác thực như MD5 hoặc SHA để kiểm tra tính toàn vẹn của dữ liệu.
- Sử dụng phương thức mã hóa như DES hoặc AES để ẩn thông tin trên đường truyền.
- Sử dụng Access Control List (ACL) để quản lý quyền truy cập đối với các đối tượng cụ thể trong MIB.
Phân biệt giữa Trap và Notification
Cả Trap và Notification đều là thông báo không đồng bộ nhưng chúng khác nhau ở cách chúng được kích hoạt và mục đích sử dụng.
- Trap: Thường là các dữ liệu đơn giản và sử dụng để thông báo về các sự kiện không thường xuyên như lỗi hoặc sự cố. Agent tự động gửi Trap mà không cần yêu cầu từ Manager.
- Notification: Có thể chứa dữ liệu chi tiết và đa dạng để cung cấp thông tin chủ động; có thể được sử dụng khi Manager muốn lấy thông tin cụ thể từ Agent.
Cách thiết lập SNMP trong mạng
Đầu tiên, trước khi bắt đầu quá trình thiết lập SNMP, quản trị viên cần xác định rõ mục tiêu và yêu cầu cụ thể của hệ thống quản lý mạng. Điều này bao gồm việc xác định các thiết bị mạng và dịch vụ cần được giám sát, đồng thời xác định các thông tin quan trọng trong MIB (Management Information Base) mà bạn muốn theo dõi.
Sau đó, trên từng thiết bị mạng như router, switch, firewall, hoặc server, quản trị viên sẽ bật dịch vụ SNMP thông qua việc kích hoạt và cấu hình. Các thiết lập cơ bản bao gồm việc chọn phiên bản SNMP (ví dụ: SNMPv3 cho tính bảo mật cao hơn), thiết lập các chuỗi cộng đồng (Community Strings) để xác định cách truy cập, và chọn cách xác thực và mã hóa nếu sử dụng SNMPv3.
Tiếp theo, quản trị viên cần xác định các đối tượng cụ thể từ MIB mà họ muốn giám sát, và cấu hình các thông số như ngưỡng cảnh báo và cảnh báo tới các địa chỉ IP của SNMP Manager. Ngoài ra, cấu hình các thông báo Trap để báo cáo sự kiện quan trọng mà Agent tự động phát hiện.
Hơn nữa, trong quá trình cấu hình, quản trị viên nên xác định và thiết lập quyền truy cập thông qua Access Control List (ACL) để đảm bảo rằng chỉ những người được ủy quyền mới có thể truy cập thông tin quản lý.
Hạn chế của giao thức SNMP
Giao thức SNMP bị hạn chế bởi sử dụng các phiên bản của như SNMPv1 và SNMPv2. Với các phiên bản này ta gặp những vấn đề sau:
- SNMPv1 và SNMPv2c sử dụng chuỗi cộng đồng (Community Strings) để xác định quyền truy cập, nhưng thông tin này truyền dưới dạng văn bản không được mã hóa.
- SNMP không linh hoạt đối với các mô hình quản lý mạng phức tạp và độ tương thích giữa các thiết bị của các nhà cung cấp khác nhau cũng không cao.
- SNMP có thể trở thành mục tiêu của các tấn công mạng, như tấn công tràn bộ đệm (buffer overflow) hoặc tấn công từ chối dịch vụ (DoS), đặc biệt là trong các phiên bản cũ như SNMPv1 và SNMPv2c.
- SNMP không cung cấp nhiều khả năng tự phục hồi khi xảy ra sự cố.
Để hạn chế ta cần phải sử dụng phiên bản giao thức SNMPv3 mới nhất!
Thông Tin Về Tác Giả
Nguyễn Thành Hợp là một chuyên gia về lĩnh vực thiết bị mạng, viễn thông gần 10 năm kinh nghiệm với nhiều chứng chỉ chất lượng như CCNA 200-301, CCNP, CCDA, CCDP,... do Cisco cung cấp. Sở thích cá nhân là khám phá những kiến thức mới mẻ về công nghệ nói chung và đặc biệt là liên quan đến lĩnh vực mạng!