{% extends "base.html" %} {% block title %}Installer et sécuriser SNMP — Forge Centreon{% endblock %} {% block body %}
La plupart des packs du catalogue interrogent leurs équipements en SNMP. Cette page donne, par système, une configuration de départ qui fonctionne et qui ne laisse pas votre parc ouvert au premier venu.
SNMP v1 et v2c transportent la communauté en clair sur le réseau : quiconque écoute peut la lire et interroger l'équipement. Préférez la version 3 partout où elle est disponible.
Si vous restez en v2c — souvent le cas sur du matériel ancien — restreignez au moins l'accès à l'adresse du collecteur et n'autorisez que la lecture.
apt install snmpd
Remplacez le contenu de /etc/snmp/snmpd.conf par ceci, en v3 :
# N'ecoute que sur l'interface d'administration, jamais sur toutes agentaddress udp:10.0.4.20:161 # Ce que le compte a le droit de lire : tout l'arbre standard, rien d'autre view lecture included .1.3.6.1.2.1 view lecture included .1.3.6.1.4.1 # Compte de supervision, lecture seule, sur la vue ci-dessus rouser centreon authPriv -V lecture # Informations d'inventaire, facultatives mais utiles sysLocation Salle serveur, baie A3 sysContact supervision@exemple.fr
Le compte lui-même se crée service arrêté, la directive étant déplacée au démarrage vers un fichier de persistance :
systemctl stop snmpd echo 'createUser centreon SHA-256 "MotDePasseAuth" AES "MotDePasseChiffrement"' >> /etc/snmp/snmpd.conf systemctl start snmpd
Après démarrage, la ligne createUser disparaît de
/etc/snmp/snmpd.conf : net-snmp la déplace dans
/var/lib/snmp/snmpd.conf sous forme chiffrée. C'est normal. Ne la remettez
pas, vous créeriez un doublon.
En v2c, si la version 3 n'est pas envisageable :
agentaddress udp:10.0.4.20:161 # Lecture seule, et uniquement depuis le collecteur rocommunity UneChaineLongueEtAleatoire 10.0.4.10 -V lecture
dnf install net-snmp net-snmp-utils
Le fichier de configuration est au même endroit et la syntaxe identique. La différence est le pare-feu :
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" \ source address="10.0.4.10/32" port port="161" protocol="udp" accept' firewall-cmd --reload systemctl enable --now snmpd
Sur Debian et Ubuntu, l'équivalent avec ufw :
ufw allow from 10.0.4.10 to any port 161 proto udp
Le service SNMP de Windows ne connaît que la v2c, et Microsoft le considère comme obsolète. Il reste utilisable, mais pour un parc Windows important, les packs NSClient++ du catalogue sont un meilleur choix.
# Windows 10, 11, Server 2019 et suivants Add-WindowsCapability -Online -Name "SNMP.Client~~~~0.0.1.0" # Serveurs plus anciens Install-WindowsFeature SNMP-Service -IncludeManagementTools
La configuration se fait dans la base de registre. Communauté en lecture seule, et restriction au seul collecteur :
$base = "HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters" # 4 = lecture seule. Ne jamais utiliser 8, qui autorise l'ecriture. New-ItemProperty -Path "$base\ValidCommunities" -Name "UneChaineLongueEtAleatoire" ` -Value 4 -PropertyType DWord -Force # Seul le collecteur a le droit d'interroger New-ItemProperty -Path "$base\PermittedManagers" -Name "1" ` -Value "10.0.4.10" -PropertyType String -Force Restart-Service SNMP
Puis le pare-feu :
New-NetFirewallRule -DisplayName "SNMP depuis le collecteur" -Direction Inbound ` -Protocol UDP -LocalPort 161 -RemoteAddress 10.0.4.10 -Action Allow
La logique est la même partout : un compte ou une communauté en lecture seule, une liste d'accès limitée au collecteur, et la version 3 quand le matériel la gère.
# Cisco IOS, en v3 snmp-server view lecture iso included snmp-server group SUPERVISION v3 priv read lecture access 20 snmp-server user centreon SUPERVISION v3 auth sha MotDePasseAuth priv aes 128 MotDePasseChiffrement access-list 20 permit 10.0.4.10
# Cisco IOS, en v2c access-list 20 permit 10.0.4.10 snmp-server community UneChaineLongueEtAleatoire RO 20
Sur pfSense, OPNsense, FortiGate, Stormshield et la plupart des interfaces web, l'écran SNMP propose les mêmes notions : communauté ou utilisateur v3, interface d'écoute, et adresses autorisées. Renseignez toujours la dernière.
Avant de déployer quoi que ce soit, assurez-vous que le collecteur obtient une réponse. Une configuration Centreon parfaite ne sert à rien si le port est fermé.
# v3 snmpwalk -v3 -l authPriv -u centreon -a SHA-256 -A "MotDePasseAuth" \ -x AES -X "MotDePasseChiffrement" 10.0.4.20 sysDescr # v2c snmpwalk -v2c -c UneChaineLongueEtAleatoire 10.0.4.20 sysDescr
Une réponse contenant la description du système signifie que tout est en place. Un silence vient du pare-feu ou de l'adresse d'écoute ; un refus d'authentification, du compte ou de la communauté.
Les packs SNMP posent la version et la communauté sur le modèle d'hôte, dans les
réglages du projet. En version 3, laissez la communauté vide et passez les options
d'authentification par la macro SNMPEXTRAOPTIONS du modèle d'hôte.