Arkadiusz Ćwiek

SNMP – Simple Network Management Protocol – notatki

SNMP to protokół do zarządzania urządzeniami w sieci, istnieją trzy wersje:

Wykorzystywane porty:

Protokół SNMP zakłada istnienie w zarządzanej sieci dwóch rodzajów urządzeń: zarządzających i zarządzanych. Urządzenie (komputer) jest zarządzającym (tzw. NMS, ang. Network Management Station), gdy jest na nim uruchomiony manager SNMP (zarządca SNMP). Urządzenie jest zarządzane, jeśli działa na nim agent SNMP.
W procesie zarządzania używane są bazy MIB (ang. Management Information Base – baza informacji zarządzania), czyli zbiory zmiennych, które manager SNMP w zależności od uprawnień może odczytać lub zmienić. W tym celu manager SNMP kontaktuje się z agentem na danym zarządzanym urządzeniu wykorzystując jedno z dwóch wcześniej skonfigurowanych haseł:

Odczyt zmiennej daje menagerowi określoną informację o stanie danego elementu sieci, podczas gdy zapis do zmiennej pozwala na sterowanie zachowaniem urządzenia.

Każdy komunikat SNMP dotyczy określonej zmiennej, tzw. OID (ang. Object IDentifier). Dla przykładu zmienna OID o nazwie sysUpTime (czas pracy urządzenia od ostatniego włączenia) ma postać 1.3.6.1.2.1.1.3.0, co odpowiada jej adresowi w drzewie MIB.

Oprócz operacji odczytu i zapisu zmiennych w agencie przez managera istnieje również możliwość takiego skonfigurowania agenta, aby sam poinformował danego managera o zmianie swojego stanu w przypadku zajścia określonego zdarzenia. Odbywa się to przy pomocy wysyłanego przez agenta komunikatu Trap lub (od wersji drugiej protokołu SNMP) przy pomocy komunikatu Inform.

Budowa komunikatów protokołu SNMP zdefiniowana jest przy pomocy notacji zwanej Abstract Syntax Notation One (oznaczanej ASN.1). Sposobem kodowania struktur danych komunikatów SNMP jest uproszczony BER.

Pakiet net-snmp

fedora 20, SLC 6

yum install net-SNMP
Pakiet net-snmp zawiera agenta SNMP(snmpd), bibliotekę programistyczną SNMP, oraz narzędzia SNMP do pracy z linii komend.
Do nauki najlepiej uruchomić sobie demona/agenta SNMP u siebie na komputerze:
/etc/init.d/snmpd start
Uwaga! jeśli dostęp do portu 161 nie jest zablokowany na firewallu/iptables to w ten sposób udostępniamy kopalnie wiedzy dla potencjalnych włamywaczy!
Gdybyśmy chcieli wykorzystać SNMP do monitorowania pracy tego komputera przez zdalną maszynę to należało odpowiednio edytować plik konfiguracyjny: /etc/snmp/snmpd.conf ale nie będzie to częścią tego artykułu.

snmpwalk – automatycznie ściąga całą zawartość poddrzewa MIT od podanego węzła, a więc:
snmpwalk -v 2c localhost -c public
snmpwalk -v 2c localhost -c public 1
pokażą większość informacji jakie odpytywane urządzenie (w tym wypadku localhost, a wiec nasz komputer) udostępnia przez SNMP.