SNMP a monitoring siete

Matej Hulín, 433686@mail.muni.cz

Obsah

Čo je SNMP?

Simple network management protokol(SNMP) je protokol definovaný na aplikačnej vrstve OSI/ISO modelu určený primárne pre správu a monitoring zariadení pripojených do IP sietí. Okrem zbierania údajov o bežiacich systémoch a službách taktiež umožnuje prenos požiadaviek na zmenu v konfiguráci zvolených zariadení. SNMP komunikačný protokol rozdeluje zariadenia na monitorované a monitorujúce. V terminológií protokolu ich označujeme následovne:

Management Information Base (MIB)

Všetky údaje sprístupnené agentom sú vo forme premenných organizovaných v hierarchickej(stromovej) databáze Management Information Base(MIB). MIB databázu môžme adresovať pomocou Object Identifier (OID) v numerickej alebo textovej podobe (preložením pomocou programu snmptranslate).

Napríklad objekt sysLocation má OID 1.3.6.1.2.1.1.6. Prislúchajúci symbolický tvar s kompletným listom MIB objektov po preložení pomocou snmptranslate:

$ snmptranslate -Of 1.3.6.1.2.1.1.6
.iso.org.dod.internet.mgmt.mib-2.system.sysLocation

Každý objekt organizovaný v MIB je definovaný pomocou podmnožiny Abstract Syntax Notation One nazývanej Structure of Management Information Version 2 (SMIv2)(RFC 2578)

Ukážka definície objektu sysLocation:
$ snmptranslate -Td 1.3.6.1.2.1.1.6
SNMPv2-MIB::sysLocation
sysLocation OBJECT-TYPE
  -- FROM	SNMPv2-MIB
  -- TEXTUAL CONVENTION DisplayString
  SYNTAX	OCTET STRING (0..255) 
  DISPLAY-HINT	"255a"
  MAX-ACCESS	read-write
  STATUS	current
  DESCRIPTION	"The physical location of this node (e.g., 'telephone
            closet, 3rd floor').  If the location is unknown, the
            value is the zero-length string."
::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) system(1) 6 }
Každý objekt v strome MIB je mennou autoritou pre svojich priamych potomkov, tj. je zodpovedný za pridelovanie unikátnych id-čiek. Nepriamy potomkovia spadajú do pôsobnosti svojich priamych rodičov pre efektívnejšie členenie a správu menného priestoru.

Autentizácia

SNMP metódy / Typy PDU

SNMP balíky

SNMP balík pre Archlinux, Fedora, Ubuntu: net-snmp

U Fedory prípadne net-snmp-utils pre snmpget a snmpwalk
Obsah balíku net-snmp(Archlinux):

Daemoni

Správa a konfigurácia

Odosielanie dotazov

Iné nástroje

Konfigurácia SNMP

Konfiguračné súbory sa nachádzajú v priečinkoch /etc/snmp/{snmpd.conf, snmptrapd.conf} a /var/net-snmp/{snmpd.conf, snmptrapd.conf}. Pri spustení agenta alebo managera sa čítajú v poradí stanovenom v man 5 snmp_config. Validné konfiguračné možnosti sa dá zistiť pomocou snmpd -H pre agenta a podobne pre managera. Základná konfigurácia SNMPv3 s autentizáciou sa dá spraviť ručne modifikovaním konfiguračných súborov alebo interaktívne, napríklad cez snmpconf -g basic_setup.

Základná konfigurácia net-snmp agenta prevzatá z ArchWiki a upravená podľa Red Hat dokumentácie:
 mkdir /etc/snmp/
 cat >> /etc/snmp/snmpd.conf << EOF
 rouser read_only_user auth .1
 rocommunity public 127.0.0.1 .1.3.6.1.2.1.1
 syslocation A217
 syscontact UNIX Admin admin@example.com
 EOF
 mkdir -p /var/net-snmp/
 echo createUser read_only_user SHA password1 AES password2 > /var/net-snmp/snmpd.conf
# Prípadne v jedno kroku pomocou: net-snmp-create-v3-user -ro -A password1 -a SHA-512 -X password2 -x AES-128 read_only_user
# Konfigurácia iptables
iptables -I INPUT -p udp --dport 161 -j ACCEPT
ip6tables -I INPUT -p udp --dport 161 -j ACCEPT
# Start snmp agent
 systemctl start snmpd

Literatura