Настройка безопасного SNMP: Community Strings ACL и SNMPv3 USM на Cisco
- Несанкционированное сканирование сети и чтение MIB-дерева коммутатора сторонними хостами по SNMPv1/v2c.
- В логах фиксируются ошибки
%SNMP-3-AUTHFAIL: Authentication failure for SNMP request. - Передача учетных строк (Community Strings) в открытом виде через незащищенные сетевые сегменты.
- Отказ систем мониторинга (Zabbix, Prometheus, Nagios) в опросе метрик из-за сбоев аутентификации SNMPv3.
1. Безопасная настройка SNMPv2c с ограничением по ACL (Legacy)
Если оборудование не поддерживает SNMPv3, ограничьте доступ только доверенным IP-адресам серверов мониторинга:
Switch# configure terminal
# Создание ACL для хостов мониторинга
Switch(config)# ip access-list standard SNMP_MANAGERS_ACL
Switch(config-std-nacl)# permit host 10.100.1.50
Switch(config-std-nacl)# permit host 10.100.1.51
Switch(config-std-nacl)# deny any log
Switch(config-std-nacl)# exit
# Привязка Community String к ACL (только Read-Only)
Switch(config)# snmp-server community Complex_R0_String#2026 RO SNMP_MANAGERS_ACL2. Конфигурация защищенного SNMPv3 (Аутентификация SHA + Шифрование AES)
# 1. Определение SNMP-представления (View) для ограничения дерева OID
Switch(config)# snmp-server view MONITOR_VIEW iso included
# 2. Создание группы с уровнем безопасности priv (Auth + Encryption)
Switch(config)# snmp-server group MONITOR_GRP v3 priv read MONITOR_VIEW access SNMP_MANAGERS_ACL
# 3. Создание пользователя USM с алгоритмами SHA-256 и AES-128
Switch(config)# snmp-server user zabbix_agent MONITOR_GRP v3 auth sha StrongAuthPasswd123 priv aes 128 StrongPrivPasswd456 access SNMP_MANAGERS_ACL3. Отключение небезопасных версий и тестовый опрос
# Проверка пользователей SNMPv3
Switch# show snmp user
Switch# show snmp group4. Тестирование с сервера мониторинга Linux
snmpwalk -v3 -l authPriv -u zabbix_agent -a SHA -A "StrongAuthPasswd123" -x AES -X "StrongPrivPasswd456" 10.100.1.1 1.3.6.1.2.1.1.1 Частые вопросы (FAQ)
В чем разница между уровнями безопасности SNMPv3: noAuthNoPriv, authNoPriv и authPriv?
noAuthNoPriv — без пароля и шифрования (только по имени пользователя); authNoPriv — проверка подлинности по паролю (MD5/SHA) без шифрования данных; authPriv — обязательная аутентификация и сквозное шифрование всего трафика (DES/AES).
Почему команда show run не отображает пароли пользователя SNMPv3?
В целях безопасности Cisco IOS не сохраняет пароли SNMPv3 в открытом виде, а вычисляет и хранит локализованный криптографический хэш (EngineID-based auth/priv keys).
Как заблокировать небезопасные стандартные community strings 'public' и 'private'?
Удалите их явными командами: no snmp-server community public и no snmp-server community private, после чего примените новые сложные строки с привязкой к ACL.
Что делать при ошибке 'Unknown user name' при опросе SNMPv3?
Убедитесь, что snmp-server engineID совпадает с ожидаемым сервером мониторинга, а пользователь создан в правильной контекстной группе с правами на чтение MIB-представления (View).