SNMPv3: различия между версиями
(→Traps) |
м |
||
(не показано 18 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
{{#description2:Зачем нужен SNMPv3. Users. Engine-ID. Informs . Привязка security-model к группе. Traps notifications. Trap Notification Filter. Target address. Target Parameters. Информация для подготовки к экзаменам Juniper.}} | |||
=Описание= | =Описание= | ||
В отличие от v1 и v2, snmpv3 поддерживает аутентификацию и шифрование. | В отличие от v1 и v2, snmpv3 поддерживает аутентификацию и шифрование. | ||
Строка 35: | Строка 36: | ||
Конфигурируем группу с ограничениями доступа. | Конфигурируем группу с ограничениями доступа. | ||
*Называем как-нибудь группу: | *Называем как-нибудь группу: | ||
set snmp v3 vacm access group ''<group-name>'' | |||
*Указываем security-model: | *Указываем security-model: | ||
:-any—Any | |||
:-usm—SNMPv3 | |||
:-v1—SNMPV1 | |||
:-v2c—SNMPv2c | |||
set snmp v3 vacm access group group-name (default-context-prefix | context-prefix context-prefix) security-model ''<(any | usm | v1 | v2c)>'' | |||
*Задаем security-level: | *Задаем security-level: | ||
:-none—Provides no authentication and no encryption. | |||
:-authentication—Provides authentication but no encryption. | |||
:-privacy—Provides authentication and encryption. | |||
set snmp v3 vacm access group group-name default-context-prefix security-model (any | usm | v1 | v2c) security-level ''<(authentication | none | privacy)>'' | |||
*Настраиваем вьюхи, доступные для группы. | *Настраиваем вьюхи, доступные для группы. | ||
:-notify-view ''<view-name>''; | |||
:-read-view ''<view-name>''; | |||
:-write-view ''<view-name>''; | |||
Причем для одной группы можно задавать несколько разных видов view. Сами view настраиваются в | Причем для одной группы можно задавать несколько разных видов view. Сами view настраиваются в | ||
set snmp view ''<view-name>'' (include|exclude) | |||
==Привязка security-model к группе== | ==Привязка security-model к группе== | ||
По сути это обозначение какие юзеры к какой группе будут принадлежать. И как следствие какие права будут у каждого юзера. | По сути это обозначение какие юзеры к какой группе будут принадлежать. И как следствие какие права будут у каждого юзера. | ||
set snmp v3 vacm security-to-group security-model (usm | v1 | v2c) security-name ''<user-name>'' group ''<group-name>'' | |||
Так как мы рассматриваем snmpv3, то security-name здесь = user, который мы задали тут: ''<[edit snmp v3 usm local-engine user username]>''. | Так как мы рассматриваем snmpv3, то security-name здесь = user, который мы задали тут: ''<[edit snmp v3 usm local-engine user username]>''. | ||
Строка 67: | Строка 64: | ||
Если мы использует v3 + v1/v2, то нужно сконфигурировать разные security-name для разных версий. | Если мы использует v3 + v1/v2, то нужно сконфигурировать разные security-name для разных версий. | ||
==Traps== | ==Traps== | ||
В snmpv3 используются traps and informs. | В snmpv3 используются traps and informs. | ||
Строка 73: | Строка 71: | ||
===Traps notifications=== | ===Traps notifications=== | ||
set snmp v3 notify ''<name>'' tag ''<tag-name>'' | |||
set snmp v3 notify ''<name>'' type trap | |||
tag-name - это | tag-name - это tag адреса удаленного устройства, которому будет отправлен трап (''tag-list'' в настройках target-address). | ||
===Trap Notification Filter=== | ===Trap Notification Filter=== | ||
Строка 84: | Строка 80: | ||
Фильтруется по MIB-дереву с указанием include/exclude OID. | Фильтруется по MIB-дереву с указанием include/exclude OID. | ||
set snmp v3 notify-filter ''<profile-name>'' oid ''<oid>'' (include | exclude) | |||
===Target address=== | ===Target address=== | ||
Строка 103: | Строка 97: | ||
===Target Parameters=== | ===Target Parameters=== | ||
[edit snmp v3 target-parameters target-parameter-name parameters] | [edit snmp v3 target-parameters <''target-parameter-name''> parameters] | ||
message-processing-model ''<(v1 | v2c | v3)>''; | message-processing-model ''<(v1 | v2c | v3)>''; | ||
security-level ''<(authentication | none | privacy)>''; | security-level ''<(authentication | none | privacy)>''; | ||
Строка 110: | Строка 104: | ||
security-name для snmpv3 = user, для v1/v2 = snmp community. | security-name для snmpv3 = user, для v1/v2 = snmp community. | ||
===Configuration=== | ===Configuration=== | ||
[edit snmp v3] | [edit snmp v3] | ||
Строка 168: | Строка 163: | ||
} | } | ||
notify-filter ''<filter-name>''; | notify-filter ''<filter-name>''; | ||
===Engine-ID=== | |||
====Remote==== | |||
Для отправки и приема inform сообщений SNMPv3 user'у на удаленном устройстве, нам придется задать remote engine-id, потому что он играет роль при создании ключей аутентификации и шифрования. | |||
[edit snmp v3] | |||
usm { | |||
remote-engine ''<>'' { | |||
user ''<user>'' { | |||
authentication-md5 { | |||
authentication-key ''<key>'' | |||
} | |||
privacy-des { | |||
privacy-key ''<key>'' | |||
} | |||
====Local==== | |||
Local engine-ID является административно уникальным идентификатором для механизма snmpv3 и используются только для идентификации. | |||
По дефолту ID = дефолтный IP роутера. | |||
set snmp engine-id {local engine-id-suffix|use-default-ip-address|use-mac-address} | |||
use-mac-address - используется mac интерфейса управления. | |||
=Дополнительная информация= | |||
*[[Архитектура MX]] | |||
*[[Основы автоматизации на SLAX]] |
Текущая версия на 18:03, 15 июля 2021
Описание
В отличие от v1 и v2, snmpv3 поддерживает аутентификацию и шифрование.
USM - определяет аутентификацию и шифрование,
VACM - определяет правила доступа и управления.
Users
Для каждого snmpv3 юзера можно задавать:
- username
- authentication type
- authentication password
- privacy type
- privacy password
После того, как user вводит пароль, генерируется ключ, на основании engine-id и password, далее ключ записывается в конфигурационный файл.
После генерации ключа, пароль удаляется из конфигурационного файла.
По дефолту аутентификация не используется. Руками можно задать:
- authentication-md5
- authentication-sha
- authentication-none
Ключ генерируется на основании пароля. Пароль состоит из 8 символов. Цифры/числа/знаки.
По дефолту шифрование тоже не используется. Руками можно задать:
- privacy-aes128
- privacy-des
- privacy-3des
- privacy-none
Ключ генерируется на основании пароля. Пароль состоит из 8 символов. Цифры/числа/знаки.
Правила доступа
Настраиваются через VACM (view-based access control model). Группы определяют набор snmp пользователей с одинаковыми правами. Группе задается ограничение доступа. Привелегии доступа определяются View. Конфигурируем группу с ограничениями доступа.
- Называем как-нибудь группу:
set snmp v3 vacm access group <group-name>
- Указываем security-model:
- -any—Any
- -usm—SNMPv3
- -v1—SNMPV1
- -v2c—SNMPv2c
set snmp v3 vacm access group group-name (default-context-prefix | context-prefix context-prefix) security-model <(any | usm | v1 | v2c)>
- Задаем security-level:
- -none—Provides no authentication and no encryption.
- -authentication—Provides authentication but no encryption.
- -privacy—Provides authentication and encryption.
set snmp v3 vacm access group group-name default-context-prefix security-model (any | usm | v1 | v2c) security-level <(authentication | none | privacy)>
- Настраиваем вьюхи, доступные для группы.
- -notify-view <view-name>;
- -read-view <view-name>;
- -write-view <view-name>;
Причем для одной группы можно задавать несколько разных видов view. Сами view настраиваются в
set snmp view <view-name> (include|exclude)
Привязка security-model к группе
По сути это обозначение какие юзеры к какой группе будут принадлежать. И как следствие какие права будут у каждого юзера.
set snmp v3 vacm security-to-group security-model (usm | v1 | v2c) security-name <user-name> group <group-name>
Так как мы рассматриваем snmpv3, то security-name здесь = user, который мы задали тут: <[edit snmp v3 usm local-engine user username]>.
Для v1, v2 - security-name = snmp community <[edit snmp v3 snmp-community community-index]>.
Если мы использует v3 + v1/v2, то нужно сконфигурировать разные security-name для разных версий.
Traps
В snmpv3 используются traps and informs.
- traps - не гарантированные оповещения (без подтверждения),
- inform - гарантированные оповещения (с подтверждением).
Traps notifications
set snmp v3 notify <name> tag <tag-name> set snmp v3 notify <name> type trap
tag-name - это tag адреса удаленного устройства, которому будет отправлен трап (tag-list в настройках target-address).
Trap Notification Filter
Для фильтрации трапов используются фильтры, все логично.
Фильтруется по MIB-дереву с указанием include/exclude OID.
set snmp v3 notify-filter <profile-name> oid <oid> (include | exclude)
Target address
[edit snmp v3 target-address <target-address-name>] address <address>; address-mask <address-mask>; - можно задать пул target-адресов logical-system <logical-system>; port <port-number>; routing-instance <instance>; tag-list <tag-list>; target-parameters <target-parameters-name>;
Ну тут по каждому параметру понятно что он из себя представляет. target-parameters - конфигурируются в [edit snmp v3 target-parameters target-parameters-name] В target-parameters указываются опции секурности, которые используются для отправки сообщений.
Target Parameters
[edit snmp v3 target-parameters <target-parameter-name> parameters] message-processing-model <(v1 | v2c | v3)>; security-level <(authentication | none | privacy)>; security-model <(usm | v1 | v2c)>; security-name <security-name>;
security-name для snmpv3 = user, для v1/v2 = snmp community.
Configuration
[edit snmp v3] notify <name> { tag <tag-name>; type trap; } notify-filter <name> { oid object-identifier (include | exclude); } target-address <target-address-name> { address <address>; address-mask <address-mask>; logical-system <logical-system>; port <port-number>; routing-instance <instance>; tag-list <tag-list>; target-parameters <target-parameters-name>; } target-parameters <target-parameters-name> { notify-filter <profile-name>; parameters { message-processing-model (v1 | v2c | v3); security-level (authentication | none | privacy); security-model (usm | v1 | v2c); security-name <user-name>;
Informs
Вид трапов, с гарантированной доставкой.
Отличие: inform хранятся в памяти и перелылаются с определенной периодичностью определенное кол-во раз, пока:
- не придет snmp ACK от менеджера
- не будет превышено определенное число неудачных попыток
Используют тот же socket/port, что и trap, но имеют другую структуру PDU.
Конфигурация отличается только типа Notification и заданием параметров timeout и retry:
[edit snmp v3] notify <name> { type inform; tag <tag-name>; } notify-filter <filter-name> { oid <oid> (include|exclude); } target-address <target-address> { address <>; retry-count <>; tag-list <tag-name>; address-mask <>; target-parameters <tp>; timeout <>; } target-parameters <tp> { parameters { message-processing-model v3; security-model usm; security-level privacy; security-name <user-name>; } notify-filter <filter-name>;
Engine-ID
Remote
Для отправки и приема inform сообщений SNMPv3 user'у на удаленном устройстве, нам придется задать remote engine-id, потому что он играет роль при создании ключей аутентификации и шифрования.
[edit snmp v3] usm { remote-engine <> { user <user> { authentication-md5 { authentication-key <key> } privacy-des { privacy-key <key> }
Local
Local engine-ID является административно уникальным идентификатором для механизма snmpv3 и используются только для идентификации.
По дефолту ID = дефолтный IP роутера.
set snmp engine-id {local engine-id-suffix|use-default-ip-address|use-mac-address}
use-mac-address - используется mac интерфейса управления.