SNMP
SNMP kann dazu verwendet werden, um Statusinformationen über UDP (Port 161) zu erhalten. Unterstützte SNMP Befehle:
- GET
- GETNEXT
- GETBULK
- SET
Um per SNMP abzufragen benötigen Sie ein Network Management System, wie z.B. HP-OpenView, OpenNMS, Nagios, etc., oder die einfachen Kommandozeilen-Tools der NET-SNMP Software. Das Gerät unterstützt die SNMP Protokolle v1, v2c und v3. Sind in der Konfiguration Traps aktiviert, werden die auf dem Gerät erzeugten Messages als Notifications (Traps) versendet. SNMP Informs werden nicht unterstützt. SNMP Requests werden mit der gleichen Version beantwortet, mit der sie verschickt wurden. Die Version der versendeten Traps lässt sich in der Konfiguration einstellen.
MIB Tabellen
Die Werte, die vom Gerät ausgelesen bzw. verändert werden können, die so genannten "Managed Objects", werden in Management Information Bases (kurz MIBs) beschrieben. Diesen Teilstrukturen sind sogenannte OIDs (Object Identifiers) untergeordnet. Eine OID-Stelle steht für den Ort eines Wertes innerhalb der MIB-Struktur. Jeder OID kann alternativ mit seinem Symbolnamen (subtree name) bezeichnet werden. Die MIB Tabelle dieses Gerätes kann aus der SNMP Konfigurationsseite mit einem Klick auf den Link "MIB table" im Browser als Textdatei angezeigt werden.
SNMP v1 und v2c
SNMP v1 und v2c authentifiziert die Netzwerkanfragen anhand sogenannter "Communities". Der SNMP-Request muss bei Abfragen (Lesezugriff) die sogenannte "public Community", und bei Zustandsänderungen (Schreibzugriff) die "private Community" mitsenden. Die SNMP-Communities sind Lese- bzw. Schreibpasswörter. Bei den SNMP Versionen v1 und v2c werden die Communities unverschlüsselt im Netzwerk
übertragen und können innerhalb dieser Kollisionsdomäne also leicht mit IP-Sniffern abgehört werden. Zur Begrenzung des Zugriffs empfehlen wir den Einsatz innerhalb einer DMZ bzw. die Verwendung der IP-ACL.
SNMP v3
Da das Gerät keine Mehrbenutzerverwaltung kennt, wird auch in SNMP v3 nur ein Benutzer (default name "standard") erkannt. Aus den User-based Security Model (USM) MIB Variablen gibt es eine Unterstützung der "usmStats..." Zähler. Die "usmUser..."
Variablen werden mit der Erweiterung für weitere Nutzer in späteren Firmwareversionen hinzugefügt. Das System kennt nur einen Kontext. Das System akzeptiert den Kontext "normal" oder einen leeren Kontext.
Authentifizierung
Zur Authentifizierung werden die Algorithmen "HMAC-MD5-96" und "HMAC-SHA-96" angeboten. Zusätzlich sind die "HMAC-SHA-2" Varianten (RFC7630) "SHA-256",
"SHA-384" und "SHA-512" implementiert.
"SHA-384" und "SHA-512" werden rein in Software berechnet. Werden auf der Konfigurationsseite "SHA-384" oder "SHA-512" eingestellt, können einmalig bis zu ca. 45 Sekunden für die Schlüsselerzeugung vergehen.
Verschlüsselung
Die Verfahren "DES", "3DES", "AES-128", "AES-192" und "AES-256" werden in Kombination mit "HMAC-MD5-96" und "HMAC-SHA-96" unterstützt. Für die "HMAC-SHA-2" Protokolle gibt es zur Zeit weder ein RFC noch ein Draft, das eine Zusammenarbeit mit einer Verschlüsselung ermöglicht.
Während bei der Einstellung "AES-192" und "AES-256" die Schlüssel nach "draftblumenthal-aes-usm-04" berechnet werden, benutzen die Verfahren "AES-192- 3DESKey" und "AES-256-3DESKey" eine Art der Schlüsselerzeugung, die auch beim
"3DES" ("draft-reeder-snmpv3-usm-3desede-00") eingesetzt wird. Ist man kein SNMP Experte, empfiehlt es sich, jeweils die Einstellungen mit und ohne "...-3DESKey" auszuprobieren.
Passwörter
Die Passwörter für Authentifizierung und Verschlüsselung sind aus Sicherheitsgründen nur als berechnete Hashes abgespeichert. So kann, wenn überhaupt, nur sehr schwer auf das Ausgangspasswort geschlossen werden. Die Berechnung des Hashes ändert sich aber mit den eingestellten Algorithmen. Werden die Authentication oder Privacy Algorithmen geändert, müssen im Konfigurationsdialog die Passwörter wieder neu eingegeben werden.
Sicherheit
Folgende Aspekte gibt es zu beachten:
- Sollen Verschlüsselung oder Authentifizierung zum Einsatz kommen, dann SNMP v1 und v2c ausschalten, da sonst darüber auf das Gerät zugegriffen werden kann.
- Wird nur authentifiziert, dann sind die neuen "HMAC-SHA-2" Verfahren den MD5 oder SHA-1 Hashing Algorithmen überlegen. Da nur SHA-256 in Hardware beschleunigt wird, und SHA-384 sowie SHA-512 rein in Software berechnet werden, sollte man im Normalfall SHA-256 auswählen. Vom kryptographischen Standpunkt reicht die Sicherheit eines SHA-256 zur Zeit vollkommen aus.
- Für SHA-1 gibt es derzeit etwas weniger Angriffsszenarien als für MD5. Im Zweifelsfall ist SHA-1 vorzuziehen.
- Die Verschlüsselung "DES" gilt als sehr unsicher, nur im Notfall aus Kompatibilitätsgründen einsetzen!
- Es gilt bei Kryptologen als umstritten, ob "HMAC-MD5-96" und "HMAC-SHA-96" genügend Entropie für die Schlüssellängen von "AES-192" oder "AES-256" aufbringen können.
- Ausgehend von den vorhergehenden Betrachtungen empfehlen wir zur Zeit "HMACSHA-96" mit "AES-128" als Authentifizierung und Verschlüsselung.
Änderung im Trap-Design
In älteren MIB-Tabellen wurde für jede Kombination aus einem Event und einer Portnummer ein eigener Trap definiert. Dies führt bei den Geräten zu längeren Listen von Trap-Definitionen. Z.B. von epc8221SwitchEvtPort1 bis epc8221SwitchEvtPort12. Da neue Firmwareversionen viel mehr verschiedene Events generieren können, produziert dieses Verhalten schnell mehrere hundert Trap-Definitionen. Um diese Überfülle an Trap-Definitionen einzuschränken, wurde das Trap-Design so verändert, das für jeden Event-Typ nur ein bestimmter Trap erzeugt wird. Die Port- oder Sensornummer wird jetzt im Trap als Index OID innerhalb der "variable bindings" zur Verfügung gestellt.
Damit diese Änderung direkt erkannt wird, wurde der "Notification" Bereich in der MIB Tabelle von sysObjectID.0 nach sysObjectID.3 verschoben. So werden erstmal nicht identifizierte events generiert, bis die neue MIB Tabelle eingespielt wird. Aus Kompatibilitätsgründen werden SNMP v1 Traps genauso erzeugt wie früher.
NET-SNMP
NET-SNMP bietet eine sehr weit verbreitete Sammlung von SNMP Kommandozeilen Tools (snmpget, snmpset, snmpwalk, etc.) NET-SNMP ist u.a. für Linux und Windows verfügbar. Nach der Installation von NET-SNMP sollten Sie die Gerätespezifische MIB des Geräts in das "share" Verzeichnis von NET-SNMP legen, z.B. nach
c:\usr\share\snmp\mibs
bzw.
/usr/share/snmp/mibs
So können Sie später anstatt der OIDs die 'subtree names' verwenden :
Name: snmpwalk -v2c -mALL -c public 192.168.1.232 gudeads
OID: snmpwalk -v2c -mALL -c public 192.168.1.232 1.3.6.1.4.1.28507
NET-SNMP Beispiele
Diese Beispiele beziehen sich auf Gude Geräte die schaltbare Ports haben.
Power Port 1 Schaltzustand abfragen:
snmpget -v2c -mALL -c public 192.168.1.232 epc822XPortState.1
Power Port 1 einschalten:
snmpset -v2c -mALL -c private 192.168.1.232 epc822XPortState.1 integer 1
MBI Tabelle
Es folgt eine Tabelle aller gerätespezifischen OID's die über SNMP angesprochen werden können. Bei der numerischen OID Darstellung wurde der Präfix "1.3.6.1.4.1.28507" zur Gude Enterprise OID aus Platzgründen bei jedem Eintrag in
der Tabelle weggelassen.
Die komplette OID würde daher z.B. "1.3.6.1.4.1.28507.85.1.1.1.1" lauten. Man unterscheidet in SNMP bei OID's zwischen Tabellen und Skalaren. OID Skalare haben die Endung ".0" und spezifizieren nur einen
Wert. Bei SNMP Tabellen wird das "x" durch einen Index (1 oder größer) ersetzt, um einen Wert aus der Tabelle zu adressieren.
Gut zu wissen: Im Webserver auf jedem Gerät finden Sie die MIB Tabelle unter dem Reiter SNMP. Zusätzlich können Sie die MIB Tabellen auch auf unserer Website unter Downloads herunterladen.
Bitte beachten Sie, dass nicht alle Kommandos für alle unsere Geräte verfügbar sind.
Diese Tabelle wurde für unseren Expert Power Control 8045 erstellt.
Name | Description | OID | Type | Acc. |
epc8045TrapCtrl | 0 = off 1 = Ver. 1 2 = Ver. 2c 3 = Ver. 3 | 87.1.1.1.1.0 | Integer32 | RW |
epc8045TrapIPIndex | A unique value, greater than zero, for each receiver slot. | .87.1.1.1.2.1.1.x | Integer32 | RO |
epc8045TrapAddr | DNS name or IP address specifying one Trap receiver slot. A port can
optionally be specified: 'name:port' An empty string disables this slot. |
.87.1.1.1.2.1.2.x | OCTETS | RW |
epc8045portNumber | The number of Relay Ports | .87.1.3.1.1.0 | Integer32 | RO |
epc8045PortIndex | A unique value, greater than zero, for each Relay Port. | .87.1.3.1.2.1.1.x | Integer32 | RO |
epc8045PortName | A textual string containing name of a Relay Port. | OCTETS | RW | |
epc8045PortState | current state of a Relay Port | .87.1.3.1.2.1.3.x | INTEGER | RW |
epc8045PortSwitchCount | The total number of switch actions ocurred on a Relay Port. Does not
count switch commands which will not switch the ralay state, so just real relay switches are displayed here. |
.87.1.3.1.2.1.4.x | Integer32 | RO |
epc8045PortStartupMode | set Mode of startup sequence (off, on , remember last state) | .87.1.3.1.2.1.5.x | INTEGER | RW |
epc8045PortStartupDelay | Delay in sec for startup action | .87.1.3.1.2.1.7.x | Integer32 | RW |
epc8045PortRepowerTime | Delay in sec for repower port after switching off | .87.1.3.1.2.1.7.x | Integer32 | RW |
epc8045PortResetDuration | Delay in sec for turning Port on again after Reset action | .87.1.3.1.2.1.8.x | Integer32 | RW |
epc8045Buzzer | turn Buzzer on and off | .87.1.3.10.0 | Integer32 | RW |
epc8045ActivePowerChan | Number of suppported Power Channels. | .87.1.5.1.1.0 | Unsigned32 | RO |
epc8045PowerIndex | Index of Power Channel entries | .87.1.5.1.2.1.1.x | Integer32 | RO |
epc8045ChanStatus | 0 = data not active, 1 = data valid | .87.1.5.1.2.1.2.x | Integer32 | RO |
epc8045AbsEnergyActive | Absolute Active Energy counter. | .87.1.5.1.2.1.3.x | Gauge32 | RO |
epc8045PowerActive | Active Power | .87.1.5.1.2.1.4.x | Integer32 | RO |
epc8045Current | Actual Curent on Power Channel. | .87.1.5.1.2.1.5.x | Gauge32 | RO |
epc8045Voltage | Actual Voltage on Power Channel | .87.1.5.1.2.1.6.x | Gauge32 | RO |
epc8045Frequency | Frequency of Power Channel | .87.1.5.1.2.1.7.x | Gauge32 | RO |
epc8045PowerFactor | Power Factor of Channel between -1.0 and 1.00 | .87.1.5.1.2.1.8.x | Integer32 | RO |
epc8045Pangle | Phase Angle between Voltage and L Line Current between -180.0 and 180.0 | .87.1.5.1.2.1.9.x | Integer32 | RO |
epc8045PowerApparent | L Line Mean Apparent Power | .87.1.5.1.2.1.10.x | Integer32 | RO |
epc8045PowerReactive | L Line Mean Reactive Power | .87.1.5.1.2.1.11.x | Integer32 | RO |
epc8045AbsEnergyReactive | Absolute Reactive Energy counter. | .87.1.5.1.2.1.12.x | Gauge32 | RO |
epc8045AbsEnergyActiveResettable | Resettable Absolute Active Energy counter. Writing '0' resets all
resettable counter. |
.87.1.5.1.2.1.13.x | Gauge32 | RW |
epc8045AbsEnergyReactiveResettable | Resettable Absolute Reactive Energy counter. | .87.1.5.1.2.1.14.x | Gauge32 | RO |
epc8045ResetTime | Time in seconds since last Energy Counter reset. | Gauge32 | RO | |
epc8045ForwEnergyActive | Forward Active Energy counter. | .87.1.5.1.2.1.16.x | Gauge32 | RO |
epc8045ForwEnergyReactive | Forward Reactive Energy counter. | .87.1.5.1.2.1.17.x | Gauge32 | RO |
epc8045ForwEnergyActiveResettable | Resettable Forward Active Energy counter. | .87.1.5.1.2.1.18.x | Gauge32 | RO |
epc8045ForwEnergyReactiveResettable | Resettable Forward Reactive Energy counter. | .87.1.5.1.2.1.19.x | Gauge32 | RO |
epc8045RevEnergyActive | Reverse Active Energy counter. | .87.1.5.1.2.1.20.x | Gauge32 | RO |
epc8045RevEnergyReactive | Reverse Reactive Energy counter. | .87.1.5.1.2.1.21.x | Gauge32 | RO |
epc8045RevEnergyActiveResettable | Resettable Reverse Active Energy counter. | .87.1.5.1.2.1.21.x | Gauge32 | RO |
epc8045RevEnergyActiveResettable | Resettable Reverse Active Energy counter. | .87.1.5.1.2.1.22.x | Gauge32 | RO |
epc8045RevEnergyReactiveResettable | Resettable Reverse Reactive Energy counter. | .87.1.5.1.2.1.23.x | Gauge32 | RO |
epc8045ResidualCurrent | Actual Residual Current on Power Channel. According Type A IEC
60755. Only visible on models that support this feature. |
.87.1.5.1.2.1.24.x | Unsigned32 | RO |
epc8045LineSensorName | A textual string containing name of a Line Sensor | .87.1.5.1.2.1.100.x | OCTETS | RW |
epc8045OVPIndex | None | .87.1.5.2.1.1.x | Integer32 | RO |
epc8045OVPStatus | shows the status of the built-in Overvoltage Protection | .87.1.5.2.1.2.x | INTEGER | RO |
epc8045spActivePowerChan | Number of Single Port Power Channels. Value is zero on EPC 8220 series. | .87.1.5.5.1.0 | Unsigned32 | RO |
epc8045spPowerIndex | Index of Single Port Power Channel entries. Indices 0-5 mean Ports A1
to A6, 6-11 are Ports B1 to B6. |
.87.1.5.5.2.1.1.x | Integer32 | RO |
epc8045spChanStatus | 0 = data not active, 1 = data valid | .87.1.5.5.2.1.2.x | Integer32 | RO |
epc8045spAbsEnergyActive | Absolute Active Energy counter. | .87.1.5.5.2.1.3.x | Gauge32 | RO |
epc8045spPowerActive | Active Power | .87.1.5.5.2.1.4.x | Integer32 | RO |
epc8045spCurrent | Actual Curent on Power Channel. | .87.1.5.5.2.1.5.x | Gauge32 | RO |
epc8045spVoltage | Actual Voltage on Power Channel | .87.1.5.5.2.1.6.x | Gauge32 | RO |
epc8045spFrequency | Frequency of Power Channel | .87.1.5.5.2.1.7.x | Gauge32 | RO |
epc8045spPowerFactor | Power Factor of Channel between -1.0 and 1.00 | .87.1.5.5.2.1.8.x | Integer32 | RO |
epc8045spPangle | Phase Angle between Voltage and L Line Current between -180.0 and 180.0 | .87.1.5.5.2.1.9.x | Integer32 | RO |
epc8045spPowerApparent | L Line Mean Apparent Power | .87.1.5.5.2.1.10.x | Integer32 | RO |
epc8045spPowerReactive | L Line Mean Reactive Power | .87.1.5.5.2.1.11.x | Integer32 | RO |
epc8045spAbsEnergyReactive | Absolute Reactive Energy counter. | .87.1.5.5.2.1.12.x | Gauge32 | RO |
epc8045spAbsEnergyActiveResettable | Resettable Absolute Active Energy counter. Writing '0' resets all resettable counter. | .87.1.5.5.2.1.13.x | Gauge32 | RW |
epc8045spAbsEnergyReactiveResettable | Resettable Absolute Reactive Energy counter. | .87.1.5.5.2.1.14.x | Gauge32 | RO |
epc8045spResetTime | Time in seconds since last Energy Counter reset. | .87.1.5.5.2.1.15.x | Gauge32 | RO |
epc8045spForwEnergyActive | Forward Active Energy counter. | .87.1.5.5.2.1.16.x | Gauge32 | RO |
epc8045spForwEnergyReactive | Forward Reactive Energy counter. | .87.1.5.5.2.1.17.x | Gauge32 | RO |
epc8045spForwEnergyActiveResettable | Resettable Forward Active Energy counter. | .87.1.5.5.2.1.18.x | Gauge32 | RO |
epc8045spForwEnergyReactiveResettable | Resettable Forward Reactive Energy counter. | .87.1.5.5.2.1.19.x | Gauge32 | RO |
epc8045spRevEnergyActive | Reverse Active Energy counter. | .87.1.5.5.2.1.20.x | Gauge32 | RO |
epc8045spRevEnergyReactive | Reverse Reactive Energy counter. | .87.1.5.5.2.1.21.x | Gauge32 | RO |
epc8045spRevEnergyActiveResettable | Resettable Reverse Active Energy counter. | .87.1.5.5.2.1.22.x | Gauge32 | RO |
epc8045spRevEnergyReactiveResettable | Resettable Reverse Reactive Energy counter. | .87.1.5.5.2.1.23.x | Gauge32 | RO |
epc8045CPUSensorVsystem | System Voltage on CPU Board | .87.1.5.14.1.0 | Gauge32 | RO |
epc8045CPUSensorVaux | Auxiliary Voltage on CPU Board | .87.1.5.14.2.0 | Gauge32 | RO |
epc8045CPUSensorVmain | Main Voltage on CPU Board | .87.1.5.14.3.0 | Gauge32 | RO |
epc8045CPUSensorTcpu | Temperature on CPU Board | .87.1.5.14.4.0 | Integer32 | RO |
epc8045NTPTimeValid | Show if valid Time is received | .87.1.5.15.1.0 | INTEGER | RO |
epc8045NTPUnixTime | show received NTP time as unixtime (secs since 1 January 1970) | .87.1.5.15.2.0 | Unsigned32 | RO |
epc8045NTPLastValidTimestamp | show seconds since last valid NTP timestamp received | .87.1.5.15.3.0 | Unsigned32 | RO |
epc8045RCMBInfoIndex | Index of RCMB Info entries | .87.1.5.16.1.1.x | Integer32 | RO |
epc8045RCMBCurrentRMS | Actual Residual Current RMS on Power Channel. According Type B IEC 60755. Only visible on models that support this feature. | .87.1.5.16.1.2.x | Unsigned32 | RO |
epc8045RCMBlCurrentDC | Actual Residual Current DC on Power Channel. According Type B IEC
60755. Only visible on models that support this feature. |
.87.1.5.16.1.3.x | Unsigned32 | RO |
epc8045RCMBOutputRMS | shows the output S1 of the RCMB module | .87.1.5.16.1.4.x | INTEGER | RO |
epc8045RCMBOutputDC | shows the output S2 of the RCMB module | .87.1.5.16.1.5.x | INTEGER | RO |
epc8045RCMBModuleStatus | RCMB Module Status Word | .87.1.5.16.1.6.x | Unsigned32 | RO |
epc8045SensorIndex | None | .87.1.6.1.1.1.x | Integer32 | RO |
epc8045TempSensor | actual temperature | .87.1.6.1.1.2.x | Integer32 | RO |
epc8045HygroSensor | actual humidity | .87.1.6.1.1.3.x | Integer32 | RO |
epc8045AirPressure | actual air pressure | .87.1.6.1.1.5.x | Integer32 | RO |
epc8045DewPoint | dew point for actual temperature and humidity | .87.1.6.1.1.6.x | Integer32 | RO |
epc8045DewPointDiff | difference between dew point and actual temperature (Temp -
DewPoint) |
.87.1.6.1.1.7.x | Integer32 | RO |
epc8045ExtSensorName | A textual string containing name of a external Sensor | .87.1.6.1.1.32.x | OCTETS | RW |
epc8045ExtActiveInputs | Number of suppported Input Channels. | .87.1.6.2.1.0 | Unsigned32 | RO |
epc8045ExtInputIndex | None | .87.1.6.2.2.1.1.x | Unsigned32 | RO |
epc8045ExtInput | Input state of device | .87.1.6.2.2.1.2.x | INTEGER | RO |
epc8045ExtInputName | A textual string containing name of the Input | .87.1.6.2.2.1.32.x | OCTETS | RW |
epc8045ExtInputPortNum | Number of external Sensor Port when value greater zero, else device built-in Input. | .87.1.6.2.2.1.33.x | Integer32 | RO |
epc8045ExtInputBlockIndex | Either index of device built-in Input, or index of Input in external sensor. | .87.1.6.2.2.1.34.x | Integer32 | RO |