Ez a cikk a hálózati berendezések SNMPv3 protokollal történő megfigyelésének sajátosságaira összpontosít. Beszélgetni fogunk az SNMPv3-ról, megosztom tapasztalataimat a Zabbix teljes körű sablonjainak kidolgozásában, és bemutatom, hogy mit lehet elérni a nagy hálózatok elosztott riasztásának megszervezésével. Az SNMP protokoll alapvető a hálózati berendezések megfigyelésében, míg a Zabbix kiválóan alkalmas nagyszámú objektum megfigyelésére és a beérkező metrikák jelentős mennyiségének összegzésére.
Néhány szó az SNMPv3-ról
Kezdjük az SNMPv3 protokoll céljának és alkalmazási sajátosságainak bemutatásával. Az SNMP feladata a hálózati eszközök megfigyelése és az alapvető vezérlés, például egyszerű parancsok küldésével (például hálózati interfészek bekapcsolása vagy kikapcsolása, vagy az eszköz újraindítása).
Az SNMPv3 protokoll fő különbsége a korábbi verziókkal szemben a klasszikus biztonsági funkciók [1-3], azaz:
- hitelesítés (Authentication), amely meghatározza, hogy a kérés megbízható forrástól származik;
- titkosítás (Encryption), hogy megakadályozza az átvitt adatok felfedését harmadik felek általi lehallgatás esetén;
- integritás (Integrity), azaz a garantált, hogy a csomag nem volt hamisítva az átvitel során.
Az SNMPv3 biztonsági modell használatát sugallja, amelyben a hitelesítési stratégiát egy meghatározott felhasználó és a hozzá tartozó csoport állapítja meg (az SNMP korábbi verzióiban a szerver és a megfigyelt objektum közötti kérelemben csak a "community", egy szöveges jelszót nyílt formában (plain text) hasonlították össze).
Az SNMPv3 bevezeti a biztonsági szint fogalmát — a megengedett biztonsági szintek, amelyek meghatározzák a berendezések beállítását és az SNMP-ügynök viselkedését a megfigyelt objektumon. A biztonsági modell és a biztonsági szint kombinációja meghatározza, hogy milyen biztonsági mechanizmus használatos az SNMP csomag feldolgozásakor [4].
A táblázatban az SNMPv3 biztonsági modellek és szintek kombinációit írjuk le (az első három oszlopot az eredeti formájukban hagytam):

Ezért az SNMPv3-at hitelesítési módban fogjuk használni titkosítással.
SNMPv3 beállítása
A hálózati berendezések megfigyelése az SNMPv3 protokoll azonos beállítását igényli a megfigyelő szerveren és a megfigyelt objektumon.
Kezdjük el a Cisco hálózati eszköz konfigurálásával, a minimálisan szükséges beállítása a következőképpen néz ki (a konfiguráláshoz CLI-t használunk, a neveket és jelszavakat leegyszerűsítettem a félreértések elkerülése érdekében):
snmp-server group snmpv3group v3 priv read snmpv3name
snmp-server user snmpv3user snmpv3group v3 auth md5 md5v3v3v3 priv des des56v3v3v3
snmp-server view snmpv3name iso includedAz első sor snmp-server group – meghatározza az SNMPv3 felhasználók csoportját (snmpv3group), a read üzemmódot, és a snmpv3group csoport hozzáférési jogát a monitorozási objektum MIB-fája bizonyos ágaihoz (a snmpv3name a konfigurációban megadja, hogy mely MIB-fa ágakhoz tud a snmpv3group csoport hozzáférni).
A második sor snmp-server user – meghatározza a snmpv3user felhasználót, annak csoporthoz való tartozását (snmpv3group), valamint az MD5 hitelesítés alkalmazását (az MD5 jelszó - md5v3v3v3) és a DES titkosítást (a DES jelszó - des56v3v3v3). Természetesen a DES helyett jobb az AES-t használni, itt csak példa jelleggel hozom fel. A felhasználó meghatározásakor hozzá lehet adni egy hozzáférési listát (ACL), amely szabályozza, hogy mely IP-címekkel rendelkező monitorozó szerverek férhetnek hozzá az adott eszköz monitorozásához – ez is a legjobb gyakorlat, de nem szeretném bonyolítani a példát.
A harmadik sor snmp-server view meghatározza a kódnevet, amely az snmpv3name MIB-fa ágakat jelöli, hogy az snmpv3group felhasználói csoport képes legyen lekérni azokat. Az ISO, ahelyett, hogy egy szigorúan meghatározott ágat adna meg, lehetővé teszi az snmpv3group csoport számára, hogy hozzáférjen a monitorozási objektum MIB-fájának összes eleméhez.
Hasonló beállítás a Huawei berendezések esetében (szintén CLI-ben) a következőképpen néz ki:
snmp-agent mib-view included snmpv3name iso
snmp-agent group v3 snmpv3group privacy read-view snmpv3name
snmp-agent usm-user v3 snmpv3user group snmpv3group
snmp-agent usm-user v3 snmpv3user authentication-mode md5
md5v3v3v3
snmp-agent usm-user v3 snmpv3user privacy-mode des56
des56v3v3v3A hálózati eszközök beállítása után ellenőrizni kell, hogy van-e hozzáférés a monitorozó szerverről az SNMPv3 protokollon keresztül, az snmpwalk-ot fogom használni:
snmpwalk -v 3 -u snmpv3user -l authPriv -A md5v3v3v3 -a md5 -x des -X des56v3v3v3 10.10.10.252 
Egy szemléletesebb eszköz a konkrét OID-objektumok lekérdezésére, MIB-fájlok használatával – snmpget:
![]()
Most térjünk át az SNMPv3 tipikus adatpontjának beállítására a Zabbix sablon keretein belül. Az egyszerűség és a MIB-függőségek elkerülése érdekében számokkal rendelkező OID-kat használok:

Kulcsszolgáltatásokban felhasználói makrókat használok, mivel ezek az összes adatlap elemnél azonosak lesznek. Ezeket a sablon keretein belül állíthatjuk be, ha a hálózatában az összes hálózati eszköz SNMPv3 beállításai azonosak, vagy a hálózat csomópontján belül, ha az SNMPv3 beállítások eltérőek a különböző megfigyelési objektumokban:

Felhívom a figyelmet, hogy a megfigyelő rendszer csak a felhasználónevet és a hitelesítéshez, valamint a titkosításhoz szükséges jelszavakat rendelkezik. A felhasználói csoportot és a MIB-objektumok területét, amelyekhez hozzáférés engedélyezett, a megfigyelési objektumon kell beállítani.
Most pedig áttérünk a sablon kitöltésére.
Zabbix kérdező sablon
Bármely kérdező sablon létrehozása során az egyszerű szabály az, hogy a lehető legrészletesebb legyen:

Nagy hangsúlyt fektetek az eszközleltározásra, hogy a nagy hálózattal könnyebb legyen dolgozni. Erről még később, most pedig a riasztásokról:

A riasztások nevében rendszerspecifikus makrókat használok {HOST.CONN}, hogy a műszerfalon az értesítési szakaszban ne csak az eszközök nevei, hanem az IP-címek is megjelenjenek, bár ez inkább kényelmi kérdés, mint szükségszerűség. Az eszköz elérhetőségének meghatározásához a hagyományos echo-kérdés mellett az SNMP protokollal való elérhetőség-ellenőrzést is használom, amikor az objektum elérhető ICMP-n, de nem válaszol az SNMP-kérésekre – ilyen helyzet például akkor állhat elő, ha az IP-címek ütköznek különböző eszközökön, nem megfelelően konfigurált tűzfalak miatt, vagy téves SNMP-beállítások miatt a megfigyelő objektumokon. Ha a csomópontok elérhetőségének ellenőrzésére csak ICMP-t használunk, az incidensek vizsgálatakor előfordulhat, hogy a megfigyelési adatok nem állnak rendelkezésre, ezért azok beérkezését ellenőrizni kell.
Térjünk át a hálózati interfészek felfedezésére – ez a legfontosabb megfigyelési funkció hálózati berendezések esetén. Mivel egy hálózati eszközön több száz interfész lehet, szükséges a nem kívánt interfészek szűrése, hogy ne terheljük a megjelenítést és ne zsúfoljuk fel az adatbázist.
Az SNMP-hez szabványos felfedezési funkciót használok, sok felfedezési paraméterrel a rugalmasabb szűrés érdekében:
discovery[{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7] 
Ezeket a típusokat, a felhasználói leírásokat, valamint a portok adminisztratív státuszát figyelembe véve szűrhetjük a hálózati interfészeket. Az én esetemben a szűrők és reguláris kifejezések a következőképpen néznek ki:


A következő interfészek kerülnek kizárásra:
- kézzel kikapcsolt (adminstatus<>1), az IFADMINSTATUS segítségével;
- nincs szöveges leírással, az IFALIAS miatt;
- tartalmazzák a * karaktert a szöveges leírásban, az IFALIAS segítségével;
- szolgáltatási vagy technikai jellegűek, az IFDESCR miatt (az én esetemben az IFALIAS és IFDESCR reguláris kifejezés együttes ellenőrzésére szolgál).
A SNMPv3 protokollal kapcsolatos adatok gyűjtésére szolgáló sablon majdnem kész. Ne térjünk ki részletesebben a hálózati interfészek adatelemeinek prototípusaira, inkább lépjünk a következtetésekhez.
A monitorozás összegzése
Kezdetben - egy kis hálózat leltározása:

Ha mintákat készítünk minden egyes hálózati eszközhöz, akkor egy könnyen elemezhető összefoglaló adatokat nyerhetünk a telepített szoftverekről, sorozatszámokról és arról, hogy mikor érkezik a takarító a szerverhez (a kis Uptime miatt). Az alábbiakban bemutatom a sablonjaim listáját:

Most pedig a fő monitorozó panel, amelyben a fontossági szintek szerint elosztott riasztások találhatók:

A hálózati eszközök minden modelljének sablonai révén egyetlen monitorozó rendszeren belül megvalósítható egy olyan eszköz, amely képes előre jelzi a hibákat és baleseteket (ha a megfelelő érzékelők és mutatók rendelkezésre állnak). A Zabbix jól alkalmazható hálózati, szerver- és szolgáltatási infrastruktúrák monitorozására, és a hálózati berendezések karbantartásának feladatai egyértelműen demonstrálják képességeit.
Felhasznált források listája:1. Hucaby D. CCNP Routing and Switching SWITCH 300-115 Official Cert Guide. Cisco Press, 2014. pp. 325-329.
2. RFC 3410.
3. RFC 3415.
4. SNMP Configuration Guide, Cisco IOS XE Release 3SE. Fejezet: SNMP Version 3.
Forrás: habr.com
