9.6. Настройка SNMP
Назначение
SNMP - это протокол прикладного уровня, предназначенный для управления устройствами в IP-сетях а также для мониторинга их параметров и характеристик.
Описание
Системы, управляемые SNMP, состоят из SNMP-менеджера, SNMP-агента и информационной базы данных (MIB), описывающей параметры управляемого устройства. SNMP определяет формат сообщений для связи между менеджерами и агентами. Менеджер SNMP может быть частью системы управления сетью (NMS). Агент и MIB находятся на управляемом устройстве.
Чтобы настроить SNMP на коммутаторе, необходимо определить отношения между менеджером и агентом. Агент SNMP содержит переменные MIB, значения которых менеджер SNMP может запрашивать или изменять. Менеджер может получить значение от агента или сохранить значение в агенте. Агент собирает данные из MIB, являющегося хранилищем информации, о параметрах устройства и сетевых данных. Агент также может отвечать на запросы менеджера о получении или установке данных. Агент может отправлять менеджеру сообщения - SNMP-трапы (SNMPv1, SNMPv2с, SNMPv3), SNMP-Inform (SNMPv3).
SNMP-трапы - это незапрашиваемые сообщения, отправляемые SNMP-агентом SNMP-менеджеру при изменении состояния устройства. Ошибка аутентификации пользователя, перезапуск, состояние канала, отслеживание MAC-адресов, закрытие TCP-соединения, потеря соединения с соседним устройством или другие важные события могут быть причиной отправки SNMP-трапов.
SNMP-Inform – это уведомление SNMPv3, которое требует подтверждения от получателя (SNMP-менеджера). После отправки inform-уведомления агент ожидает ответ, удостоверяющий доставку сообщения. Если подтверждение не приходит, сообщение может быть отправлено повторно, что повышает надежность доставки.
Служба SNMP на коммутаторе реализована в соответствии с:
SNMPv1 (RFC 1157);
SNMPv2с (RFC 1901);
SNMPv3 (RFC 2273, 2274, 2275).
Примечание
Настройка поддерживаемой версии SNMP настраивается при помощи команды snmp-server version
.
Основные отличия версий SNMP:
Аутентификация пользователей :
SNMPv1 и SNMPv2c: для аутентификации используются простые комьюнити (например, “public” или “private”), которые передаются в открытом виде и могут быть легко перехвачены.
SNMPv3: каждому пользователю назначается имя и пароль. Аутентификация происходит с использованием криптографических алгоритмов (MD5 или SHA), что гарантирует, что сообщение действительно исходит от доверенного источника.
Шифрование данных:
SNMPv1 и SNMPv2c: шифрование не поддерживается. Передаваемые в открытом виде данные можно перехватить и прочитать.
SNMPv3: поддерживается шифрование сообщений с помощью алгоритмов DES или AES (User-Based Security Model, RFC 2274). Это означает, что даже если сообщение будет перехвачено, его содержимое останется недоступным для злоумышленника.
Защита целостности и защита от повторных атак:
SNMPv1 и SNMPv2c: не реализована защита целостности и защита от повторных атак.
SNMPv3: в структуру сообщений включены дополнительные элементы, такие как Engine ID, timestamp и счетчик сообщений. Эти элементы помогают убедиться, что каждое сообщение уникально и не было изменено в процессе передачи, а также предотвращают так называемые replay-атаки (повторное использование перехваченных сообщений).
Управление доступом:
SNMPv1 и SNMPv2c: Доступ к данным регулируется только по значению комьюнити, что не позволяет тонко разграничивать права доступа.
SNMPv3: Введено гибкое управление доступом на основе представлений (View-Based Access Control Model - VACM, RFC 2275), которое позволяет создавать разные представления (view). Представления определяют, какие именно объекты доступны для конкретной группы, а также права доступа (чтение или изменение).
Примечание
На коммутаторах Aquarius представления можно использовать в SNMPv2с в модели доступа с использованием комьюнити.
SNMP-уведомления:
SNMPv1 и SNMPv2c: используются SNMP-трапы.
SNMPv3: Кроме SNMP-трапов в SNMPv3 появилась концепция уведомлений SNMP-Inform, которые похожи на SNMP-трапы, но имеют механизм подтверждения. При использовании уведомлений типа “Inform” менеджер SNMP должен подтверждать получение уведомления, обеспечивая бо́льшую надежность связи между агентом и менеджером. Так как SNMPv3 обеспечивает возможность безопасного обмена сообщениями между SNMP-агентом и SNMP-менеджером, он так же гарантирует надежность и защиту от несанкционированного доступа к SNMP-уведомлениям.
Настройка
Включение SNMP (SNMPv1, SNMPv2c, SNMPv3)
Шаг 1: Вход в режим “Global config”
Switch# configure terminal
Шаг 2: Включение SNMP
Switch(config)# snmp-server enable
Шаг 3: Выход из режима “Global config”
Switch(config)# end
Шаг 4: Проверка
Switch# show snmp
SNMP services: enable
Настройка прав доступа с использованием SNMP-комьюнити (SNMPv1, SNMPv2c)
Комьюнити SNMP используется для определения отношений между SNMP-менеджером и SNMP-агентом. Комьюнити также действует как пароль, разрешающий доступ к агенту на коммутаторе.
Можно указать одну или несколько характеристик, связанных с комьюнити:
Вид MIB, который определяет подмножество всех объектов MIB, доступных для данной комьюнити.
Разрешение на чтение или чтение/запись для объектов MIB, доступных данной комьюнити.
Действия из примера ниже выполняются в режиме “Priveleged EXEC”.
Шаг 1: Настройка представления (необязательно)
Настройка представления с именем “view1”:
Switch# configure terminal
Switch(config)# snmp-server view view1 included 1
Switch(config)# end
Проверка:
Switch# show snmp-server view
View-name View-type Subtree
===========================================================
view1 included .1
Шаг 2: Настройка комьюнити (community string)
Настройка комьюнити с именем “Public” с доступом на чтение и запись представления “view1”:
Switch# configure terminal
Switch(config)# snmp-server community public read-write view view1
Switch(config)# end
Проверка:
Switch# show running-config
snmp-server enable
snmp-server view view1 included 1
snmp-server community public read-only view view1
Настройка прав доступа (SNMPv3)
Для управления устройством по SNMPv3 создается пользователь для которого определяются настройки безопасности – аутентификация и настройки шифрования трафика SNMP.
Группа SNMP включает в себя SNMP-пользователей и определяет модель безопасности.
Представление SNMP должно быть связано с группой SNMP. Связь представления с группой выполняется с помощью настройки доступа для группы. Эта настройка определяет уровень безопасности и права (чтение, запись, настройка оповещений) для доступа созданной группы к конкретному представлению.
Шаг 1: Настройка идентификатора SNMP-движка
В качестве идентификатора использован номер 0х80<MAC-адрес коммутатора>
:
Switch# configure terminal
Switch(config)# snmp-server engineID 8000583f1ce157
Switch(config)# end
Проверка:
Switch# show snmp-server engineID
Engine ID : 8000583f1ce157
Шаг 2: Настройка представления
Настройка представления, включающего все интерфейсы коммутатора:
Switch# configure terminal
Switch(config)# snmp-server view INTERFACES included .1.3.6.1.4.1.54928.42
Switch(config)# end
Проверка:
Switch# show snmp-server view
View-name View-type Subtree
===========================================================
INTERFACES included .1.3.6.1.4.1.54928.42
Шаг 3: Создание SNMP-пользователя
Создание пользователя с именем usr1
с аутентификацией md5
, паролем mypassword
и шифрованием SNMP-трафика с помощью алгоритма aes
:
Switch# configure terminal
Switch(config)# snmp-server usm-user usr1 authentication md5 mypassword privacy aes yourpassword
Switch(config)# end
Проверка:
Switch# show snmp-server usm-user usr1
EnginedID: 8000583f1ce157
User Name: usr1
Auth Protocol: md5
priv Protocol: aes
Storage Type: nonvolatile
Row status: active
Шаг 4: Создание SNMP-группы
Создание SNMP-группы с именем “grp1”, содержащую пользовтеля “usr1” и использующую модель безопасности USM:
Switch# configure terminal
Switch(config)# snmp-server group grp1 user usr1 security-model usm
Switch(config)# end
Проверка:
Switch# show snmp-server group grp1
Group name: grp1
Security model: v3
Security name: usr1
Storage Type: permanent
Row status: active
Шаг 5: Настройка доступа
Настройка уровня безопасности и прав доступа (чтение+запись) для группы “grp1” к созданному представлению “INTERFACES”:
Switch# configure terminal
Switch(config)# snmp-server access grp1 security-model usm priv read INTERFACES write INTERFACES notify INTERFACES
Switch# end
Проверка:
Switch# show snmp-server access grp1
Group name: grp1
Context:
Security model: usm
Security level: priv
Context Match: exact
Read view: INTERFACES
Write view: INTERFACES
Notify view: INTERFACES
Storage Type: permanent
Row status: active
Настройка уведомлений (SNMPv1 и SNMPv2с)
Шаг 1: Вход в режим “Global config”
Switch# configure terminal
Шаг 2: Настройка SNMP
Включение всех поддерживаемых SNMP-трапов, настройка удаленного менеджера SNMP-трапов (IPv4 10.0.0.2
, IPv6 2001:1000::1
):
Switch(config)# snmp-server trap enable all
Switch(config)# snmp-server trap target-address 10.0.0.2 community public
Switch(config)# snmp-server trap target-address 2001:1000::1 community public
Шаг 3: Выход из режима “Global config”
Switch(config)# end
Шаг 4: Проверка
Switch# show running-config
snmp-server trap target-address 10.0.0.2 community public
snmp-server trap target-address 2001:1000::1 community public
snmp-server trap enable vrrp
snmp-server trap enable igmp snooping
snmp-server trap enable ospf
snmp-server trap enable pim
snmp-server trap enable stp
snmp-server trap enable system
snmp-server trap enable coldstart
snmp-server trap enable warmstart
snmp-server trap enable linkdown
snmp-server trap enable linkup
Настройка уведомлений (SNMPv3)
Шаг 1: Вход в режим “Global config”
Switch# configure terminal
Шаг 2: Включение SNMP-трапов
Включение SNMP-трапов для всех поддерживаемых событий:
Switch(config)# snmp-server trap enable all
Switch(config)# end
Проверка:
Switch# show running-config | i snmp-server trap
snmp-server trap enable system
snmp-server trap enable loopback-detect
snmp-server trap enable ipsla test-failure
snmp-server trap enable ipsla test-success
snmp-server trap enable ipsla packet-timeout
snmp-server trap enable ipsla overthreshold
snmp-server trap enable cpu-traffic-limit
snmp-server trap enable bgp established-notification
snmp-server trap enable bgp backward-trans-notification
snmp-server trap enable coldstart
snmp-server trap enable warmstart
snmp-server trap enable linkdown
snmp-server trap enable linkup
snmp-server trap enable bfd
Шаг 3: Настройка уведомлений SNMP-Inform (необязально)
Настройка SNMP-Inform на количество попыток посылки уведомлений - 5
и время между попытками - 10
:
Switch(config)# snmp-server inform retries 5 timeout 10
Switch(config)# end
Проверка:
Switch# show running-config | i retries
snmp-server inform retries 5 timeout 10
Шаг 4: Настройка профиля уведомлений
Настройка профиля уведомлений SNMPv3, который связывает имя профиля NOTIFTRAP
с тегом NTFTR
и типом уведомлений SNMP-trap
:
Switch# configure terminal
Switch(config)# snmp-server notify NOTIFTRAP tag NTFTR trap
Switch(config)# end
Настройка профиля уведомлений SNMPv3, который связывает имя профиля NOTIFINFORM
с тегом NTFINF
и типом уведомлений SNMP-inform
:
Switch# configure terminal
Switch(config)# snmp-server notify NOTIFINFORM tag NTFINF inform
Switch(config)# end
Вывод профилей уведомлений:
Switch# show snmp-server notify
Notify-name Notify-type
===========================================================
NOTIFINFORM inform
NOTIFTRAP trap
Вывод профиля NOTIFTRAP
:
Switch# show snmp-server notify NOTIFTRAP
Notify name: NOTIFTRAP
Notify tag: NTFTR
Notify type: trap
Storage type: nonvolatile
Row status: active
Вывод профиля NOTIFINFORM
:
Switch# show snmp-server notify NOTIFINFORM
Notify name: NOTIFINFORM
Notify tag: NTFINF
Notify type: inform
Storage type: nonvolatile
Row status: active
Шаг 5: Настройка параметров получателя уведомлений
Switch# configure terminal
Switch(config)# snmp-server target-params TRGPRM user user1 security-model v3 message-processing v3 noauth
Switch(config)# end
Вывод всех получателей:
Switch# show snmp-server target-params
Target-parameter-name Security-name
===========================================================
TRGPRM user1
Вывод получателя TRGPRM
:
Switch# show snmp-server target-params TRGPRM
Target parameter name: TRGPRM
Message processing model: v3
Security model: v3
Security name: user1
Security level: noauth
Storage type: nonvolatile
Row status: active
Шаг 6: Настройка адресов SNMP-менеджера
Настройка адреса получателя SNMP-трапов:
Switch# configure terminal
Switch(config)# snmp-server target-address TRGADRTRAP param TRGPRM 10.1.1.1 taglist NTFTR
Switch(config)# end
Настройка адреса получателя сообщений SNMP-Inform:
Switch# configure terminal
Switch(config)# snmp-server target-address TRGADRINFORM param TRGPRM 10.1.1.2 taglist NTFINF
Switch(config)# end
Вывод настроенных получателей:
Switch# show snmp-server target-address
Targetaddress-name IP-address Mgmt-If Parameters
===========================================================
TRGADRINFORM 10.1.1.2 no TRGPRM
TRGADRTRAP 10.1.1.1 no TRGPRM
Вывод информации о получателе TRGADRTRAP
:
Switch# show snmp-server target-address TRGADRTRAP
Targetaddr name: TRGADRTRAP
IP address: 10.1.1.1
Mgmt-If: no
UDP Port #: 162
Timeout: 15000
Retry count: 3
Tag List: NTFTR
Parameters: TRGPRM
Storage type: nonvolatile
Row status: active
Вывод информации о получателе TRGADRINFORM
:
Switch# show snmp-server target-address TRGADRINFORM
Targetaddr name: TRGADRINFORM
IP address: 10.1.1.2
Mgmt-If: no
UDP Port #: 162
Timeout: 15000
Retry count: 3
Tag List: NTFINF
Parameters: TRGPRM
Storage type: nonvolatile
Row status: active