Didactum Monitoring & FreeRADIUS Integration
Vollständige Schritt-für-Schritt-Anleitung zur Einbindung von Didactum Monitoring-Geräten in einen FreeRADIUS-Server – inklusive OID-Referenz und MIB-Importkonfiguration.
- Server: FreeRADIUS 3.x (Ubuntu / Debian)
- Protokoll: RADIUS + SNMP v1/v2c/v3
- Gerät: Didactum Monitoring System 100 / 300T / 500T / 550T
1. Voraussetzungen und Systemüberblick
Server-Anforderungen
- Ubuntu 20.04 / 22.04 LTS oder Debian 11/12
- Mindestens 512 MB RAM, 1 CPU
- Statische IP-Adresse (z.B. 192.168.1.10)
- Root- oder sudo-Zugang
- UDP-Ports 1812 (Authentifizierung) und 1813 (Accounting) geöffnet
Didactum-Gerät
- Monitoring System 100T, 300T / 500T oder 550T
- Firmware mit RADIUS-Unterstützung
- Netzwerkzugang zum RADIUS-Server
- SNMP aktiviert (v1/v2c/v3)
- MIB-Datei (aus dem Web-Interface ladbar)
Was leistet RADIUS beim Didactum?
Didactum-Monitoring-Geräte unterstützen RADIUS zur zentralen Benutzerauthentifizierung im Web-Interface. Statt lokaler Benutzerkonten direkt auf dem Gerät werden Anmeldedaten gegen einen zentralen RADIUS-Server geprüft. Das ermöglicht einheitliches Benutzermanagement für mehrere Didactum-Geräte gleichzeitig.
Netzwerk-Architektur
[Administrator-Browser]
| HTTPS Login
v
[Didactum Monitoring System] --RADIUS--> [FreeRADIUS Server]
IP: 192.168.1.50 IP: 192.168.1.10
Port: 443 (WebUI) Port: 1812/UDP
|
| SNMP (OID-Abfragen)
v
[NMS / PRTG / Zabbix / Nagios]
2. FreeRADIUS installieren und Grundkonfiguration
Schritt 1 – System aktualisieren und FreeRADIUS installieren
sudo apt update && sudo apt upgrade -y sudo apt install freeradius freeradius-utils -y
Status prüfen:
sudo systemctl status freeradius
Schritt 2 – FreeRADIUS im Debug-Modus starten
sudo systemctl stop freeradius sudo freeradius -X
Erfolgreicher Start:
Am Ende der Ausgabe muss erscheinen: Ready to process requests — Mit Strg+C beenden.
Schritt 3 – Konfigurationsverzeichnis
/etc/freeradius/3.0/ ├── radiusd.conf <-- Hauptkonfiguration ├── clients.conf <-- RADIUS-Clients (z.B. Didactum-Geräte) ├── users <-- Lokale Benutzer ├── mods-available/ <-- Verfügbare Module ├── mods-enabled/ <-- Aktive Module (Symlinks) └── sites-enabled/ <-- Aktive virtuelle Server
Wichtig:
Vor jeder Änderung Sicherungskopie anlegen:
sudo cp /etc/freeradius/3.0/clients.conf /etc/freeradius/3.0/clients.conf.bak
3. Didactum als RADIUS-Client einrichten
Jedes Gerät, das RADIUS-Anfragen stellen darf, muss in der Datei clients.conf eingetragen sein.
Schritt 1 – clients.conf öffnen
sudo nano /etc/freeradius/3.0/clients.conf
Schritt 2 – Didactum-Eintrag am Dateiende hinzufügen
# -------------------------------------------------------
# Didactum Monitoring System – RADIUS Client
# -------------------------------------------------------
client didactum-monitor-01 {
ipaddr = 192.168.1.50
secret = Ihr_Geheimnis_Hier_Aendern
shortname = didactum-01
nastype = other
}
Sicherheitshinweis: Das secret muss mindestens 16 Zeichen lang sein und wird identisch im Didactum Web-Interface hinterlegt.
Schritt 3 – Variante: Ganzes Subnetz freischalten
client didactum-netz {
ipaddr = 192.168.1.0/24
secret = Subnetz_Geheimnis
shortname = didactum-subnet
nastype = other
}
4. Benutzer Authentifizierung konfigurieren
Schritt 1 – Lokale Benutzer anlegen
sudo nano /etc/freeradius/3.0/users
Folgende Einträge am Anfang der Datei einfügen (vor dem DEFAULT-Block). Die Einrückung der zweiten Zeile ist syntaktisch zwingend:
admin Cleartext-Password := "SicheresPasswort123!"
Reply-Message = "Willkommen, Administrator"
readonly Cleartext-Password := "ReadOnly456#"
Reply-Message = "Willkommen, Lesezugriff"
techniker Cleartext-Password := "Technik789$"
Reply-Message = "Willkommen, Techniker"
Schritt 2 – PAP-Modul aktivieren
ls -la /etc/freeradius/3.0/mods-enabled/ | grep pap
sudo ln -s /etc/freeradius/3.0/mods-available/pap \
/etc/freeradius/3.0/mods-enabled/pap
Schritt 3 – Dienst neu starten
sudo systemctl restart freeradius sudo systemctl status freeradius
5. Didactum Web-Interface konfigurieren
Web-Interface öffnen: 192.168.1.50 (IP des Geräts anpassen)
Navigation
Systemeinstellungen → Netzwerk → RADIUS
Folgende Werte eintragen
| Feld im Didactum Web-Interface | Wert |
|---|---|
| RADIUS aktivieren | Aktiviert |
| Server-IP / Primary Server | 192.168.1.10 |
| Port | 1812 |
| Shared Secret | Identisch mit secret aus clients.conf |
| Authentifizierungsmethode | PAP |
| Timeout | 5 Sekunden |
| Retry / Versuche | 3 |
| Fallback auf lokale Konten | Aktiviert |
Wichtig:
Lokalen Admin-Zugang vorher testen und notieren – er ist der Fallback falls RADIUS nicht erreichbar ist.
6. SNMP OID-Referenz
Alle Didactum-OIDs beginnen mit .1.3.6.1.4.1.46501 (ältere Firmware) bzw. .1.3.6.1.4.1.39052 (neuere Modelle). Die Sensor-ID wird am Ende angehängt.
OID-Felder je Sensor
| Feld | Bedeutung | Beispiel (Sensor-ID 101001) |
|---|---|---|
| .1.x.SENSOR_ID | Sensor-ID | .1.3.6.1.4.1.46501.5.1.1.1.101001 |
| .5.x.SENSOR_ID | Sensor-Name | .1.3.6.1.4.1.46501.5.1.1.5.101001 |
| .6.x.SENSOR_ID | Status (0=OK, 1=Alarm) | .1.3.6.1.4.1.46501.5.1.1.6.101001 |
| .7.x.SENSOR_ID | Messwert (aktuell) | .1.3.6.1.4.1.46501.5.1.1.7.101001 |
Konkrete OIDs nach Sensortyp
| Sensortyp | Sensor-ID | OID – Messwert | OID – Status |
|---|---|---|---|
| Temperatursensor (digital) | 101001 | .1.3.6.1.4.1.46501.5.1.1.7.101001 | .1.3.6.1.4.1.46501.5.1.1.6.101001 |
| Temperatursensor (analog) | 201001 | .1.3.6.1.4.1.39052.5.2.1.7.201001 | .1.3.6.1.4.1.39052.5.2.1.6.201001 |
| Wassersensor / Leckage | 107001 | .1.3.6.1.4.1.46501.5.1.1.7.107001 | .1.3.6.1.4.1.46501.5.1.1.6.107001 |
| Luftfeuchtigkeit | 102001 | .1.3.6.1.4.1.46501.5.1.1.7.102001 | .1.3.6.1.4.1.46501.5.1.1.6.102001 |
| Potentialfreier Kontakt | 101003 | .1.3.6.1.4.1.39052.5.1.1.7.101003 | .1.3.6.1.4.1.39052.5.1.1.6.101003 |
| Türkontakt | 104001 | .1.3.6.1.4.1.46501.5.1.1.7.104001 | .1.3.6.1.4.1.46501.5.1.1.6.104001 |
| Rauchmelder | 106001 | .1.3.6.1.4.1.46501.5.1.1.7.106001 | .1.3.6.1.4.1.46501.5.1.1.6.106001 |
Sensor-ID herausfinden: Im Didactum Web-Interface unter Systembaum → Sensor → Details.
Temperaturwert: Rohwert ÷ 10 = Grad Celsius (Beispiel: 235 = 23,5 °C)
SNMP-Abfrage testen
# Temperaturwert (SNMPv2c)
snmpget -v 2c -c public 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.7.101001 # Leckage-Status (SNMPv2c)
snmpget -v 2c -c public 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.6.107001 # Temperaturwert (SNMPv3)
snmpget -v 3 -l authPriv -u snmpuser -a SHA -A "AuthPasswort" \ -x AES -X "PrivPasswort" 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.7.101001
7. MIB-Import-Konfiguration
Schritt 1 – MIB-Datei herunterladen
Systemeinstellungen → SNMP → "MIB-Datei herunterladen" → didactum.mib
Schritt 2 – MIB-Referenzkonfiguration
-- ============================================================
-- DIDACTUM-MIB Importkonfiguration
-- Kompatibel mit: iReasoning MIB Browser, PRTG, Zabbix,
-- Nagios, Check_MK, OpenNMS
-- ============================================================
DIDACTUM-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, Integer32,
enterprises FROM SNMPv2-SMI
DisplayString FROM SNMPv2-TC;
didactum MODULE-IDENTITY
LAST-UPDATED "202401010000Z"
ORGANIZATION "Didactum Ltd."
CONTACT-INFO "support@didactum.eu"
DESCRIPTION "Didactum Monitoring System MIB"
::= { enterprises 46501 }
-- Spalten der Sensor-Tabelle:
-- .1 = Sensor-ID .5 = Sensor-Name
-- .6 = Status .7 = Messwert
--
-- Temperatur: Rohwert x 0.1 = Grad Celsius (235 = 23.5 C)
-- Leckage: 0 = trocken, 1 = Wasser erkannt
-- Kontakt: 0 = offen, 1 = geschlossen
sensorName OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..64))
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Konfigurierter Name des Sensors"
::= { enterprises 46501 5 1 1 5 }
sensorStatus OBJECT-TYPE
SYNTAX INTEGER { ok(0), alarm(1), noConnect(2) }
MAX-ACCESS read-only
STATUS current
DESCRIPTION "0=OK, 1=Alarm, 2=Kein Signal"
::= { enterprises 46501 5 1 1 6 }
sensorValue OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Messwert des Sensors"
::= { enterprises 46501 5 1 1 7 }
END
Schritt 3 – MIB auf Linux installieren
sudo cp didactum.mib /usr/share/snmp/mibs/ echo "mibdirs /usr/share/snmp/mibs" >> ~/.snmp/snmp.conf echo "mibs ALL" >> ~/.snmp/snmp.conf snmpwalk -v 2c -c public -m ALL 192.168.1.50 enterprises.46501.5.1.1
Schritt 4 – MIB in PRTG importieren
1. didactum.mib kopieren nach: C:\Program Files (x86)\PRTG Network Monitor\snmpmibs\ 2. PRTG-Dienst neu starten 3. Sensor hinzufügen: "SNMP Custom OID" OID: .1.3.6.1.4.1.46501.5.1.1.7.SENSOR_ID 4. Temperatursensor: Skalierungsfaktor 0.1, Einheit °C
8. Fehlerbehebung (Troubleshooting)
Schritt 1 – RADIUS lokal testen
radtest admin SicheresPasswort123! 127.0.0.1 1812 testing123 # Erfolg: Received Access-Accept
Schritt 2 – Debug-Modus
sudo systemctl stop freeradius sudo freeradius -X 2>&1 | tee /tmp/radius-debug.log
Fehlermeldungen und Lösungen
| Meldung | Ursache & Lösung |
|---|---|
| Access-Accept | Authentifizierung erfolgreich |
| Access-Reject | Falsches Passwort oder Benutzer fehlt → users-Datei prüfen |
| Client not found | IP nicht in clients.conf → Didactum-IP eintragen |
| Shared secret is incorrect | Secret stimmt nicht überein → in clients.conf und WebUI angleichen |
| No response | Firewall blockiert Port 1812/UDP → Regel prüfen |
Schritt 3 – Firewall-Regeln (Ubuntu UFW)
sudo ufw allow 1812/udp sudo ufw allow 1813/udp sudo ufw allow from 192.168.1.50 to any port 1812 proto udp
Schritt 4 – Logs einsehen
sudo tail -f /var/log/freeradius/radius.log sudo journalctl -u freeradius -f --since "1 hour ago"
9. Abschluss-Checkliste
FreeRADIUS Server
- FreeRADIUS installiert und Dienst läuft
- clients.conf: Didactum-IP und Secret eingetragen
- users-Datei: Mindestens ein Benutzer angelegt
- PAP-Modul aktiviert (mods-enabled/pap)
- Ports 1812 und 1813 UDP in der Firewall geöffnet
- radtest lokal erfolgreich (Access-Accept)
- Autostart aktiviert: sudo systemctl enable freeradius
Didactum Gerät
- RADIUS aktiviert im Web-Interface
- Server-IP des RADIUS-Servers eingetragen
- Port 1812 eingetragen
- Shared Secret identisch mit clients.conf
- Fallback auf lokale Konten aktiviert
- SNMP aktiviert (v1/v2c oder v3)
- MIB-Datei heruntergeladen
- Login-Test mit RADIUS-Benutzer erfolgreich
SNMP / OIDs
- MIB-Datei in NMS importiert
- snmpwalk / snmpget erfolgreich getestet
- Sensor-IDs aus Web-Interface notiert
- Temperatursensor-OID im NMS eingerichtet
- Leckage-OID überwacht und Alarmierung konfiguriert
Sicherheit
- Starkes Shared Secret (mindestens 16 Zeichen)
- Sichere Benutzerpasswörter gesetzt
- Nur benötigte IPs in clients.conf
- SNMP Community String geändert (nicht „public")
- SNMPv3 für produktive Umgebungen geprüft
- Log-Rotation für radius.log konfiguriert