OPNsense SNMP

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Vorbereitung

Plugin installieren

  • System
    • Firmware
      • Plugins
Parameter Wert
Plugin os-net-snmp
Aktion + (Install)

Nach der Installation die Seite neu laden, dann erscheint Services => Net-SNMP

Konfiguration

General

  • Services
    • Net-SNMP
      • General
Parameter Wert
Enable SNMP Service Ja
SNMP Community (leer lassen)
SNMP Location Schulungsraum
SNMP Contact admin@it213.xinmen.de
Add AgentX Support Nein
Add Observium Support Nein
Layer 3 Visibility Nein
Display Version in OID Nein
Listen IPs 192.168.213.1 (LAN-IP der OPNsense)
Aktion Save

Wichtig: SNMP Community leer lassen. Die Community gilt nur fuer v1/v2c und wird im Klartext uebertragen. SNMPv3 braucht sie nicht.

Listen IPs leer = SNMP lauscht auf allen Interfaces, also auch auf WAN.

SNMPv3 User

  • Services
    • Net-SNMP
      • SNMPv3 Users
        • +
Parameter Wert
Enabled Ja
Username snmpuser
Password Geheim123!
Encryption Key Schluessel123!
Allow Write Access Nein
Aktion Save

Password und Encryption Key muessen mindestens 8 Zeichen lang sein.

  • Danach im Reiter SNMPv3 Users noch einmal Save druecken, damit der Dienst neu startet.
Was die Felder bedeuten
  • Password => Authentifizierung (authPassword, SHA)
  • Encryption Key => Verschluesselung (privPassword, AES)
  • Allow Write Access => rwuser statt rouser, im Kurs immer aus lassen

Firewall

LAN

Die Default-Regel "LAN to any" erlaubt den Zugriff bereits. Ist sie entfernt oder soll nur ein bestimmter Rechner abfragen duerfen:

  • Rules
    • LAN
      • +
Parameter Wert
Action Pass
Disabled Nein
Quick Ja
Interface LAN
Direction in
TCP/IP Version IPv4
Protocol UDP
Source LAN net
Destination This Firewall
Destination Port (from) 161
Destination Port (to) 161
Log Nein

Auf dem Linux System

Installation
  • sudo apt install snmp snmp-mibs-downloader
MIBs aktivieren (sonst nur numerische OIDs)
  • sudo vi /etc/snmp/snmp.conf
Die Zeile auskommentieren
#mibs :

Test mit SNMPv3

Systeminformationen
  • snmpwalk -v3 -l authPriv -u snmpuser -a SHA -A 'Geheim123!' -x AES -X 'Schluessel123!' 192.168.213.1 system
SNMPv2-MIB::sysDescr.0 = STRING: FreeBSD opnsense.it213.xinmen.de ...
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (123456) 0:20:34.56
SNMPv2-MIB::sysContact.0 = STRING: admin@it213.xinmen.de
SNMPv2-MIB::sysName.0 = STRING: opnsense.it213.xinmen.de
SNMPv2-MIB::sysLocation.0 = STRING: Schulungsraum
Die Optionen
  • -l authPriv => Authentifizierung und Verschluesselung
  • -u => Username
  • -a / -A => Auth-Protokoll / Password
  • -x / -X => Verschluesselung / Encryption Key
Einzelwert abfragen
  • snmpget -v3 -l authPriv -u snmpuser -a SHA -A 'Geheim123!' -x AES -X 'Schluessel123!' 192.168.213.1 SNMPv2-MIB::sysName.0
Interfaces
  • snmpwalk -v3 -l authPriv -u snmpuser -a SHA -A 'Geheim123!' -x AES -X 'Schluessel123!' 192.168.213.1 IF-MIB::ifDescr
Ohne MIBs (numerisch)
  • snmpwalk -v3 -l authPriv -u snmpuser -a SHA -A 'Geheim123!' -x AES -X 'Schluessel123!' 192.168.213.1 1.3.6.1.2.1.1

Abkuerzung: Zugangsdaten in ~/.snmp/snmp.conf

  • mkdir -p ~/.snmp
  • vi ~/.snmp/snmp.conf
defVersion 3
defSecurityLevel authPriv
defSecurityName snmpuser
defAuthType SHA
defAuthPassphrase Geheim123!
defPrivType AES
defPrivPassphrase Schluessel123!
  • chmod 600 ~/.snmp/snmp.conf
Danach reicht
  • snmpwalk 192.168.213.1 system

Negativtests

v2c muss abgelehnt werden (keine Community gesetzt)
  • snmpwalk -v2c -c public 192.168.213.1 system
Timeout: No Response from 192.168.213.1
Falscher v3-Schluessel
  • snmpwalk -v3 -l authPriv -u snmpuser -a SHA -A 'falsch123' -x AES -X 'Schluessel123!' 192.168.213.1 system
snmpwalk: Authentication failure (incorrect password, community or key)

Kontrolle auf der OPNsense

Shell (Option 8)
  • grep -i community /usr/local/etc/snmpd.conf
  • Es darf keine Zeile rocommunity/rwcommunity erscheinen.

Mitschnitt

Auf der OPNsense (Interfaces => Diagnostics => Packet Capture) oder auf dem Client
  • sudo tcpdump -ni any -A udp port 161
  • Bei v3 authPriv ist nur der Username lesbar, die Daten sind verschluesselt.

Webseite