Hoe installeer en configureer je SNMP op RHEL, CentOS en Fedora?

Eerlijk gezegd klinkt SNMP als een van die protocollen die simpel genoeg zijn: je haalt informatie op van je servers of netwerkapparatuur, geen gedoe. Maar dan realiseer je je dat de configuratie ervan op Linux, vooral op CentOS, RHEL of Fedora, behoorlijk lastig kan zijn. Soms heb je alles ingesteld, voer je het commando uit snmpwalken krijg je een time-out of geen reactie. Dat is frustrerend, vooral als je er vrij zeker van bent dat je alles goed hebt gedaan, maar het gevoel hebt dat de service gewoon niet werkt. Misschien ligt het aan de firewall, configuratiefouten of machtigingen – wie weet? Deze handleiding is bedoeld om je te helpen bij het oplossen van dit probleem, met name als je eerst SNMP v2c aan de praat wilt krijgen en later misschien wilt overstappen op het geavanceerdere SNMPv3 met encryptie.

Hoe je veelvoorkomende SNMP-problemen op Linux kunt oplossen

Installeer en configureer de SNMP-agent.

Allereerst, als SNMP nog niet is geïnstalleerd, is het een beetje vreemd, maar de netwerkhulpmiddelen zijn nu eenmaal niet standaard geconfigureerd. Het uitvoeren van een installatie dnf update -yis een goed begin (of yum update -yals je dat prettig vindt).Installeer daarna de benodigde pakketten:

# dnf install net-snmp net-snmp-utils -y

Hiermee worden de SNMP-daemon en de commandoregeltools zoals geladen snmpwalk. Op sommige machines moet je dit yummogelijk met doen, afhankelijk van je distributie.

Het configureren van de SNMP-agent: de gebruikelijke fouten

Maak eerst een back-up van je standaardconfiguratie, voor het geval er iets misgaat. Gebruik:

# mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.orig

Bewerk vervolgens het configuratiebestand:

# nano /etc/snmp/snmpd.conf

En nu komt het vreemde: je moet de juiste community-string en -informatie toevoegen. Zoiets als:

rocommunity public syslocation GE-DC2 syscontact [email protected]

Waarom deze regels? Omdat rocommunity publichet alleen-lezen toegang mogelijk maakt voor iedereen die “public” als community string raadt — niet veilig, maar goed genoeg voor testdoeleinden. De andere twee zijn slechts metadata, maar sommige SNMP-tools of dashboards zien ze blijkbaar graag. Vergeet niet: als je in een productieomgeving test, verander dan de community string in iets veiligs! Sla het bestand na het bewerken op.

Start en activeer snmpd

Start vervolgens de daemon:

# systemctl enable snmpd.service # systemctl start snmpd

Als het niet start, controleer dan de status met systemctl status snmpd. Soms ligt het aan de firewall; mogelijk moet je poorten openen.

Firewallinstellingen — vergeet dit onderdeel niet.

Hier wordt het ingewikkeld: de firewall van Linux kan SNMP standaard blokkeren. Om TCP/UDP-poorten 161 en 162 te openen, voert u het volgende commando uit:

# firewall-cmd --zone=public --add-port=161/udp --permanent # firewall-cmd --zone=public --add-port=161/tcp --permanent # firewall-cmd --zone=public --add-port=162/udp --permanent # firewall-cmd --zone=public --add-port=162/tcp --permanent # firewall-cmd --reload

Bij sommige configuraties moet u mogelijk controleren of uw firewall actief is firewall-cmd --stateen deze indien nodig aanpassen.

Test met snmpwalk en los problemen op.

Nu komt het lastige gedeelte. Wanneer je het volgende uitvoert:

# snmpwalk -v 2c -c public -O e 127.0.0.1

Als er een time-out optreedt of als je de melding “Timeout: No Response from localhost” krijgt, is je configuratiebestand waarschijnlijk niet in orde of blokkeert de firewall het verkeer. De oorzaak ligt vaak in het gebruik van een onjuiste community string of een typefout in de configuratie. Zorg ervoor dat je /etc/snmp/snmpd.confde juiste community string gebruikt (in dit geval ‘public’) en dat de daemon daadwerkelijk actief is. Soms lukt het snmpd niet om correct te herladen; start het dan opnieuw op met het commando systemctl restart snmpden controleer de status nogmaals.

In sommige gevallen kan de service weliswaar zonder problemen starten, maar toch weigeren te communiceren. In dat geval kan het helpen om de aangepaste configuratie te verwijderen en de standaardinstellingen te gebruiken, en vervolgens geleidelijk je wijzigingen weer toe te voegen.

Controleer de toegang op afstand.

Als de lokale test werkt, probeer het dan vanaf een andere machine:

# snmpwalk -v 2c -c public 192.168.x.x system

Als je gegevens ziet, prima. Zo niet, controleer dan de firewallregels, IP-whitelists of netwerkbereikbaarheid. Vreemd genoeg zijn firewallinstellingen vaak een grotere bron van problemen dan daadwerkelijke configuratiefouten.

SNMPv3 — de geavanceerde beveiligingsversie

Als je het wat geavanceerder wilt aanpakken en SNMPv3 met authenticatie en encryptie wilt gebruiken, houd er dan rekening mee dat de configuratie complexer is. Je moet een gebruiker aanmaken met de juiste rechten net-snmp-create-v3-user. Bijvoorbeeld:

# net-snmp-create-v3-user -ro -A o2ps2w0dD -a SHA -X r30svV33 -x AES snmpuser

Met dit commando wordt een alleen-lezen gebruiker ‘ snmpuser’ aangemaakt met het authenticatiewachtwoord ‘o2ps2w0dD’, versleuteld met SHA, en het privacywachtwoord ‘ r30svV33′, versleuteld met AES. Start vervolgens de service opnieuw:

# systemctl start snmpd

Test het met:

# snmpwalk -v3 -a SHA -A o2ps2w0dD -x AES -X r30svV33 -l authPriv -u snmpuser 192.168.1.100

Eerlijk gezegd staat SNMP bekend als een lastig systeem, vooral als het na al je moeite nog steeds niet werkt. Meestal blijkt het aan een firewall te liggen of aan een typefout in je configuratie. Maar als het eenmaal werkt, is het wel prettig om al die meetgegevens binnen te zien stromen.