SNMPv3: различия между версиями

Материал из Juniper Exam Wiki
Перейти к навигации Перейти к поиску
м
 
(не показано 13 промежуточных версий этого же участника)
Строка 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:
Конфигурируем группу с ограничениями доступа.
Конфигурируем группу с ограничениями доступа.
*Называем как-нибудь группу:
*Называем как-нибудь группу:
  [edit snmp v3 vacm access]
  set snmp v3 vacm access group ''<group-name>''
group ''<group-name>'';
*Указываем security-model:
*Указываем security-model:
*-any—Any  
:-any—Any  
*-usm—SNMPv3  
:-usm—SNMPv3  
*-v1—SNMPV1
:-v1—SNMPV1
*-v2c—SNMPv2c
:-v2c—SNMPv2c
  [edit snmp v3 vacm access group group-name (default-context-prefix | context-prefix context-prefix)]
  set snmp v3 vacm access group group-name (default-context-prefix | context-prefix context-prefix) security-model ''<(any | usm | v1 | v2c)>''
security-model ''<(any | usm | v1 | v2c)>''
*Задаем security-level:
*Задаем security-level:
*none—Provides no authentication and no encryption.
:-none—Provides no authentication and no encryption.
*authentication—Provides authentication but no encryption.
:-authentication—Provides authentication but no encryption.
*privacy—Provides authentication and encryption.
:-privacy—Provides authentication and encryption.
  [edit snmp v3 vacm access group group-name default-context-prefix security-model (any | usm | v1 | v2c)]
  set snmp v3 vacm access group group-name default-context-prefix security-model (any | usm | v1 | v2c) security-level ''<(authentication | none | privacy)>''
security-level ''<(authentication | none | privacy)>''


*Настраиваем вьюхи,  доступные для группы.  
*Настраиваем вьюхи,  доступные для группы.  
*notify-view ''<view-name>'';
:-notify-view ''<view-name>'';
*read-view ''<view-name>'';
:-read-view ''<view-name>'';
*write-view ''<view-name>'';
:-write-view ''<view-name>'';
Причем для одной группы можно задавать несколько разных видов view. Сами view настраиваются в  
Причем для одной группы можно задавать несколько разных видов view. Сами view настраиваются в  
  [edit snmp]
  set snmp view ''<view-name>'' (include|exclude)
view ''<view-name>'' (include|exclude);


==Привязка security-model к группе==
==Привязка security-model к группе==
По сути это обозначение какие юзеры к какой группе будут принадлежать. И как следствие какие права будут у каждого юзера.
По сути это обозначение какие юзеры к какой группе будут принадлежать. И как следствие какие права будут у каждого юзера.
  [edit snmp v3 vacm security-to-group security-model (usm | v1 | v2c)]
  set snmp v3 vacm security-to-group security-model (usm | v1 | v2c) security-name ''<user-name>'' group ''<group-name>''
security-name security-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]>''.


Строка 68: Строка 64:


Если мы использует v3 + v1/v2, то нужно сконфигурировать разные security-name для разных версий.
Если мы использует v3 + v1/v2, то нужно сконфигурировать разные security-name для разных версий.
==Traps==
==Traps==
В snmpv3 используются traps and informs.
В snmpv3 используются traps and informs.
Строка 74: Строка 71:


===Traps notifications===
===Traps notifications===
  [edit snmp v3]
  set snmp v3 notify ''<name>'' tag ''<tag-name>''
notify ''<name>'' {
set snmp v3 notify ''<name>'' type trap
  tag ''<tag-name>'';
  type trap;


tag-name - это адрес удаленного устройства, которому будет отправлен трап.
tag-name - это tag адреса удаленного устройства, которому будет отправлен трап (''tag-list'' в настройках target-address).


===Trap Notification Filter===
===Trap Notification Filter===
Строка 85: Строка 80:


Фильтруется по MIB-дереву с указанием include/exclude OID.
Фильтруется по MIB-дереву с указанием include/exclude OID.
 
  set snmp v3 notify-filter ''<profile-name>'' oid ''<oid>'' (include | exclude)
  [edit snmp v3 notify-filter ''<profile-name>'']
oid ''<oid>'' (include | exclude);


===Target address===
===Target address===
Строка 104: Строка 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)>'';
Строка 111: Строка 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]
Строка 189: Строка 183:


По дефолту ID = дефолтный IP роутера.  
По дефолту ID = дефолтный IP роутера.  
 
  set snmp engine-id {local engine-id-suffix|use-default-ip-address|use-mac-address}
  [edit snmp]
engine-id {local engine-id-suffix|use-default-ip-address|use-mac-address}
 
use-mac-address - используется mac интерфейса управления.
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 интерфейса управления.

Дополнительная информация