SNMP (jednoduchy protokol pro spravu site) vyvinul se jako jedna varianta protokolu SGMP (simple gateway monitoring protokol),
ktery byl navrzen v 80. letech prave pro vymenu informaci mezi smerovaci. V socasne dobe existuje SNMPv1, SNMPv2 a SNMPv3.
SNMPv1:
- byla definovana v roce 1988, autorizace byla resena pomoci tzv. "comunity string", autorizace byla
velkou bezpecnostni dirou, protoze v kazdem packetu bylo prihlasovaci jemno a heslo, ktere se po siti informace sirilo v nezasifrovane podobe. Proto take vznikla
SNMPv2:
- resi otazku bezpecnosti a take rozsirila moznosti SNMPv1, zavedla nove datove typy(INFORM, GET BULK)
a take 64-bitove hodnoty pocitadel, autentizace zustala na urovni verze 1.
SNMPv3
- vyresila predevsim problem autentizace (viz RFC 3418, RFC 3411),
Klient zvany (SNMP manager) vytvari spojeni se serverem (SNMP agent).
Klient (agent) bezi na sledovanym zarizenim a poskytuje serveru informace o zarizeni napr. pocet zpracovnaych paketu, frekvenci procesoru,
teplotu disku apod..
Agent posila informace na pozadani managera, ale muze nekdy odeslat informace bez vyzadani. Jestlize agent detekuje
jiste podminky napr. hardwarovou chybu, vysle informaci zvanou "Trap", sam bez vyzadani. Tyto zpravy jsou velmi
dulezite pro ziskani informaci o nahlych vaznych problemech. Pokud pouzivame SNMP ke vzdalenemu managementu, potrebujeme informace hlavne v dobe,
kdy se vyskytnou na siti problemy, proto je pouziti UDP/IP datagramoveho protokolu nejvhodnejsi.
Nevyhodou je nezajistenost spolehlivosti
pri prenosu dat, coz plyne z definice protokolu UDP, proto pokud nechodi "Trap"- chybove pakety, neznamena to ze je na siti vse v poradku.
SNMP pracuje jako dotazovaci protokol tzn. Manager dotazuje agenty.
Agent ziskava vsechny infomrace o zarizni, na kterem bezi a buduje strom MIB databaze ( Management Information Base ).
.
/ | \
ccit iso iso-ccitt
|
--------
/ / | \ \
org
|
dod
/ \
internet
/ \
mgmt
/ \
mib-2
/
----------------------------------------------------
/ / | | | | | |
system interface addr-translation ip icmp tcp udp egp
Strom lze prochazet napr.
(Dulezite nutno mit v snmpd.conf nastaveno pravo cteni pro komunitu zde "public"):
snmpwalk -v 1 -c public localhost .iso.org.dod.internet.mgmt.mib-2
snmpwalk -v 1 -c public localhost interface
Dalsi moznosti ziskani dat od snmp serveru:
GetRequest - zadost o informaci kterou posila klient serveru, jde v podstate o prikaz "Read",
v ramci prikazu jde zadat o informace o vice objektech
GetNext - zadost o dalsi informaci, toto lze jednoduse provadet jelikoz data jsou organizovany hierarchicky
GetRespone - tento prikaz je vyslan agentem, jako reakce na zadost
SetRequest - tento prikaz nastavuje hodnotu promenne v MIB agenta
Get Bulk - cte informace z celeho podstromu (od SNMPv2)
Cesta od korene k listu je jednoznacen reprezentovana, pro kazde zarizeni a tuto cestu lze vyjadrit i ciselne
system.sysUpTime.0
lze vyjadrit .1.3.6.1.2.1.1.3.0
InetAddressIPv4 ::= TEXTUAL-CONVENTION
DISPLAY-HINT "1d.1d.1d.1d"
STATUS current
DESCRIPTION
"Represents an IPv4 network address:
octets contents encoding
1-4 IPv4 address network-byte order
The corresponding InetAddressType value is ipv4(1).
This textual convention SHOULD NOT be used directly in object
definitions since it restricts addresses to a specific format.
However, if it is used, it MAY be used either on its own or in
conjunction with InetAddressType as a pair."
SYNTAX OCTET STRING (SIZE (4))
/etc/snmp/snmpd.conf
, nebo muzeme pouzit perlovsky skript snmpdconf -g basic_setup
,
ktery se nas taze na zakladni otazky a nastavi snmpd.conf.snmpd.conf :
###
# sec.name source community
com2sec paranoid default public
com2sec readonly default public
com2sec
- zkratka z (comunity to security name), namapuje "jmeno komunity" na "bezpecnosti jmeno"
####
# sec.model sec.name
group MyROSystem v1 paranoid
group MyROSystem v2c paranoid
group MyROGroup v1 readonly
group MyROGroup v2c readonly
group
- namapuje "security name" na jmeno skupiny a urci jaky typ
protokolu bude skupina pouzivat
####
# context sec.model sec.level match read write notif
access MyROSystem "" any noauth exact all none none
access MyROGroup "" any noauth exact all none none
access
- nakonec nastavime prava pro skupinu, muzeme omezit napr. jen
cast stromu pro urcitou skupinu napr. read nastavit na mib2
####
# incl/excl subtree mask
view all included .1 80
view system included .iso.org.dod.internet.mgmt.mib-2.system
Dale muzeme nastavit direktivu view
, pomoci niz si pojmenujeme cast stromu a tim
se usnadnime hledani a orintaci ve stromu. Nesmime zapomenout si nadefinovat zarizeni, ktera
budeme sledovat. napr: disk / 10000
"snmpusm create USER"
nebo
"net-snmp-config --crate-snmpv3-user"
.
cfgmaker
, pro vytvoreni html stranky pouzijeme "komunitu",
kterou jsme si nadefinovali v souboru snmpd.conf a pridelili ji prislusna prava. Pokud prislusna
komunita nebude mit alespon pravo cteni stromu, html stranku se nam nepodari vygenerovatcfgmaker public@localhost >> mrtg.cfg
indexmaker mrtg.cfg >> /var/www/mrtg/index.html
--global "options[_]: growrigt,bits"
- ktere se pouzijou pro vsechny rozhrani. --ifdesc nr|ip|eth|descr|name|type|alias
- urcuje podle ceho se stanovi nazev rozhrani
cfgmaker --global "WorkDir: /var/www" \
--global "Options[_]:growright,bits" \
--ifref=ip \
public@localhost >> mrtg.cfg
Pokud chceme at se nam statisticke informace obnovuji napr. kazdych 5 min,
pridame si prislusny zaznam do cronu.
rrdtool create filename [--start|-b start time] [--step|-s step]
[DS:ds-name DST:heartbeat:min:max] [RRA: CF:xff:steps:row
kterou budeme nasledne plnit daty.
rrdtool update filename [--template|-t ds-name[:ds-name]...]
N|timestamp:value[:value...] [timestamp:value[:value...] ...
RrdTools maji spoustu nastaveni a voleb, ktere najde
root tutorial
Je to modularni monitorovaco a vizualizacni systsem, ktery slouzi k automatickemu monitoringu jednotlivyh zarizeni, jako jsou (routery, servery,UPS..) a sluzeb.
Je to sada TCL skriptu, ktere slouzi k ziskavani inforamci o TCP/IP sitich. Obsahuji prikazy
pro posilani ICMP packetu jako je ping, take obsahuji vseobecne funkce k ziskavani informaci o
DNS zaznamech.
tcl Tnm: - pracuje nad protokolem SMX, ktery umoznuje spousteni tcl skriptu na vzdalenem zarizeni
- podporuje protokoly SNMP, ICMP, DNS
+-----------+ +-----------+
| interp #1 | . . . | interp #n |
+-----------------------------------+ script
| master Tcl interpreter | - defining
+-----------------------------------+ profiles
| SMX protocol implementation (Tnm) |
+-----------------------------------+
Tkined: - sitovy editor, je to nastroj pro rozsireny sitovy management. Balicek obsahuje aplikace pro pruzkum
a monitorovani stavu IP siti, pouziva SNMP v kombinaci s dalcimi nastroji (traceroute).