Настройка SNMP

SNMP (англ. Simple Network Management Protocol — простой протокол сетевого управления) — протокол, предназначенный для управления устройствами в IP-сетях на основе архитектур TCP/UDP. SNMP предоставляет данные для управления в виде переменных, описывающих конфигурацию управляемой системы.

Алгоритм настройки

Шаг

Описание

Команда

Ключи

1

Включить SNMP-сервер.

scs(config)# snmp-server


2

Определить community для доступа по протоколу SNMPv2c.

scs(config)# snmp-server [ encrypted ] community <COMMUNITY> [ <TYPE> ]
[ { <IP-ADDR> | <IPV6-ADDR> } ]
[ client-list <OBJ-GROUP-NETWORK-NAME> ]
 [ <VERSION> ] [ view <VIEW-NAME> ] [ vrf <VRF> ] [ encrypt ]

encrypted — при добавлении данного параметра, ввод названия сообщества <COMMUNITY> требуется производить в зашифрованном виде.

<COMMUNITY> — сообщество для доступа по протоколу SNMP; 

<TYPE> — уровень доступа:

  • ro — доступ только для чтения;
  • rw — доступ для чтения и записи.

<IP-ADDR> — IP-адрес клиента, которому предоставлен доступ, задается в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255];

<IPV6-ADDR> — IPv6-адрес клиента, задается в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF];

<OBJ-GROUP-NETWORK-NAME> — имя профиля IP-адресов, от которых обрабатываются snmp-запросы, задается строкой до 31 символа;

<VERSION> — версия SNMP, поддерживаемая данным community, принимает значения v1 или v2c;

<VIEW-NAME> — имя профиля SNMP view, задаётся строкой до 31 символа;

<VRF> — имя экземпляра VRF, из которого будет разрешен доступ, задается строкой до 31 символа.

encrypt — при добавлении данного параметра, название сообщества <COMMUNITY> будет отображаться в конфигурации устройства в зашифрованном виде.

3

Устанавливает значение переменной SNMP, содержащей контактную информацию.

scs(config)# snmp-server contact <CONTACT>

<CONTACT> — контактная информация, задается строкой до 255 символов.

4

Установить значение кода DSCP для использования в IP-заголовке исходящих пакетов SNMP-сервера (не обязательно).

scs(config)# snmp-server dscp <DSCP>

<DSCP> — значение кода DSCP, принимает значения в диапазоне [0..63].

Значение по умолчанию: 63.

5

Cоздать SNMPv3-пользователя.

scs(config)# snmp-server user <NAME>

<NAME> — имя пользователя, задается строкой до 31 символа.

6

Устанавливает значение переменной SNMP, содержащей информацию о расположении оборудования.

scs(config)# snmp-server location <LOCATION>

<LOCATION> — информация о расположении оборудования, задается строкой до 255 символов.

7

Определить уровень доступа пользователя по протоколу SNMPv3.

scs(config-snmp-user)# access <TYPE>

<TYPE> — уровень доступа:

  • ro — доступ только для чтения;
  • rw — доступ для чтения и записи.

8

Определить режим безопасности пользователя по протоколу SNMPv3.

scs(config-snmp-user)# authentication access <TYPE>

<TYPE> — режим безопасности:

  • auth — используется только аутентификация;
  • priv — используется аутентификация и шифрование данных.

9

Определить алгоритм аутентификации SNMPv3-запросов.

scs(config-snmp-user)# authentication algorithm <ALGORITHM>

<ALGORITHM> — алгоритм шифрования:

  • md 5 — пароль шифруется по алгоритму md5;
  • sha 1 — пароль шифруется по алгоритму sha1.

10

Установить пароль для аутентификации SNMPv3-запросов.

scs(config-snmp-user)# authentication key ascii-text
{ <CLEAR-TEXT> | encrypted <ENCRYPTED-TEXT> }

<CLEAR-TEXT> — пароль, задается строкой от 8 до 16 символов;

  • encrypted — при указании команды задается зашифрованный пароль:

<ENCRYPTED-TEXT> — зашифрованный пароль размером от 8 байт до 16 байт (от 16 до 32 символов) в шестнадцатеричном формате (0xYYYY...) или (YYYY...).

11

Активировать фильтрацию и установить профиль IP-адресов, с которых могут приниматься SNMPv3-пакеты с данным именем SNMPv3-пользователя.

scs(config-snmp-user)# client-list <NAME>

<NAME> — имя ранее сознанной object-group, задается строкой до 31 символа.

12Указать vrf для SNMPv3-пользователя (не обязательно).scs-21(config-snmp-user)# ip vrf forwarding <VRF><VRF> — имя экземпляра VRF, из которого будет разрешен доступ, задается строкой до 31 символа.

13

Активировать фильтрацию и установить IPv4/IPv6-адрес, которому предоставлен доступ к консольному серверу под данным SNMPv3-пользователем.

scs(config-snmp-user)# ip address <ADDR>

<ADDR> — IP-адрес клиента, которому предоставлен доступ, задается в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255].

scs(config-snmp-user)# ipv6 address <ADDR>

<IPV6-ADDR> — IPv6-адрес клиента, задается в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF].

14

Активировать SNMPv3-пользователя.

scs(config-snmp-user)# enable

Значение по умолчанию: процесс выключен.

15

Определить алгоритм шифрования передаваемых данных.

scs(config-snmp-user)# privacy algorithm <ALGORITHM>

<ALGORITHM> — алгоритм шифрования:

  • aes 128 — использовать алгоритм шифрования AES-128;
  • des — использовать алгоритм шифрования DES.

16

Установить пароль для шифрования передаваемых данных.

scs(config-snmp-user)# privacy key ascii-text
{ <CLEAR-TEXT> | encrypted <ENCRYPTED-TEXT> }

<CLEAR-TEXT> — пароль, задается строкой от 8 до 16 символов;

<ENCRYPTED-TEXT> — зашифрованный пароль размером от 8 байт до 16 байт (от 16 до 32 символов) в шестнадцатеричном формате (0xYYYY...) или (YYYY...).

17

Установить профиль snmp view, позволяющий разрешать или запрещать доступ к тем или иным OID для user.

scs(config-snmp-user)# view <VIEW-NAME>

<VIEW-NAME> — имя SNMP view профиля, на основании которого обеспечивается доступ к OID, задается строкой до 31 символа.

18

Включить передачу SNMP-уведомлений на указанный IP-адрес и перейти в режим настройки SNMP-уведомлений.

scs(config)# snmp-server host
{ <IP-ADDR> | <IPV6-ADDR> } [vrf <VRF>]

<IP-ADDR> — IP-адрес, задается в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255].

<IPV6-ADDR> — IPv6-адрес, задается в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF];

<VRF> — имя экземпляра VRF, в котором находится коллектор SNMP-уведомлений, задается строкой до 31 символа.

19

Определить порт коллектора SNMP-уведомлений на удаленном сервере (не обязательно).

scs(config-snmp-host)# port <PORT>

<PORT> — номер UDP-порта, указывается в диапазоне [1..65535].

Значение по умолчанию: 162.

20Установить IP-адрес для отправки уведомлений на удаленный сервер.scs(config-snmp-host)# source-address { <ADDR> | <IPV6-ADDR> | object-group <NETWORK_OBJ_GROUP_NAME> }

<ADDR> — IP-адрес, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255];

<IPV6-ADDR> — IPv6-адрес, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF];

<NETWORK_OBJ_GROUP_NAME> — список адресов, которые будут использоваться в качестве source address.

Значение по умолчанию: IPv4/IPv6 — адрес интерфейса, ближайшего к удаленному SNMP-серверу.

21Установить интерфейс консольного сервера, IPv4/IPv6-адрес которого будет использоваться для отправки уведомлений на удаленный сервер.scs(config-snmp-host)# source-interface  <IF>  

<IF> — имя интерфейса устройства, задается в виде, описанном в разделе 
Типы и порядок именования интерфейсов консольного сервера;


22

Разрешить отправку SNMP-уведомлений различных типов.

scs(config)# snmp-server enable traps <TYPE>

<TYPE> — тип фильтруемых сообщений. Может принимать значения:

config, entry, entry-sensor, environment, envmon, files-operations, flash, flash-operations, interfaces, links, ports, screens, snmp, syslog.

Дополнительные параметры зависят от типа фильтра. См. справочник команд CLI.

23

Создать профиль snmp view, позволяющий разрешать или запрещать доступ к тем или иным OID для community (SNMPv2) и user (SNMPv3).

scs(config)# snmp-server view  <VIEW-NAME> 

<VIEW-NAME> — имя профиля SNMP view, задается строкой до 31 символа.

Пример настройки

Задача:

Настроить SNMPv3-сервер с аутентификацией и шифрованием данных для пользователя admin. IP-адрес консольного сервера — 192.168.52.8, IP-адрес сервера — 192.168.52.41.

Решение:

Предварительно нужно выполнить следующие действия:

Основной этап конфигурирования:

Включаем SNMP-сервер:

scs(config)# snmp-server

Создаем пользователя SNMPv3:

scs(config)# snmp-server user admin

Определим режим безопасности:

scs(snmp-user)# authentication access priv

Определим алгоритм аутентификации для SNMPv3-запросов:

scs(snmp-user)# authentication algorithm md5

Установим пароль для аутентификации SNMPv3-запросов:

scs(snmp-user)# authentication key ascii-text 123456789 

Определим алгоритм шифрования передаваемых данных:

scs(snmp-user)# privacy algorithm aes128

Установим пароль для шифрования передаваемых данных:

scs(snmp-user)# privacy key ascii-text 123456789

Активируем SNMPv3-пользователя:

scs(snmp-user)# enable

Определяем сервер-приемник Trap-PDU-сообщений:

scs(config)# snmp-server host 192.168.52.41

Настройка Syslog

Syslog (англ. System Log — системный журнал) — стандарт отправки и регистрации сообщений о происходящих в системе событиях, используется в сетях, работающих по протоколу IP.

Алгоритм настройки

Шаг

Описание

Команда

Ключи

1

Включить отправку syslog-сообщений на snmp-сервер в виде snmp-trap.

scs(config)# syslog snmp


2Активировать или деактивировать отправку на snmp-сервер событий работы отдельных процессов консольного сервера (не обязательно).

scs(config-syslog-snmp)# match [not] process-name <PROCESS-NAME>

<PROCESS-NAME> — см. в cправочнике команд CLI.

Если описаны разрешающие критерии (match process-name) — логируются только сообщения указанных процессов.

Если указаны запрещающие критерии (match not process-name) — логируются сообщения всех не запрещенных процессов.

По умолчанию разрешено логирование сообщений всех процессов.

3Указать уровень важности сообщений, которые будут отправляться на snmp-сервер.

scs(config-syslog-snmp)# severity <SEVERITY>

<SEVERITY> — уровень важности сообщения, принимает значения (в порядке убывания важности):

  • emerg — в системе произошла критическая ошибка, система неработоспособна;
  • alert — сигналы тревоги, необходимо немедленное вмешательство персонала;
  • crit — критическое состояние системы, сообщение о событии;
  • error — сообщения об ошибках;
  • warning — предупреждения, неаварийные сообщения;
  • notice — сообщения о важных системных событиях;
  • info — информационные сообщения системы;
  • debug — отладочные сообщения, предоставляют пользователю информацию для корректной настройки системы;
  • none — отключает вывод syslog-сообщений.

4

Включить отображение syslog-сообщений при удаленных подключениях (Telnet, SSH) (не обязательно).

scs(config)# syslog monitor


5Активировать или деактивировать отображение при удаленных подключениях событий работы отдельных процессов консольного сервера (не обязательно).

scs(config-syslog-monitor)# match [not] process-name <PROCESS-NAME>

<PROCESS-NAME> — описано во 2 пункте.

6Указать уровень важности сообщений, которые будут отображаться при удаленных подключениях.

scs(config-syslog-monitor)# severity <SEVERITY>

<SEVERITY> — описано в 3 пункте.

7Включить отображение syslog-сообщений при консольном подключении (не обязательно).scs(config)# syslog console
8Активировать или деактивировать отображение при консольном подключении событий работы отдельных процессов консольного сервера (не обязательно).

scs(config-syslog-console)# match [not] process-name <PROCESS-NAME>

<PROCESS-NAME> — описано во 2 пункте.

9Указать уровень важности сообщений, которые будут отображаться при консольном подключении.

scs(config-syslog-console)# severity <SEVERITY>

<SEVERITY> — описано в 3 пункте.

10Указать категорию сообщений, которые будут сохраняться в локальный syslog-файл или отправляться на удаленный syslog-сервер.scs(config)# syslog facility <FACILITY> <FACILITY> — категория сообщений, принимает значения [local0..local7].

11

Включить сохранение сообщений syslog в указанный файл журнала (при необходимости ведения локального syslog-файла).

scs(config)# syslog file <NAME> 

<NAME> — имя файла, в который будет производиться запись сообщений заданного уровня, задается строкой до 31 символа.

12Активировать или деактивировать сохранение в локальный syslog-файл событий работы отдельных процессов консольного сервера (не обязательно).

scs(config-syslog-file)# match [not] process-name <PROCESS-NAME>

<PROCESS-NAME> — описано во 2 пункте.

13Указать уровень важности сообщений, которые будут сохраняться в локальный syslog-файл.

scs(config-syslog-file)# severity <SEVERITY>

<SEVERITY> — описано в 3 пункте.

14

Указать максимальный размер файла журнала (не обязательно).

scs(config)# syslog file-size <SIZE>

<SIZE> — размер файла, принимает значение [10..10000000] Кбайт.

15

Задать максимальное количество файлов, сохраняемых при ротации (не обязательно).

scs(config)# syslog max-files <NUM>

<NUM> — максимальное количество файлов, принимает значения [1.. 1000].

16

Включить передачу сообщений syslog на удаленный syslog-сервер (при необходимости отправки сообщений на удаленный syslog-сервер).

scs(config)#syslog host <HOSTNAME>

<HOSTNAME> — наименование syslog-сервера, задается строкой до 31 символа. Используется только для идентификации сервера при конфигурировании. Значение «all» используется в команде no syslog host для удаления всех syslog-серверов;

17

Указать что использовать в качестве значения поля HOSTNAME при передачи сообщений на удаленный syslog-сервер (не обязательно).

scs(config-syslog-host)# identifier { fqdn | ip | hostname  }

fqdn —  использовать в качестве значения полное имя устройства: hostname.domain_name. Используется только вместе с настроенным domain name;

ip — использовать в качестве значения IP-адрес интерфейса устройства. Если не указан source-address, то в качестве значения будет использован IP-адрес интерфейса, за которым находится удаленный syslog-сервер;

hostname — использовать в качестве значения имя устройства.

18Указать IPv4/IPv6-адрес удаленного syslog-сервера.scs(config-syslog-host)# remote-address { <ADDR> | <IPV6-ADDR> }

<ADDR> — IP-адрес, задается в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255];

<IPV6-ADDR> — IPv6-адрес, задается в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF].

19Указать IPv4/IPv6-адрес консольного сервера, от которого будут отправляться пакеты на удаленный syslog-сервер (не обязательно).scs(config-syslog-host)# source-address { <ADDR> | <IPV6-ADDR> | object-group <NETWORK_OBJ_GROUP_NAME> }

<ADDR> — IP-адрес, задается в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255];

<IPV6-ADDR> — IPv6-адрес, задается в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF];

<NETWORK_OBJ_GROUP_NAME> — список адресов, которые будут использоваться в качестве source address;

Значение по умолчанию: IPv4/IPv6-адрес интерфейса, с которого отправляется пакеты на удаленный syslog-сервер.

20Указать транспортный протокол для передачи пакетов на удаленный syslog-сервер (не обязательно).scs(config-syslog-host)# transport { tcp | udp }

<VRF> — имя экземпляра VRF, в котором доступен удаленный syslog-сервер, задается строкой до 31 символа;

Значение по умолчанию: отсутствует (глобальная таблица маршрутизации).

21Указать имя экземпляра VRF, в рамках которого будут отправляться пакеты на удаленный syslog-сервер (не обязательно).scs(config-syslog-host)# vrf <VRF>
22Указать номер TCP/UDP-порта, на который будут отправляться пакеты с syslog-сообщениями (не обязательно).scs(config-syslog-host)# port <PORT>
<PORT> — номер TCP/UDP-порта, на который будут отправляться пакеты с syslog-сообщениями.

Значение по умолчанию: 514.

23Активировать или деактивировать отправку на удаленный syslog-сервер событий работы отдельных процессов консольного сервера (не обязательно).

scs(config-syslog-host)# match [not] process-name <PROCESS-NAME>

<PROCESS-NAME> — описано во 2 пункте.

24Указать уровень важности сообщений, которые будут сохраняться в локальный syslog-файл.

scs(config-syslog-host)# severity <SEVERITY>

<SEVERITY> — описано в 3 пункте.

25

Включить вывод отладочных сообщений во время загрузки устройства (не обязательно).

scs(config)#syslog reload debugging


26

Включить процесс логирования введенных команд пользователя на локальный syslog-сервер (не обязательно).

scs(config)# syslog cli-commands


27

Включить нумерацию сообщений (не обязательно).

scs(config)#syslog sequence-numbers


28

Включить точность даты сообщений до миллисекунд (не обязательно).

scs(config)#syslog timestamp msec


29Включить отображение имени процесса, который сформировал сообщение (не обязательно).scs(config)#syslog program-name

30

Включить регистрацию неудачных аутентификаций (не обязательно).

scs(config)#logging login on-failure


31

Включить регистрацию изменений настроек системы аудита (не обязательно).

scs(config)#logging syslog configuration


32

Включить регистрацию изменений настроек пользователя (не обязательно).

scs(config)#logging userinfo


Пример настройки

Задача:

Настроить отправку сообщений для следующих системных событий:

IP-адрес консольного сервера — 192.168.52.8, IP-адрес Syslog-сервера — 192.168.52.41. Использовать параметры по умолчанию для отправки сообщений — протокол UDP порт 514.

Решение:

Предварительно нужно выполнить следующие действия:

Основной этап конфигурирования:

Создаем файл на консольном сервере для системного журнала, уровень сообщений для журналирования — info:

scs(config)# syslog file tmpsys:syslog/scs
scs(config-syslog-file)# severity info
scs(config-syslog-file)# exit

Указываем IP адрес и параметры удаленного syslog-сервера:

scs(config)# syslog host SERVER
scs(config-syslog-host)# remote-address 192.168.52.41
scs(config-syslog-host)# severity info
scs(config-syslog-host)# exit

Задаем логирование неудачных попыток аутентификации:

scs(config)# logging login on-failure

Задаем логирование изменений конфигурации syslog:

scs(config)# logging syslog configuration

Задаем логирование старта/остановки системных процессов:

scs(config)# logging service start-stop

Задаем логирование внесений изменений в профиль пользователей:

scs(config)# logging userinfo

Изменения конфигурации вступят в действие после применения:

scs# commit
Configuration has been successfully committed
scs# confirm
Configuration has been successfully confirmed

Посмотреть текущую конфигурацию системного журнала:

scs# show syslog configuration

Посмотреть записи системного журнала:

scs# show syslog scs

Проверка целостности

Проверка целостности подразумевает проверку целостности хранимых исполняемых файлов.

Процесс настройки

Шаг

Описание

Команда

Ключи

1

Запустить проверку целостности системы

scs# verify filesystem <detailed>

detailed — детальный вывод информации в консоль.

Пример конфигурации

Задача:

Проверить целостность файловой системы.

Решение:

Запускаем проверку целостности:

scs# verify filesystem
Filesystem Successfully Verified

Настройка архивации конфигурации консольного сервера

На устройствах SCS предусмотрена функция локального и/или удаленного копирования конфигурации по таймеру или при применении конфигурации.

Процесс настройки

Шаг

Описание

Команда

Ключи

1

Перейти в режим настройки параметров резервирования конфигурации.

scs(config)# archive


2

Установить тип сохранения резервных конфигураций консольного сервера
(не обязательно).

scs(config-ahchive)# type <TYPE>

<TYPE> — тип сохранения резервных конфигураций консольного сервера. Принимает значения:

  • local;
  • remote;
  • both.

Значение по умолчанию: remote.

3

Включить режим резервирования конфигурации по таймеру
(не обязательно).

scs(config-ahchive)# auto


4

Включить режим резервирования конфигурации после каждого успешного применения конфигурации
(не обязательно).

scs(config-ahchive)# by-commit


5

Указать путь для удаленного копирования конфигураций консольного сервера
(обязательно для типов remote и both).

scs(config-ahchive)# path <PATH>

<PATH> — определяет протокол, адрес сервера, расположение и префикс имени файла на сервере.

6

Задать период времени для автоматического резервирования конфигурации (не обязательно, актуально только для режима auto).

scs(config-ahchive)# time-period <TIME>

<TIME> — периодичность автоматического резервирования конфигурации, принимает значение в минутах [1..525600].

Значение по умолчанию: 720 минут.

7

Задать максимальное количество локально сохраняемых резервных копий конфигураций
(не обязательно, актуально при типах local и both).

scs(config-ahchive)# count-backup <NUM>

<NUM> — максимальное количество локально сохраняемых резервных копий конфигураций. Принимает значения в диапазоне [1..100].

Значение по умолчанию: 1.

Пример конфигурации

Задача:

Настроить локальное и удаленное резервное копирование конфигурации консольного сервера 1 раз в сутки и при успешном изменении конфигурации. Удаленные копии необходимо отправлять на tftp-сервер 172.16.252.77 в подпапку scs-example. Максимальное количество локальных копий — 30.

Решение:

Для успешной работы удаленной архивации конфигураций, между SCS и сервером должна быть организована IP-связность, настроены разрешения на прохождение tftp-трафика по сети и сохранения файлов на сервере.

Основной этап конфигурирования:

Перейти в режим конфигурирования резервного копирования конфигураций:

scs# configure
scs(config)# archive

Задать режим локального и удаленного резервного копирования конфигурации:

scs(config-archive)# type both

Настроить путь для удаленного копирования конфигураций и максимальное количество локальных резервных копий:

scs(config-archive)# path tftp://172.16.252.77:/scs-example/scs-example.cfg
scs(config-archive)# count-backup 30

Задать интервал резервного копирования конфигурации в случае отсутствия изменений:

scs(config-archive)# time-period 1440

Включить режимы архивации конфигурации консольного сервера по таймеру и при успешном изменении конфигурации:

scs(config-archive)# auto
scs(config-archive)# by-commit

После применения данной конфигурации 1 раз в сутки и при каждом успешном изменении конфигурации консольного сервера на tftp-сервер будет отправляться конфигурационный файл с именем вида "scs-exampleYYYYMMDD_HHMMSS.cfg". Также на самом сервер в разделе flash:backup/ будет создаваться файл с именем вида "config_YYYYMMDD_HHMMSS". Когда в разделе flash:backup/ накопится 30 таких файлов, при создании нового будет удаляться наиболее старый. Посмотреть можно командой:

scs(config)# show archive configuration