Инструменты пользователя

Инструменты сайта


snmp

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

snmp [2018/07/31 02:20] (текущий)
Строка 1: Строка 1:
 +====== Примеры использования SNMP ======
  
 +~~Title: SNMP ~~
 +{{htmlmetatags>​
 +metatag-description=(Архитектура SNMP, порты, ловушки (trap). Практические примеры использования SNMP с PHP для мониторинга устройств. )
 +}}
 +
 +**SNMP** (Simple Network Management Protocol - простой протокол управления сетью) - это протокол управления сетями связи на основе архитектуры TCP/IP, седьмого уровня (уровень приложений) семиуровневой модели [[OSI]]. SNMP дает возможность станциям управления сетью читать и изменять настройки шлюзов,​ маршрутизаторов,​ коммутаторов и других сетевых устройств. Используйте SNMP для настройки системных характеристик для правильной работы,​контроля характеристик и обнаружения потенциальных проблем в коммутаторе,​ группе коммутаторов или сети.
 +
 +**Используемые порты: 161/​UDP,​162/​UDP**
 +
 +
 +Ссылки:​
 +  * [[ПО для мониторинга компьютерной сети]]
 +  * [[monitoring_oborudovanija_cisco_pri_pomoschi_protokola_snmp#​nastrojka_snmp_na_cisco_as53|Настройка SNMP на Cisco as53..]]
 +  * [[http://​rus-linux.net/​nlib.php?​name=/​MyLDP/​admin/​SNMP.html|20-ти минутный урок по SNMP - автоматизация системного администрирования при помощи Perl]]
 +  * A graphical MIB browser ([[http://​net-snmp.sourceforge.net/​images/​tkmib.jpg|tkmib]]),​ using Tk/perl. (aptitude install tkmib)
 +  * [[https://​www.manageengine.com/​products/​mibbrowser-free-tool/​|Free SNMP MIB Browser]] All OS
 +
 +
 +**SNMP-trap (ловушки SNMP) Traps** - это аварийные сообщения,​ сообщающие о событиях,​ происходящих в коммутаторе. События могут быть такими серьезными,​ как перезапуск (кто-нибудь случайно выключил коммутатор) или менее, как например,​ изменение статуса порта. Коммутатор создает сообщения «traps» и отправляет их к «trap» получателю (или сетевому менеджеру). Обычные «traps» содержат сообщение об ошибке аутентификации Authentication Failure , изменении топологии сети Topology Change и широковещательном шторме Broadcast\Multicast Storm.
 +===== SNMP безопасность =====
 +
 +**К сожалению**,​ наиболее часто используемая версия 1 протокола SNMP имеет довольно слабую схему аутентификации,​ основанную на использовании “строки сообщества”. Это связано с тем, что фиксированный пароль передается по сети в открытом виде. По возможности **старайтесь использовать 2-ю версию протокола SNMP**, которая поддерживает схему проверки подлинности выборки на основе алгоритма MD5 и позволяет ограничить доступ к различной управляющей информации.
 +
 +Протокол SNMP версии 1 не подходит для использования в общедоступной сети Интернет по следующим причинам:​
 +  * Он использует незашифрованные строки проверки подлинности.
 +  * В большинстве реализаций SNMP такие строки отправляются неоднократно как часть периодических опросов.
 +  * Он плохо защищен от спуфинга и является протоколом транзакций на основе датаграмм.
 +
 +====== Структура MIB. SMI. OID ======
 +
 +  * **MIB** (Management Information Base) — база данных информации управления,​ используемая в процессе управления сетью в качестве модели управляемого объекта в архитектуре агент-менеджер. В частности используется протоколом [[SNMP]].
 +
 +MIB файл содержит информацию о различных объектах удаленного устройства. MIB определяет текстовое имя управляемого объекта и объясняет его значение.
 +
 +В агенте может быть реализовано много MIB, но во всех агентах реализована конкретная MIB, которая называется [[snmp#​mib-ii|MIB-II]] ([[RFC]] 1213). Этот стандарт определяет переменные для таких параметров,​ как статистика интерфейса (скорость интерфейса,​ MTU, количество отправленных октетов1,​ количество принятых октетов и т.д.), а также различных параметров,​ относящихся к самой системе (местоположение системы,​ контактные сведения и т.д.) **Основная цель MIB-II – предоставить общую управляющую информацию TCP/​IP.** ​
 +
 +  * **SMI** (The Structure of Management Information). Струк­ту­ра ин­фор­ма­ции для управ­ле­ния точ­но оп­ре­де­ля­ет,​ как управ­ляе­мым объ­ек­там при­сваи­ва­ют­ся име­на,​ и ука­зы­ва­ет свя­зан­ные с ни­ми ти­пы дан­ных.
 +  * **OID** (Object Identifier) уникальный иден­ти­фи­ка­тор объ­ек­та.
 +
 +**Управ­ляе­мые объ­ек­ты (OID) ор­га­ни­зо­ва­ны в  дре­во­вид­ную ие­рар­хию.** Со­сре­до­то­чим­ся на суб­де­ре­ве so(1).org(3).dod(6).in­ternet(1),​ ко­то­рое в фор­ме OID пред­став­ля­ет­ся как 1.3.6.1 или iso.org.dod.internet. У ка­ж­до­го управ­ляе­мо­го объ­ек­та есть циф­ро­вой иден­ти­фи­ка­тор OID и со­от­вет­ст­вую­щее тек­сто­вое имя. Обо­зна­че­ние в ви­де раз­де­лен­ных точ­ка­ми чи­сел ис­поль­зу­ет­ся для пред­став­ле­ния управ­ляе­мо­го объ­ек­та внут­ри аген­та;​ тек­сто­вое имя, как до­мен­ное имя, со­от­вет­ст­вую­щее IP- ад­ре­су,​ из­бав­ля­ет лю­дей от не­об­хо­ди­мо­сти за­по­ми­нать длин­ные,​ слож­ные стро­ки чи­сел.
 +
 +  * Ветвь **directory** в на­стоя­щее вре­мя не ис­поль­зу­ет­ся.
 +  * Ветвь **management (или mgmt)**, оп­ре­де­ля­ет стан­дарт­ный на­бор управ­ляе­мых объ­ек­тов Ин­тер­не­та.
 +  * Ветвь **experimental** за­ре­зер­ви­ро­ва­на для це­лей тес­ти­ро­ва­ния и ис­сле­до­ва­ния.
 +  * Объ­ек­ты вет­ви **private** оп­ре­де­ля­ют­ся в од­но­сто­рон­нем по­ряд­ке,​ то есть за оп­ре­де­ле­ние объ­ек­тов этой вет­ви лю­ди и ор­га­ни­за­ции от­ве­ча­ют са­ми.
 +
 +{{ ::​snmp_oid_mib_tree.png?​nolink |}}
 +
 +В на­стоя­щее вре­мя в суб­де­ре­ве private(4) есть од­на ветвь enterprises(1). Она ис­поль­зу­ет­ся для то­го, что­бы пре­дос­та­вить про­из­во­ди­те­лям ап­па­рат­но­го и про­грамм­ но­го обес­пе­че­ния воз­мож­ность оп­ре­де­лить свои соб­ст­вен­ные ча­стные объ­ек­ты для лю­бо­го ти­па ап­па­рат­ных или про­грамм­ных средств,​ ко­то­ры­ми они хо­тят управ­лять при по­мо­щи SNMP. [[http://​www.iana.org/​assignments/​enterprise-numbers/​enterprise-numbers|SMI Network Management Private Enterprise Codes]]: D-Link (171), Cisco(9), Microsoft (311).
 +
 +
 +====== MIB-II ======
 +
 +Основная цель MIB-II – предоставить общую управляющую информацию TCP/IP. MIB-II – очень важ­ная груп­па управ­ле­ния,​ по­то­му что **ка­ж­дое уст­рой­ст­во,​ под­дер­жи­ваю­щее SNMP, долж­но так­же под­дер­жи­вать MIB-II**. ​
 +
 +MIB-II оп­ре­де­ле­на как iso.org.dod.internet.mgmt.1,​ или 1.3.6.1.2.1.
 +
 +{{ ::​mib-ii.gif?​nolink |}}
 +
 +  * [[https://​www.zabbix.com/​documentation/​3.2/​ru/​manual/​config/​items/​itemtypes/​snmp/​special_mibs|Special OIDs]]
 +
 +^Опи­са­ние групп MIB-II^^^^
 +^№ ^Имя суб­де­ре­ва^OID^Опи­са­ние^
 +|1|system |1.3.6.1.2.1.1 |Оп­ре­де­ля­ет спи­сок объ­ек­тов,​ от­но­ся­щих­ся к ра­бо­те сис­те­мы,​ та­ких как вре­мя ра­бо­ты сис­те­мы,​ кон­такт­ная ин­фор­ма­ция и имя сис­те­мы|
 +|2|interfaces |1.3.6.1.2.1.2 |От­сле­жи­ва­ет со­стоя­ние ка­ж­до­го ин­тер­фей­са на управ­ляе­мой сис­те­ме. Груп­па interfaces от­ сле­жи­ва­ет,​ ка­кие ин­тер­фей­сы ра­бо­та­ют и не ра­бо­та­ют,​ и та­кие па­ра­мет­ры,​ как ко­ли­че­ст­во от­прав­лен­ных и по­лу­чен­ных ок­те­тов,​ оши­бок и по­терь па­ке­тов и т. д.|
 +|3|at |1.3.6.1.2.1.3 |Груп­па транс­ля­ции ад­ре­сов (at) ис­клю­че­на и  пре­дос­тав­ля­ет­cя толь­ко для об­рат­ной со­вмес­ти­мо­сти|
 +|4|ip |1.3.6.1.2.1.4 |От­сле­жи­ва­ет мно­гие ас­пек­ты IP, в том чис­ле IP-мар­шру­ти­за­цию|
 +|5|icmp |1.3.6.1.2.1.5 |От­сле­жи­ва­ет ошиб­ки,​ по­те­ри па­ке­тов ICMP и т. д.|
 +|6|tcp |1.3.6.1.2.1.6 |По­ми­мо про­че­го от­сле­жи­ва­ет со­стоя­ние TCP- со­еди­не­ния (на­при­мер,​ closed (за­кры­то),​ listen(порт про­слу­ши­ва­ет­ся),​ synSent (от­прав­лен па­кет syn) и т. д.)|
 +|7|udp |1.3.6.1.2.1.7 |От­сле­жи­ва­ет ста­ти­сти­ку UDP, вхо­дя­щие и ис­хо­дя­щие да­та­грам­мы и т. д.|
 +|8|egp |1.3.6.1.2.1.8 |От­сле­жи­ва­ет раз­лич­ную ста­ти­сти­ку про­то­ко­ла EGP (Exterior Gateway Protocol) и хра­нит таб­ли­цу со­се­дей EGP|
 +|9|cmot| |
 +|10|transmission |1.3.6.1.2.1.10 |В на­стоя­щее вре­мя в этой груп­пе не оп­ре­де­ле­но объ­ек­тов,​ но дру­гие MIB для кон­крет­ных ка­на­лов пе­ре­да­чи оп­ре­де­ля­ют­ся при по­мо­щи это­го суб­де­ре­ва|
 +|11|snmp |1.3.6.1.2.1.11 |Из­ме­ря­ет про­из­во­ди­тель­ность ба­зо­вой реа­ли­за­ции SNMP на управ­ляе­мой сис­те­ме и от­сле­жи­ва­ет та­кие па­ра­мет­ры,​ как ко­ли­че­ст­во от­прав­лен­ных и по­лу­чен­ных SNMP-па­ке­тов|
 +
 +<note tip>На самом деле интересны только две ветви:
 +1.3.6.1.2.1 = Стандартные MIBы
 +1.3.6.1.4.1 = MIBы специфичные для производителей</​note>​
 +====== Пакет Net-SNMP ======
 +
 +  * Homepage: [[http://​net-snmp.sourceforge.net|Net-SNMP]]
 +  * A graphical MIB browser ([[http://​net-snmp.sourceforge.net/​images/​tkmib.jpg|tkmib]]),​ using Tk/perl. (aptitude install tkmib)
 +
 +Инсталляция Net-SNMP Ubuntu<​file bash>
 +aptitude install snmp snmp-mibs-downloader
 +</​file>​Для загрузки и подключения стандартных MIB к SNMP клиенту выполним две команды<​file bash>
 +/​usr/​bin/​download-mibs
 +sed -i '​s/​^mibs/#​mibs/​g'​ /​etc/​snmp/​snmp.conf
 +</​file>​
 +
 +Инсталляция Net-SNMP CentOS<​file bash>
 +yum install net-snmp-utils net-snmp
 +snmpwalk -v 2c -c public localhost
 +</​file>​
 +
 +Ути­ли­та Net-SNMP **snmpusm** при­ме­ня­ет­ся для управ­ле­ния поль­зо­ва­те­ля­ми SNMPv3.Три ба­зо­вых опе­ра­ции SNMP – это **snmpget**,​ **snmpset** и **snmpwalk**. Их на­зна­че­ние по­нят­но из на­зва­ния:​ snmpget счи­ты­ва­ет зна­че­ние па­ра­мет­ра с управ­ляе­мо­го уст­рой­ст­ва,​ snmpset ус­та­нав­ли­ва­ет зна­че­ние па­ра­мет­ра на уст­рой­ст­ве,​ а snmpwalk счи­ты­ва­ет с уст­рой­ст­ва часть де­ре­ва MIB.
 +
 +====== PHP and SNMP ======
 +
 +Чтобы при помощи языка [[PHP]] ([[http://​php.net/​manual/​ru/​ref.snmp.php|SNMP Функции]]) взаимодействовать с протоколом SNMP, должны быть установлены дополнительный пакеты:​
 +<file bash>
 +aptitude install php5-snmp php5-cli
 +</​file>​
 +
 +<file php snmp1.php>​
 +<?php
 +$opt = getopt("​h:"​);​
 +
 +echo "​IF-MIB::​ifName - The textual name of the interface.\n";​
 +print_r(snmp2_real_walk($opt['​h'​],​ "​public",​ "​IF-MIB::​ifName"​));​
 +?></​file><​file bash>
 +$ php snmp1.php -h 192.168.10.11
 +IF-MIB::​ifName - The textual name of the interface.
 +Array
 +(
 +    [IF-MIB::​ifName.1] => STRING: lo
 +    [IF-MIB::​ifName.2] => STRING: eth0
 +    [IF-MIB::​ifName.3] => STRING: eth1
 +    [IF-MIB::​ifName.4] => STRING: br0
 +    [IF-MIB::​ifName.5] => STRING: wifi0
 +    [IF-MIB::​ifName.6] => STRING: ath0
 +    [IF-MIB::​ifName.7] => STRING: ath1
 +)
 +
 +</​file>​
snmp.txt · Последние изменения: 2018/07/31 02:20 (внешнее изменение)