Obwohl ich hier bereits in verschiedensten Artikeln lusche Sicherheitsvorkehrungen angeprangert habe, halte ich es bei SNMP genau so: Hauptsache offen wie ein Scheuenentor. Das Protokoll ist derart kompliziert, dass ich beim Debugging nicht Zeit verlieren möchte.
Auf Servern, die ich mit cacti überwachen möchte, installiere ich normalerweise folgende snmpd.conf:
sysLocation Raum 1 sysContact Mario Aeby# rocommunity public 192.168.0.1 #rocommunity public 192.168.0.0/24 # includeAllDisks # proc load
Auf einem Debian-System mit snmpd 5.4.1~dfsg-12 wollte obige Konfiguration aber nicht und spuckte drei Fehlermeldungen aus (zu finden in /var/log/daemon.log):
Jan 5 16:26:42 snmpd[13111]: /etc/snmp/snmpd.conf: line 7: Error: Blank line following includeAllDisks token. Jan 5 16:26:42 snmpd[13111]: /etc/snmp/snmpd.conf: line 9: Error: Blank line following proc token. Jan 5 16:26:42 snmpd[13111]: /etc/snmp/snmpd.conf: line 10: Error: Blank line following load token.
Die für snmpd 5.4 überarbeitete Version der Konfiguration sah deshalb folgendermassen aus:
sysLocation Raum 1 sysContact Mario Aeby# rocommunity public 192.168.0.1 #rocommunity public 192.168.0.0/24 # includeAllDisks 10% # load 1
Doch damit war nicht genug – snmpwalk wollte partout nur bei einem Testlauf von localhost Werte liefern.
Ein Blick in die Prozessliste machte schliesslich das Übel rasch erkennbar:
13491 ? S 0:01 /usr/sbin/snmpd -Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1
127.0.0.1 wies snmpd an, nur auf dem lo-Interface zu lauschen.
Ich öffnete snmpds Ohren, indem ich die Datei /etc/default/snmpd anpasste und dort die Zeichenkette 127.0.0.1 entfernte.
(Falls jemand eine schönere Umgehungsmöglichkeit kennt, soll er diese als Kommentar posten. Danke!)