Библиотека сайта rus-linux.net
Сетевые сервисы: SNMP
Обзор
SNMP (Simple Network Management Protocol) был разработан, чтобы позволить гетерогенным системам и оборудованию общаться друг с другом, обмениваться данными отчетоа и менять параметры настройки по сети TCP-IP. Например, SNMP-устройство (типа маршрутизатора от Cisco) может быть проверено/настроено от пользователя SNMP, и Вы можете легко писать сценарии для автоматизации разных процессов. К сожалению SNMP не имеет никакой защиты. SNMP v1, первоначально предложенный в RFC 1157 (May 1990) и раздел 8 (Security Considerations) сформулированы просто: "Вопросы безопасности здесь пока не обсуждаются.". В 1992/1993 вышел SNMP v2, однако рассмотрение защиты было гораздо позже, но защита оказалась легко снимаемой. Таким образом, мы имеем дело сегодня с SNMP v2 и никакой защитой.
В настоящее время единственный способ защищать SNMP-устройства состоит из установки имени семейства во что-то неожиданное (но очень просто найти имя, используя сниффинг), и firewall/filter SNMP так, чтобы только хосты, которые должны разговаривать с друг другом, могли использовать такую связь. Если грамотно защитить и использовать SNMP, администрирование сети станет проще.
По умолчанию имена семейств в SNMP "public" (так обстоит дело в Linux, NT и других системах), смените его на что-то свое, неожиданное. Зная имя семейства можно выполнить "snmpwalk" и захватить контроль над Вашей сеткой. SNMP работает через UDP на портах 161 и 162; блокируйте их как только можно.
Дополнительное использование IPSEC (или другого VPN-программного обеспечения) может значительно уменьшать риск сниффинга. RFC для SNMP v3 существенно усиливает защиту (особенно RFC 2274, январь 1998).
Не имеется никаких специфических проблем с cu-snmpd на se, кроме общих SNMP проблем, которые я описал. Инструментальные средства и утилиты cu-snmp поддерживают только SNMP v1 и SNMP v2, так что будьте внимательны при использовании их в открытой сети.
ipfwadm -I -a accept -P udp -S 10.0.0.0/8 -D 0.0.0.0/0 161:162 ipfwadm -I -a accept -P udp -S some.trusted.host -D 0.0.0.0/0 161:162 ipfwadm -I -a deny -P udp -S 0.0.0.0/0 -D 0.0.0.0/0 161:162
или
ipchains -A input -p udp -j ACCEPT -s 10.0.0.0/8 -d 0.0.0.0/0 161:162 ipchains -A input -p udp -j ACCEPT -s some.trusted.host -d 0.0.0.0/0 161:162 ipchains -A input -p udp -j DENY -s 0.0.0.0/0 -d 0.0.0.0/0 161:162
Written by Kurt Seifried