SNMP je protokol používaný k monitorování stavu počítače, sítě a dalších zařízení v počítači. Pomocí SNMP a jeho nástrojů lze získat například informace o:
SNMP používá většinou UDP protokol, a to na portech 161 (poslouchá) a 162 (posílá trapy). SNMP se v podstatě chová jako klasický model klient/server, kde jako server vystupuje tzv. agent, který obsluhuje dotazy a obstarává samotnou komunikaci a klient, tzv. manager, který příjímá data od agenta. Agent může asynchronně posílat tzv. trapy, snmptrapd daemonovi, což je reakce na nepředvídanou událost, například při hardwarové chybě, při připojení nového zařízení...
SNMPv1 - první verze protokolu, neřeší nijak zabezpečení, pakety jsou zasílany nešifrovaně
SNMPv2 - druhá verze protokolu, rozšíření protokolu v1, ale zpětně nekompatibilní, to je řešeno pomocí proxy agenta
SNMPv3 - poslední verze protokolu, řeší bezpečnostní problémy předchozích verzí (autentizace, šifrování)
Ve verzích 1 a 2 jsou používány následující příkazy:
MIB je hierarchicky řazená stromová struktura, udržující základní informace jednotlivých objektech (uzlech) ve stromu. Objekty jsou definovány na základě SMIv2 (Structure of Management Information Version 2) a každý na svůj tzv. OID (Object Identifier), pomocí kterého se lze na jednotlivé objekty odkazovat. Jedná se o posloupnost čísel začínající "tečkou", která představuje root. Každý z uzlů je spravován svojí organizací:
Například:
Ostatní organizace si mohou zažádat o vlastní část podstromu, kterou si budou sami spravovat.
.
/ | \
ccit iso iso-ccitt
|
--------
/ / | \ \
org
|
dod
/ \
internet
/ \
mgmt
/ \
mib-2
/
----------------------------------------------------
/ / | | | | | |
system interface addr-translation ip icmp tcp udp egp
Hlavní konfigurační soubor je /etc/snmp/snmpd.conf, kde je nastavení snmp daemona. Konfiguraci můžeme provést budˇ ručně nebo formou dialogu za pomocí skriptu snmpconf -b basic_setup.
Ve verzích 1 a 2 probíhá nastavení pomocí direktiv rocommunity/rwcommunity:
rocommunity COMMUNITY [SOURCE [OID]] rwcommunity COMMUNITY [SOURCE [OID]]nebo
rocommunity COMMUNITY SOURCE -V VIEW rwcommunity COMMUNITY SOURCE -V VIEWzmíněná komunikace tedy probíhá nešifrovaně.
Ve verzi 3 je možné nastavit práva přímo pro uživatele autentizovaného heslem:
rouser USER [noauth|auth|priv [OID]] rwuser USER [noauth|auth|priv [OID]]
Část konfigurace tedy může vypadat takto:
# namapujeme jméno komunity na security jméno # sec.name source community com2sec readonly 10.0.0.0/24 public com2sec ferda 10.0.0.0/24 private # namapujeme sec. jméno na group jméno # group.name securityModel sec.name group ROgrp v1 readonly group auth usm ferda # vytvoříme nějaký "pohled" # name incl/excl subtree view roview included system.sysContact view roauth included system.sysName # přidělíme práva # group context sec.model sec.level prefix read write notif access ROgrp "" v1 noauth exact roview none none access auth "" usm priv exact roauth none none
K dispozici je řada nástrojů, jsou součástí balíků net-snmp a net-snmp-utils
# verze komunita zdroj OID/string snmpget -v 1 -c public localhost .1.3.6.1.2.1.1.5.0 SNMPv2-MIB::sysName.0 = STRING: proto02
MTRG (The Multi Router Traffic Grapher ) je vizualizační nástroj, který na základě informací ze SNMP umí vygenerovat HTML stránky, obsahující i grafy, zobrazující provoz na síti.
Nagios je systém pro monitorování stanic a specifikovaných služeb. Lze ho konfigurovat a ovládat přes webové rozhraní. Podle nastavení je schopný posílat upozornění administrátorovi. Mezi základní funkce patří: