SNMP
SNMP je dostupný pro první i druhou produktovou řadu zařízení SDS.
Simple Network Management Protocol (SNMP) je součástí sady internetových protokolů. Slouží potřebám správy sítí, umožňuje průběžný sběr nejrůznějších dat, pro jejich následné vyhodnocování. Na tomto protokolu je dnes založena většina prostředků a nástrojů pro správu sítě.
Naše zařízení používají SNMP jednak pro kontrolu vlastního síťového rozhraní, tj. využívá se standardni MIB položky, tak také pro monitorování specializovaných funkcí, poskytovaných tím kterým zařízením.
Tak lze pomocí SNMP číst aktuální stavy všech vstupů na každém ze zařízení.
Každé zařízení má implementovaného SNMP agenta, což je služba, která na základě dotazu posílá příslušnou odpověď. Co má být obsahem dotazu, aby byl úspěšně zpracován, je popsáno v konkrétním MIB souboru.
Pro rychlý start:
- The Dude - vhodný pro vizualizaci
- iReasoning MIB Browser - vhodný pro analýzu komunikace, získání SNMP dat z SDS
- a velké množství dalších řešení
Uvedené programy jsou poskytovány svými výrobci zdarma, přečtěte si však jejich licenční podmínky.
Doplňkový UDP protokol
Mimo SNMP (a mimo webové rozhraní, teplotní snippety a XML) je k dispozici i proprietární UDP protokol - návod pro UDP: první produktová řada SDS a SUDP: druhá produktová řada SDS
UDP protokol pro zařízení SDS umožňuje přenos informací do/ze zařízení v jednopaketové formě, a to vysokou rychlostí (tj. odešle se dotaz na SDS a ihned obratem je vrácen dynamicky generovaný UDP paket).
Komunikace probíhá na UDP portu číslo 280 (pozor na firewall) - v aktuálním firmware je samozřejmě možné změnit číslo tohoto UDP portu.
Druhá produktová řada SDS má protokol značně rozšířen (vůči první produktové řadě), vzhledem k množství funkcí které jsou navíc dostupné.
Simple Network Management Protokol pro zařízení SDS První Produktové Řady
Výrobky SDS První Produktové Řady používají verzi SNMP v1 (plain).
Název SNMP komunity lze změnit přes administrační webovou stránku zařízení SDS.
Zápis a čtení, lze přes webové rozhraní zablokovat či povolit, pro jednotlivé komunity.
Simple Network Management Protokol pro zařízení SDS Druhé Produktové Řady
Výrobky SDS Druhé Produktové Řady používají verzi SNMP v3.
SNMP uživatele lze změnit přes administrační webovou stránku zařízení SDS. Zápis a čtení, lze pro jednotlivé uživatele, přes webové rozhraní zablokovat či povolit.
SDS podporuje pouze USM(3) - přičemž právě USM(3) je pro SNMP v3 standard dle RFC.
Pro řadu SDS 64 a 128 podporuje firmware pouze NOAUTHNOPRIV security pro SNMP v3. Stále je zde možné využít rozdělení dle uživatelů. POZOR: firmware pro 64/128 s touto feature bude vydán až později.
Pro řadu SDS 512 podporuje firmware plný security model dle RFC pro USM(3), tedy tři možnosti, a to: NOAUTHNOPRIV, AUTHNOPRIV, AUTHPRIV. Dle vaší volby (v konfiguraci, pro jednotlivé uživatele), Lze tedy komunikovat bez ověření (NOAUTH) a šifrování (NOPRIV), nebo jen s ověřením (AUTH) bez šifrování (NOPRIV), nebo s ověřením (AUTH) a šifrováním (PRIV).
Všechny SDS řady 512 mají, s aktuálním firmware, plnou implementaci SNMP v3 dle RFC.
Možnosti nastavení pro každého jednotlivého uživatele: vždy se spolu nastavuje AUTH a PRIV, pro každého uživatele:
AUTH:
- NOAUTH - bez ověření HMAC
- AUTH - s ověřením algoritmem MD5
- AUTH - s ověřením algoritmem SHA1
PRIV:
- NOPRIV - bez šifrování
- PRIV - se šifrováním algoritmem DES 56bit (vyžaduje nastavený AUTH)
- PRIV - se šifrováním algoritmem AES 128bit (vyžaduje nastavený AUTH) dle RFC3826
Jak lze vidět, pokud je požadavek na šifrování SNMPv3 provozu, je nezbytné mít současně aktivní i AUTH, tento požadavek je dle RFC pro SNMPv3.
Konfigurace algoritmu a hesel se provádí ve webovém rozhraní SDS, kde po zadání hesel dojde k jejich zpracování, a v rámci SDS je pak už uložen jen klíč "Kul", přičemž hesla v plaintextu nejsou v zařízení fyzicky ukládána. Pozn. Klíč "Kul" je v HW ukládán šifrovaně. Z hlediska uživatele je samozřejmě podstatné AUTH PASSWORD a PRIV PASSWORD, což jsou právě ty údaje, které do SDS zadáváte, a které máte i ve svém management systému, který přes SNMPv3 se SDS komunikuje. To že se to interně v SDS dále řeší zabezpečeným způsobem (ukládá se jen "Kul" atd.) je pro vás, z hlediska funkce SNMPv3, zcela transparentní. Jediný důsledek je, že z SDS nelze přímo přečíst surová (plaintext) hesla, což je ale naopak výhodou.
ENGINE-ID:
Každý jednotlivý kus výrobku SDS má přiřazenu unikátní hodnotu "Engine-ID". Tato hodnota je potřebná pro provedení jakékoliv SNMPv3 komunikace mezi SDS (nebo jiným SNMP serverem) a management systémem. Hodnotu "Engine-ID" lze přímo ručně zjistít z webového rozhraní SDS (v administraci), nebo vhodným dotazem přes specifický SNMPv3 paket (dle RFC). Pomocí "Engine-ID" tedy můžete jednoznačně identifikovat daný kus (výrobek SDS), se kterým přes SNMPv3 komunikujete.
Informace:
Zabezpečení SNMPv3 bylo, před časem, prolomeno. Za předpokladu, že se útočník dostane k záchytu několika paketů, může, s dostatečnou výpočetní kapacitou, provést kryptografickou analýzu, kterou získá heslo. Toto je vlastnost SNMPv3 tak jak je SNMPv3 specifikováno v RFC, nikoliv chyba implementace samotné. V rámci SDS jsme aplikovali řadu kroků, jak zamezit získání chráněných informací (hesla), v případě, že útočník fyzicky získá přístup k výrobku SDS. Ovšem nemáme jak, z principu, zabránit provedení pasivního útoku pro získání hesla, kdy útoční jen pasivně zachytí SNMPv3 komunikaci, a na základě kryptografické analýzy provozu a specifikace, dokáže heslo získat. V ten okamžik může útočník SNMPv3 data nejen číst, ale i podvrhnout.
Pokud by toto bylo vyhodnoceno jako problém pro vaši konkrétní aplikaci, pak je potřeba provést buď mitigaci (maximální délka heslo pro ztížení analýzy, ale stále to úplně analýze nezabrání), nebo opustit SNMP úplně a použít symetrickou kryptografii v rámci vlastního FULL-C programu, a posílat si diagnostiku svým programem, ať buď přes UDP pakety, nebo přes HTTP GET, kde všude bude vámi symetricky šifrovaný obsah (za předpokladu správného zabezpečení symetrického klíče).
Informace:
Pro všechny SDS Druhé Produktové Řady lze, prostřednictvím konfigurace ve webovém rozhraní, povolit nebo zakázat SNMP v1 a/nebo SNMP v3. Mohou tedy být aktivní současně, nebo jen v1, nebo jen v3 - záleží to na tom, jak si to sami nakonfigurujete.
Minimální délka hesla:
Pro SNMP v3 je potřeba zadat heslo s délkou 8 nebo více znaků. Kratší hesla jsou zařízením SDS odmítnuta.
Další informace
Je použito SNMP enterprise number, 33283, oficiálně přiřazené autoritou IANA.
SNMP AGENT PORT je 161.
Tento SNMP port nelze změnit.
Maximální velikost datového bloku (pro SNMP v1) je 1380 bajtů - tj. čisté (skutečné) SNMP data, hlavičky dalších protokolů jsou (navíc) mimo tyto payload data (tzn. nezapočítány). SDS nikdy negeneruje větší pakety než je zde uvedeno. Pozor proto na velikost dotazů (a očekávanou velikost odpovědi), které do SDS posíláte. Dobrá praxe je posílat jeden dotaz na jeden paket.
Způsob přenosu desetinných čísel přes SNMP
Protože je zde několik údajů, které jsou vyjádřeny nikoliv celočíselně, ale ve formě desetinného čísla, je potřeba je po přečtení pomocí SNMP správně zpracovat.
Všechny údaje s desetinou hodnotou (např. teplota) jsou předávány tak, že je nutné je po přečtení ze SNMP vydělit příslušným číslem, např. 100 nebo 1000. Kolik je toto číslo, je uvedeno v MIB souboru pro každý údaj, který to vyžaduje.
Příklady:
up_time je přenášen v centisekundách, to znamená, že např. reálný údaj 123.45 sekund bude přenesen jako číslo 12345 (takže pro převod jej musíme vydělit 100).
I_accu_SI uvádí proud z/do akumulátoru. Přečtená hodnota SNMP 187 odpovídá 1.87 A, hodnota SNMP -1 odpovídá -0.01 A, hodnota -1234 odpovídá -12.34 A, hodnota 1206 odpovídá 12.06 A atd., zde vidíme dělení surového údaje ze SNMP číslem 100, čímž získáme čistý údaj v SI jednotkách.
Stejný postup platí i pro další podobně přenášené údaje, viz konkrétní MIB soubory.
Pozor - první produktová řada SDS:
Údaje o teplotě z teplotních čidel 1-Wire® jsou přenášeny ve dvou způsobech.
Údaje o teplotě z teplotních čidel jsou předávány pomocí SNMP tabulky, kde krom jiných řádku jsou dva využity pro přenos číselného údaje. Řádek ..._actual_temp_integer přenáší celočíselnou část (vše před desetinnou tečkou, tedy teplotu na celé stupně Celsia) a pak řádek ..._actual_temp_frac přenáší část za desetinnou čárkou:
Příklad pro teplotní údaje: dostaneme ..._actual_temp_integer = 25 a ..._actual_temp_frac = 12. Teplota je tedy 25.12°C.
A samozřejmě i jako hodnota násobená 100.
SNMP WRITE
Zařízení SDS poskytují kromě možnosti číst data pomocí SNMP protokolu, také možnost zápisu dat do zařízení SDS prostřednictvím SNMP protokolu.
Ovládat tak lze tyto výstupní periférie: (první produktová řada SDS)
- relé: (stav) (kdo ovládá relé)
- PWM: (frekvence generátoru) (perioda/duty)
- stav pinu PD0, popř. pro SDS-TTCPRO směr a stav sběrnice PDx
- sériová linka: (baudrate) (data size) (stop bits) (parity)
- zápis do: sys[140] až sys[149]
Druhá produktová řada také nabízí podobný set možností.
SNMP TRAP
Zařízení SDS poskytují i možnost odesílání SNMP TRAP zpráv. Tyto zprávy se odesílají na požádání vašeho vlastního programu (tzn. musíte si připravit svůj SDS-C nebo FULL-C program).
Dostupné MIB soubory
Vyberte si MIB soubor pro zařízení z následujícího stromu:
enterprises AN-D.cz = 33283
První produktová řada SDS
SDS-MACRO-LM = 5 SDS MACRO LM --- verze do listopadu 2012 --- = 5 >> MIB .1.3.6.1.4.1.33283.1.5 --- verze od prosince 2012 --- = 5 >> MIB .1.3.6.1.4.1.33283.1.5
SDS-MACRO-ST = 32 SDS MACRO ST = 32 >> MIB .1.3.6.1.4.1.33283.1.55
SDS-MICRO-LM = 2 SDS MICRO LM: light, light2, E, DIN --- verze do listopadu 2012 --- = 2 >> MIB .1.3.6.1.4.1.33283.1.2 --- verze od prosince 2012 --- = 2 >> MIB .1.3.6.1.4.1.33283.1.2 (pozor na změnu v tabulce S0 vstupů, byla tam přidána položka, dne 12.4.2013)
SDS-MICRO-ST a SDS-MICRO-ST-DP = 32 SDS MICRO ST = 32 >> MIB .1.3.6.1.4.1.33283.1.32
SDS-MINI-ST = 90 SDS MINI ST = 90 >> MIB .1.3.6.1.4.1.33283.1.90
(HISTORIE) DVOUDESKA SDS-UPS-LM = 2 STARÉ VERZE HW (dvoudeska, dnes neprodávaná !): LM: sds_ups_rev2, rev3, rev3b = 2 >> MIB .1.3.6.1.4.1.33283.1.2
JEDNODESKA SDS-UPS-LM = 10 AKTUÁLNÍ VERZE HW (jednodeska, aktuálně v prodeji): sds_ups_onedps LM --- verze od prosince 2012 --- = 10 >> MIB .1.3.6.1.4.1.33283.1.10
SDS-TTCPRO-ST = 21 SDS TTCPRO ST (rev3+) = 21 >> MIB .1.3.6.1.4.1.33283.1.21
SDS-IO6 = 66 SDS IO6 LM (rev2+) = 66 >> MIB .1.3.6.1.4.1.33283.1.66
SDS-IO6-ST = 99 SDS IO6 ST = 99 >> MIB .1.3.6.1.4.1.33283.1.99
Druhá produktová řada SDS
SDS-BIG a BIG2 (všechny varianty a sub-varianty) = 30 SDS BIG (BIG2) 64 / 128 / 512 (DP, DS84) = 30 >> MIB .1.3.6.1.4.1.33283.1.30
SDS-STSW = 30 SDS STSW (a všechny OEM výrobky založené na STSW) 64 / 128 / 512 (stejný MIB jako pro BIG) = 30 >> MIB .1.3.6.1.4.1.33283.1.30
SDS-SMALL = 30 SDS SMALL 64 / 128 / 512 (stejný MIB jako pro BIG) = 30 >> MIB .1.3.6.1.4.1.33283.1.30
SDS-MBGW = 30 SDS MBGW (stejný MIB jako pro BIG) = 30 >> MIB .1.3.6.1.4.1.33283.1.30
Soubory MIB stáhnete kliknutím na příslušný odkaz. Pozor na to, jakou verzi firmware (datum vydání firmware) máte ve svém SDS nahranou, podle toho zvolte i verzi MIB souboru.
RFC references
SDS je navrženo podle následujících RFC:
- RFC 1155 — Structure and Identification of Management Information for the TCP/IP-based Internets
- RFC 1156 — Management Information Base for Network Management of TCP/IP-based internets
- RFC 1157 — A Simple Network Management Protocol (SNMP)* RFC 1213 — Management Information Base for Network Management of TCP/IP-based internets: MIB-II
- RFC 3410 (Informational) — Introduction and Applicability Statements for Internet Standard Management Framework
- RFC 3411 — An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks
- RFC 3412 — Message Processing and Dispatching for the Simple Network Management Protocol (SNMP)
- RFC 3413 — Simple Network Management Protocol (SNMP) Application
- RFC 3415 — View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP)
- RFC 3417 — Transport Mappings for the Simple Network Management Protocol (SNMP)
- RFC 3418 — Management Information Base (MIB) for the Simple Network Management Protocol (SNMP)
- RFC 3584 (Best Current Practice) — Coexistence between Version 1, Version 2, and Version 3 of the Internet-standard Network Management Framework