capcane SNMP, și ce mănâncă, Max Ivanov (aproape întotdeauna) în rețea

În acest articol doresc să subliniez problema de a lucra cu capcane SNMP. La acea vreme, când am început să se ocupe de acest subiect, cu o bună cunoaștere a principiilor de lucru ale protocolului SNMP, am fost minunat confuz lectură rezultatele documentației cu privire la această problemă, toate acestea OID, care ar trebui să fie scris ca parametri pentru echipa snmptrap. Căutarea unei informații coerente pe Internet a eșuat. Impresia că am fost doar un bont printre cei care cred că e elementar.







În munca mea am folosi pachetul NetSNMP de open source și, prin urmare, exemplele sunt de acest pachet.

Nu voi insista pe descrierea copac SNMP (cred că este într-adevăr banal), și începe cu OID notorii. OID este simplu. OID, acest ID obiect, un unic identificator valori obiect în arborele SNMP. OID poate fi scris în mai multe forme.

Deoarece numele unicitatea mnemonic cadrul posibil MIB nu există nici o garanție și nu este întotdeauna amintesc imediat ce se referă numele (de exemplu, prTable), există următoarea, în opinia mea, forma cea mai plăcută a scris: UCD-SNMP-MIB :: prTable. În acest format, cu excepția numelui specificat numele MIB (se poate spune că spațiul de nume)

Singura limitare a utilizării MIB este că, atunci când se utilizează software-ul SNMP de la diferiți producători și fier diferite trebuie să fie unică „înțelegere“ a acestor transformări magice. Prin urmare, pe site-urile producătorilor de echipamente au reușit fișierele de definiție MIB pentru anumite dispozitive.

Odată cu introducerea OID înțeles. Acum, despre scări. Doar specifică faptul că toate motivele menționate mai jos se referă la SNMP versiunea 2c.

Protocolul SNMP are capcane (capcane) este informarea (informează). Ele se deosebesc prin aceea că capcanele sunt trimise către managerul stației, cu nici o garanție de livrare, și sunt garantate pentru a fi livrate Inform. Ei bine, indiferent dacă sunt sau nu livrate, dar atunci expeditorul va ști despre ea. Pentru simplitate, am ambele scara de apel. Deci, vom proschei.

Ce informații sunt transmise managerului în scara (INFO)? Și a trimis următoarele informații:

  • Dispozitiv Uptime sub formă de perechi: uptime OID standardul, valoarea
  • OID, care spune că sa întâmplat pentru eveniment. Fișierele MIB au descriere specială a unui număr de evenimente standard, cum ar fi pornirea sau oprirea agentului. De asemenea, putem defini propriile OIDs capcană și chiar să descrie propriul fișier MIB.
  • Orice pereche de OID și valoarea ei (și încă mai este al treilea câmp „tip de valoare“, dar ne este într-o parte) care poate furniza informații suplimentare. De exemplu, atunci când un comutator trimite capcană „Arunca un link“, un câmp suplimentar va conține informații de interfață OID care a avut loc probleme - IF-MIB: ifIndex.2.






Acum, povestea noastră este împărțit în zone. Prima direcție: „Cum putem trimite SNMP trap se ocupă linia de comandă.“ A doua direcție „Cum putem face agentul SNMP pentru a trimite capcane atunci când ceva nu merge bine.“

trimite arme

Să presupunem că vrem să trimită un mesaj către managerul daemonul net-snmpd a început și să furnizeze informații suplimentare cu privire la dimensiunea de fișier de swap și se ocupă de toate. Ei bine, trimite-ne un astfel de capriciu. Să. scrie:

snmpinform publice -c -v 2c host.sample.com "" ucdavis.ucdTraps.ucdStart memTotalSwap i 1024000

  • „“ - să ia în mod implicit timpul de funcționare
  • ucdavis.ucdTraps.ucdStart - trimite această capcană
  • memTotalSwap i 1024000 - adaugă la sarcina egală cu un OID memTotalSwap 1024000

Și dacă gazda destinație rulează daemon snmptrapd. apoi log mesajul venirii scării.

Cu toate acestea, uneori doriți o țară, de exemplu, pentru a trimite o capcană pe care străinii tyryat SCSI hard disk-uri direct din coșul sau că serverul toarnă apă, așa cum ați notificat curtenitor senzor de casă, care cântărește pe portul COM. Este clar în standardul MIB pentru aceste țări, situația nu este menționată. Prin urmare, este posibil să se utilizeze o secvență arbitrară tsifirek pentru a indica un nou eveniment în lume. De exemplu:

snmptrap -c -v publice 2c 127.0.0.1 "" 1.3.3.3.3.3.3.3 1.2.2.2.2.2.2 s "Aliens a deschis ușa"

Și asta este tipic, acesta va funcționa. Jurnalul de va avea astfel de bredyatinka:

22 noiembrie 14:08:24 snmptrapd [465]: localhost [127.0.0.1]: Trap. DISMAN-EVENT-MIB :: sysUpTimeInstance = Timeticks: (736247) 2: 02: 42.47, SNMPv2-MIB :: snmpTrapOID.0 = OID: SNMPv2-SMI :: org.3.3.3.3.3.3, iso.2.2.2.2. 2.2 = STRING: "Aliens deschis ușa"

În același timp, administratorii abrupte ar trebui să facă un lucru bun, auto-desemnand, în conformitate cu IETF și alte organizații relevante. Prin urmare, vom descrie noul nostru OID în propriul fișier MIB.

Aici enterptise determinat cu numărul 10050 și numele îl daesya aliensattack. Apoi introduceți cele două ramuri: una pentru scări (începutul și sfârșitul de atac), cealaltă pentru mai multe informații OID (un atac pe ușă, sau nu e extratereștri).

Sincer, în formatul MIB am înțeles un pic fișier. Prin urmare, după ce a studiat cu atenție fișierele MIB ale standardului net SNMP, am făcut acest exemplu, care funcționează, dar de cristal clar în toate cuvintele sale cheie am ajuns.

Următoarea! Am pus fișierul numit ALLIENSATTACK-MIB.txt într-un fel de catalog de aproape și amintiți-vă că de acum toate programele relevante pentru SNMP (snmpd, snmptrapd, snmpinform), vom rula cu sprijinul MIB. Adică, se adaugă opțiunile de linie de comandă

-Catalog M / s_faylom -m + ALLIENSATTACK-MIB.

A „+“ înainte de numele MIB (nu fișierul cu MIB, și anume numele MIB), înseamnă că MIB va fi adăugat la bootabil implicit.

trimite automat

Metoda # 2. Scrieți un script care verifică setările de sistem și trimite o capcană către stația de management. Scris pe shell, Perl, sau în orice limbă cunoscută.

Metoda # 1. Cel mai interesant. Versiunea a 5-a net-snmp modulul suport poyavilast DISMAN-EVENT-MIB buyout posibilitatea de a trimite mesaje în anumite condiții. Dar asta e altă poveste.